In [ ]:
. ../../polyglot/scripts/nbs_header.ps1
. ../../polyglot/scripts/core.ps1
In [ ]:
{ pwsh build.ps1 } | Invoke-Block
polyglot/scripts/core.ps1/GetFullPath / Path: ../../deps/polyglot/lib/fsharp / Location: C:\home\git\spiral\apps\compiler / ResolvedLocation: C:\home\git\spiral\apps\compiler
polyglot/scripts/core.ps1/GetFullPath / FullPath: C:\home\git\spiral\deps\polyglot\lib\fsharp
00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "C:\home\git\spiral\apps\compiler/spiral_compiler.dib", "--working-directory", "C:\home\git\polyglot\lib\fsharp"])) }
00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/spiral/apps/compiler/spiral_compiler.dib", "--output-path", "c:/home/git/spiral/apps/compiler/spiral_compiler.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/spiral/apps/compiler/spiral_compiler.dib" --output-path "c:/home/git/spiral/apps/compiler/spiral_compiler.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = Some(
    "C:\home\git\polyglot\lib\fsharp",
) } }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ # spiral_compiler (Polyglot)
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> open rust.rust_operators
> open rust
> open sm'_operators
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## spiral_compiler
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> open FSharp.Core
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // #!import '../../../polyglot/deps/The-Spiral-Language/The Spiral Language 
> 2/Supervisor.fs'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #r 
> @"../../../../../../../.nuget/packages/fsharpx.collections/3.1.0/lib/netstandard
> 2.0/FSharpx.Collections.dll"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // #if !INTERACTIVE
> // open Polyglot
> open Common
> // open Lib
> // #endif
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## PersistentVector
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // #!import '../../../polyglot/deps/The-Spiral-Language/The Spiral Language 
> 2/PersistentVectorExtensions.fs'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // #if !INTERACTIVE
> //     open Polyglot
> //     open Common
> //     open Lib
> // #endif
> // open System
> // open FSharpx.Collections
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### private
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let range_checks from near_to vec =
>     if from <= near_to = false then
>         Common.trace Common.Critical (fun () -> 
> $"PersistentVectorExtensions.range_checks / `from` must be less or equal to 
> `near_to`. / from: {from} / near_to: {near_to} / vec: {vec}") Common._locals
>         // raise (System.ArgumentException("`from` must be less or equal to 
> `near_to`."))
>     if from < 0 then raise (System.ArgumentException("`from` must not be 
> negative."))
>     if FSharpx.Collections.PersistentVector.length vec < near_to then raise 
> (System.ArgumentException("`near_to` must not be beyond the length of the 
> vector."))
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### replace
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> /// O(n+m). Replace the specified range in a vector with the sequence.
> let replace from near_to seq vec =
>     range_checks from near_to vec
>     let rec rest s =
>         if from < FSharpx.Collections.PersistentVector.length s then
>             FSharpx.Collections.PersistentVector.unconj s |> fst |> rest
>         else
>             Seq.fold (fun s x -> FSharpx.Collections.PersistentVector.conj x s) 
> s seq
>     let rec init s =
>         if near_to < FSharpx.Collections.PersistentVector.length s then
>             let s',x = FSharpx.Collections.PersistentVector.unconj s
>             FSharpx.Collections.PersistentVector.conj x (init s')
>         else
>             rest s
>     init vec
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### mapi
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> /// O(n). Returns a vector of the supplied length using the supplied function 
> operating on the index.
> let mapi f vec = FSharpx.Collections.PersistentVector.init 
> (FSharpx.Collections.PersistentVector.length vec) (fun i -> f i vec.[[i]])
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### iter
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> /// O(n). Iterates over a vector using the supplied function operating on the 
> index.
> let iter f vec = 
>     let rec loop i = if i < FSharpx.Collections.PersistentVector.length vec then
> f vec.[[i]]
>     loop 0
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### unzip
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> /// O(n). Unzips a vector of pairs into pairs of vectors.
> let unzip vec = 
>     let mutable a = FSharpx.Collections.PersistentVector.empty
>     let mutable b = FSharpx.Collections.PersistentVector.empty
>     iter (fun (a',b') -> a <- FSharpx.Collections.PersistentVector.conj a' a; b 
> <- FSharpx.Collections.PersistentVector.conj b' b) vec
>     a,b
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### concat
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> /// O(n). Concatenates a vector of vectors.
> let concat vec = FSharpx.Collections.PersistentVector.fold 
> (FSharpx.Collections.PersistentVector.append) 
> FSharpx.Collections.PersistentVector.empty vec
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### rangePersistentVector 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> /// O(near_to-from). Get the vector at a range.
> let rangePersistentVector from near_to vec =
>     range_checks from near_to vec
>     FSharpx.Collections.PersistentVector.init (near_to-from) (fun i -> 
> vec.[[i+from]])
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### tryFindBack
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> /// O(~n). Returns the last element for which a given function returns true. 
> None if such an element does not exist.
> let tryFindBack f vec =
>     let rec loop i =
>         if 0 <= i then 
>             let x = FSharpx.Collections.PersistentVector.nth i vec
>             if f x then Some x else loop (i-1)
>         else
>             None
>     loop (FSharpx.Collections.PersistentVector.length vec - 1)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## HashConsing
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // Adapted from: https://github.com/backtracking/ocaml-hashcons
> // Type-Safe Modular Hash-Consing: 
> https://www.lri.fr/~filliatr/ftp/publis/hash-consing2.pdf
> 
> // open System
> open System.Runtime.InteropServices
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ConsedNode<'a>
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> [[<CustomComparison;CustomEquality;StructuredFormatDisplay("{AsString}")>]]
> type ConsedNode<'a> =
>     {
>     node: 'a
>     tag: int
>     hkey: int
>     }
> 
>     override x.ToString() = sprintf "<tag %i>" x.tag
>     member x.AsString = x.ToString()
>     override x.GetHashCode() = x.hkey
>     override x.Equals(y) = 
>         match y with 
>         | :? ConsedNode<'a> as y -> x.tag = y.tag
>         | _ -> false
> 
>     interface System.IComparable with
>         member x.CompareTo(y) = 
>             match y with
>             | :? ConsedNode<'a> as y -> compare x.tag y.tag
>             | _ -> raise <| System.ArgumentException "Invalid comparison for 
> HashConsed."
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### HashConsTable
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type HashConsTable() =
>     let mutable table: ResizeArray<GCHandle> [[]] = Array.init 7 (fun _ -> 
> ResizeArray(0))
>     let mutable total_size: int = 0
>     let mutable limit: int = 3
>     let mutable is_finalized: bool = false
>     let mutable counter: int = 0
> 
>     member private t.Resize() =
>         let next_table_length x = x*3/2+3
> 
>         let table_length' = next_table_length table.Length
>         if table_length' <= table.Length then failwith "The hash consing table 
> cannot be grown anymore."
>         let table' = Array.init table_length' (fun i -> ResizeArray())
>         let limit' = limit+2
>         let total_size' = 
>             let mutable total_size=0
>             for i=0 to table.Length-1 do
>                 let table = table.[[i]]
>                 for i=0 to table.Count-1 do
>                     let x = table.[[i]]
>                     total_size <-
>                         match x.Target with
>                         | null -> 
>                             x.Free()
>                             total_size
>                         | a -> 
>                             let bucket = table'.[[(hash a &&& 
> System.Int32.MaxValue) % table_length']]
>                             bucket.Add x
>                             total_size+1
>             total_size
>         table <- table'
>         limit <- limit'
>         total_size <- total_size'
> 
>     member t.Add(x: 'a): ConsedNode<'a> =
>         let hkey = hash x
>         let table = table
>         let bucket = table.[[(hkey &&& System.Int32.MaxValue) % Array.length 
> table]]
>         let sz = bucket.Count
> 
>         let rec loop empty_pos i =
>             if i < sz then
>                 match bucket.[[i]].Target with
>                 | null -> loop i (i+1)
>                 | :? ConsedNode<'a> as y when hkey = y.hkey && x = y.node -> y
>                 | _ -> loop empty_pos (i+1)
>             else
>                 let node = {node=x; hkey=hkey; tag=counter}
>                 counter <- counter+1
>                 if empty_pos <> -1 then
>                     let mutable m = bucket.[[empty_pos]]
>                     m.Target <- node
>                 else
>                     bucket.Add (GCHandle.Alloc(node,GCHandleType.Weak))
>                     total_size <- total_size+1
>                     if total_size > limit * Array.length table then t.Resize()
>                 node
> 
>         loop -1 0 // `-1` indicates the state of no empty bucket
> 
>     override __.Finalize() =
>         if is_finalized = false then
>             table |> (Array.iter << Seq.iter) (fun x -> x.Free())
>             is_finalized <- true
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## Startup
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #r 
> @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> open Argu
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### PrimitiveType
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type PrimitiveType =
>     | UInt8T | UInt16T | UInt32T | UInt64T
>     | Int8T | Int16T | Int32T | Int64T
>     | Float32T | Float64T
>     | BoolT | StringT | CharT
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### DefaultEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type DefaultEnv = {
>     port : int
>     default_int : PrimitiveType
>     default_uint : PrimitiveType
>     default_float : PrimitiveType
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### CliArguments
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type CliArguments =
>     | [[<Mandatory;Unique>]] Port of int
>     | [[<Unique>]] Default_Int of string
>     | [[<Unique>]] Default_Float of string
> 
>     interface IArgParserTemplate with
>         member s.Usage =
>             match s with
>             | Port _ -> "specify a primary port."
>             | Default_Int _ -> "specify the default int: i8, i16, i32, i64, u8, 
> u16, u32, u64"
>             | Default_Float _ -> "specify the default float: f32, f64"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### parseStartup
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let parseStartup args =
>     let parser = ArgumentParser.Create<CliArguments>(programName = "spiral.exe")
>     let results = parser.ParseCommandLine(args)
>     let int = 
>         match results.GetResult(Default_Int,"i32") with
>         | "i8" -> Int8T
>         | "i16" -> Int16T
>         | "i32" -> Int32T
>         | "i64" -> Int64T
>         | "u8" -> UInt8T
>         | "u16" -> UInt16T
>         | "u32" -> UInt32T
>         | "u64" -> UInt64T
>         | x -> failwith $"Invalid default int.\nGot: %s{x}\nExpected one of: i8,
> i16, i32, i64, u8, u16, u32, u64"
> 
>     let uint =
>         match int with
>         | Int8T -> UInt8T
>         | Int16T -> UInt16T
>         | Int32T -> UInt32T
>         | Int64T -> UInt64T
>         | x -> x // If the int is unsigned then make them the same type.
>     {
>     port = results.GetResult(Port)
>     default_int = int
>     default_uint = uint
>     default_float = 
>         match results.GetResult(Default_Float,"f64") with
>         | "f32" -> Float32T
>         | "f64" -> Float64T
>         | x -> failwith $"Invalid default float.\nGot: %s{x}\nExpected one of: 
> f32, f64"
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## Utils
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> open System.Collections.Generic
> open System.Runtime.CompilerServices
> // open Common
> #if !INTERACTIVE
> open Lib
> #endif
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### list_try_zip
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let list_try_zip a b =
>     try Some (List.zip a b) with _ -> None
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### get_default
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline get_default (memo_dict: Dictionary<_,_>) k def =
>     match memo_dict.TryGetValue k with
>     | true, v -> v
>     | false, _ -> def()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### memoize'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline memoize' (memo_dict: ConditionalWeakTable<_,_>) f k =
>     match memo_dict.TryGetValue k with
>     | true, v -> v
>     | false, _ -> let v = f k in memo_dict.Add(k,v); v
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### memoize
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline memoize (memo_dict: Dictionary<_,_>) f k =
>     match memo_dict.TryGetValue k with
>     | true, v -> v
>     | false, _ -> let v = f k in memo_dict.Add(k,v); v
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### lines 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let lines (str : string) =
>     str.Split([[|"\r\n";"\r";"\n"|]],System.StringSplitOptions.None)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### remove 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline remove (dict : Dictionary<_,_>) x on_succ on_fail =
>     let mutable q = Unchecked.defaultof<_>
>     if dict.Remove(x, &q) then on_succ q else on_fail ()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### file_uri
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let file_uri (x : string) =
>     let result = x |> SpiralFileSystem.standardize_path |> 
> SpiralFileSystem.new_file_uri
>     trace Verbose (fun () -> $"Utils.file_uri / x: {x} / result: {result}") 
> _locals
>     result
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //open Hopac
> //open Hopac.Infixes
> //open Hopac.Extensions
> //open Hopac.Stream
> 
> //let print_ch = Ch<string>()
> //let pr x = Hopac.run (Ch.send print_ch (x.ToString()))
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## ParserCombinators
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### index
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline index d = (^a : (member Index: ^b) d)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### index_set
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline index_set i d =
>     (^a : (member set_Index: ^b -> unit) (d,i))
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### (.>>.)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline (.>>.) a b d =
>     match a d with
>     | Ok a ->
>         match b d with
>         | Ok b -> Ok (a,b)
>         | Error x -> Error x
>     | Error x -> Error x   
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### tuple3
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline tuple3 a b c d =
>     match a d with
>     | Ok a ->
>         match b d with
>         | Ok b -> 
>             match c d with
>             | Ok c -> Ok (a, b, c)
>             | Error x -> Error x
>         | Error x -> Error x
>     | Error x -> Error x  
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### tuple4 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline tuple4 a b c d' d =
>     match a d with
>     | Ok a ->
>         match b d with
>         | Ok b -> 
>             match c d with
>             | Ok c -> 
>                 match d' d with
>                 | Ok d' -> Ok (a, b, c, d')
>                 | Error x -> Error x
>             | Error x -> Error x
>         | Error x -> Error x
>     | Error x -> Error x  
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### tuple5 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline tuple5 a b c d' e d =
>     match a d with
>     | Ok a ->
>         match b d with
>         | Ok b -> 
>             match c d with
>             | Ok c -> 
>                 match d' d with
>                 | Ok d' -> 
>                     match e d with
>                     | Ok e -> Ok (a, b, c, d', e)
>                     | Error x -> Error x
>                 | Error x -> Error x
>             | Error x -> Error x
>         | Error x -> Error x
>     | Error x -> Error x  
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### tuple6 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline tuple6 a b c d' e f d =
>     match a d with
>     | Ok a ->
>         match b d with
>         | Ok b -> 
>             match c d with
>             | Ok c -> 
>                 match d' d with
>                 | Ok d' -> 
>                     match e d with
>                     | Ok e -> 
>                         match f d with
>                         | Ok f -> Ok (a, b, c, d', e, f)
>                         | Error x -> Error x
>                     | Error x -> Error x
>                 | Error x -> Error x
>             | Error x -> Error x
>         | Error x -> Error x
>     | Error x -> Error x 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### tuple7 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline tuple7 a b c d' e f g d =
>     match a d with
>     | Ok a ->
>         match b d with
>         | Ok b -> 
>             match c d with
>             | Ok c -> 
>                 match d' d with
>                 | Ok d' -> 
>                     match e d with
>                     | Ok e -> 
>                         match f d with
>                         | Ok f ->
>                             match g d with
>                             | Ok g -> Ok (a, b, c, d', e, f, g)
>                             | Error x -> Error x
>                         | Error x -> Error x
>                     | Error x -> Error x
>                 | Error x -> Error x
>             | Error x -> Error x
>         | Error x -> Error x
>     | Error x -> Error x  
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### pipe2
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline pipe2 a b f d =
>     match a d with
>     | Ok a ->
>         match b d with
>         | Ok b -> Ok (f a b)
>         | Error x -> Error x
>     | Error x -> Error x  
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### pipe3
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline pipe3 a b c f d =
>     match a d with
>     | Ok a ->
>         match b d with
>         | Ok b -> 
>             match c d with
>             | Ok c -> Ok (f a b c)
>             | Error x -> Error x
>         | Error x -> Error x
>     | Error x -> Error x  
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### pipe4
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline pipe4 a b c d' f d =
>     match a d with
>     | Ok a ->
>         match b d with
>         | Ok b -> 
>             match c d with
>             | Ok c -> 
>                 match d' d with
>                 | Ok d' -> Ok (f a b c d')
>                 | Error x -> Error x
>             | Error x -> Error x
>         | Error x -> Error x
>     | Error x -> Error x  
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### pipe5
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline pipe5 a b c d' e f d =
>     match a d with
>     | Ok a ->
>         match b d with
>         | Ok b -> 
>             match c d with
>             | Ok c -> 
>                 match d' d with
>                 | Ok d' -> 
>                     match e d with
>                     | Ok e -> Ok (f a b c d' e)
>                     | Error x -> Error x
>                 | Error x -> Error x
>             | Error x -> Error x
>         | Error x -> Error x
>     | Error x -> Error x  
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### (.>>)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline (.>>) a b d =
>     match a d with
>     | Ok a ->
>         match b d with
>         | Ok b -> Ok a
>         | Error x -> Error x
>     | Error x -> Error x   
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### (>>.) 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline (>>.) a b d =
>     match a d with
>     | Ok a ->
>         match b d with
>         | Ok b -> Ok b
>         | Error x -> Error x
>     | Error x -> Error x   
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### opt
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline opt a d =
>     let s = index d
>     match a d with
>     | Ok a -> Ok(Some a)
>     | Error x -> 
>         if s = index d then Ok(None)
>         else Error x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### optional
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline optional a d = 
>     let s = index d
>     match a d with
>     | Ok a -> Ok()
>     | Error x -> 
>         if s = index d then Ok()
>         else Error x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### (|>>)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline (|>>) a b d =
>     match a d with
>     | Ok a -> Ok(b a)
>     | Error x -> Error x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### (>>%) 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline (>>%) a b d =
>     match a d with
>     | Ok a -> Ok(b)
>     | Error x -> Error x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### (>>=)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline (>>=) a b d =
>     match a d with
>     | Ok a -> b a d
>     | Error x -> Error x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### (>>=?)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline (>>=?) a b d =
>     let i = index d
>     match a d with
>     | Ok a -> 
>         let i' = index d
>         match b a d with
>         | Ok _ as x -> x
>         | Error _ as x -> (if i' = index d then index_set i d); x // Backtracks 
> to the beginning if the parser state has not changed.
>     | Error x -> Error x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### many_iter
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline many_iter f a d =
>     let rec loop () =
>         let s = index d
>         match a d with
>         | Ok _ when s = index d -> failwith "The parser succeeded without 
> changing the parser index in `many`. Had an exception not been raised the parser
> would have diverged."
>         | Ok x -> f x; loop()
>         | Error er -> if s = index d then Ok() else Error er
>     loop ()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### many_resize_array
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline many_resize_array a d =
>     let ar = ResizeArray()
>     match many_iter ar.Add a d with
>     | Ok() -> Ok(ar)
>     | Error er -> Error er
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### many_array
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline many_array a d =
>     many_resize_array a d |> Result.map (fun x -> x.ToArray())
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### many
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline many a d =
>     many_resize_array a d |> Result.map Seq.toList
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### sepBy
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline sepBy a b d =
>     let s = index d
>     match a d with
>     | Ok a' -> (many (b >>. a) |>> fun b -> a' :: b) d
>     | Error x -> if s = index d then Ok [[]] else Error x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### sepBy1
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline sepBy1 a b d =
>     match a d with
>     | Ok a' -> (many (b >>. a) |>> fun b -> a' :: b) d
>     | Error x -> Error x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### many1
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline many1 a d =
>     match a d with
>     | Ok a' -> (many a |>> fun b -> a' :: b) d
>     | Error x -> Error x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### attempt
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline attempt a d =
>     let s = index d
>     match a d with
>     | Ok x -> Ok x
>     | Error a as a' -> index_set s d; a'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### restore
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> /// Restores the index on an error if at least i tokens have been consumed.
> let inline restore i a d =
>     let s = index d
>     match a d with
>     | Ok x -> Ok x
>     | Error _ as er -> (if index d <= s + i then index_set s d); er
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### alt
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline alt s a b d =
>     match a d with
>     | Ok x -> Ok x
>     | Error a as a' -> 
>         if s = index d then
>             match b d with
>             | Ok x -> Ok x
>             | Error b -> if s = index d then Error(List.append a b) else Error b
>         else
>             a'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### (<|>)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline (<|>) a b d = let s = index d in alt s a b d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### (<|>%)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline (<|>%) a b d =
>     let s = index d
>     match a d with
>     | Ok x -> Ok x
>     | Error _ as a' -> if s = index d then Ok b else a'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### choice
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline choice ar d =
>     let s = index d
>     let rec loop i =
>         if i < Array.length ar then
>             match ar.[[i]] d with
>             | Ok x -> Ok x
>             | Error a as a' -> 
>                 if s = index d then
>                     match loop (i+1) with
>                     | Ok x -> Ok x
>                     | Error b -> Error(List.append a b)
>                 else
>                     a'
>         else
>             Error [[]]
>     loop 0
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### between
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline between a b c = a >>. c .>> b
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## LineParsers
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // open System
> // open System.Text
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TokenizerRange
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type TokenizerRange = {from : int; nearTo : int}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TokenizerError
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type TokenizerError = string
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Tokenizer
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Tokenizer = {
>     text : string // A single line.
>     mutable from : int
>     } with
> 
>     member t.Index with get() = t.from and set i = t.from <- i
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### range_char
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let range_char i = {from=i; nearTo=i+1}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### error_char
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let error_char i er = Result.Error [[range_char i, er]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### inc'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inc' i (s : Tokenizer) = s.from <- s.from+i
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### inc
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inc (s : Tokenizer) = inc' 1 s
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### eolLineParsers
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> /// End Of Line character
> let eolLineParsers = System.Char.MaxValue
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### peek'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let peek' (s : Tokenizer) i =
>     let i = s.from + i
>     if 0 <= i && i < s.text.Length then s.text.[[i]]
>     else eolLineParsers
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### peek
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let peek (s : Tokenizer) = peek' s 0
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### many1Satisfy2L
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline many1Satisfy2L init body label (s : Tokenizer) = 
>     let x = peek s
>     if init x && x <> eolLineParsers then
>         inc s
>         let rec loop (b : System.Text.StringBuilder) = 
>             let x = peek s
>             if body x && x <> eolLineParsers then inc s; b.Append(x) |> loop
>             else b.ToString()
>         Result.Ok(loop (System.Text.StringBuilder().Append(x)))
>     else
>         let i = s.from
>         error_char i label
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### many1SatisfyL
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline many1SatisfyL body label (s : Tokenizer) =
>     many1Satisfy2L body body label s
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### skip
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline skip c (s : Tokenizer) =
>     let b = peek s = c in (if b then inc s); b
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### spaces'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec spaces' (s : Tokenizer) =
>     if peek s = ' ' then inc s; spaces' s
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### spaces
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let spaces s =
>     spaces' s |> Result.Ok
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### spaces1
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let spaces1 (s : Tokenizer) =
>     if peek s = ' ' then inc s; spaces s else error_char s.from "space"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### skip_char
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let skip_char c (s : Tokenizer) =
>     let from = s.from
>     if skip c s then Ok() else error_char from (sprintf "'%c'" c)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### skip_string 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let skip_string x (s : Tokenizer) =
>     if System.String.Compare(s.text,s.from,x,0,x.Length) = 0 then inc' x.Length 
> s; Ok()
>     else error_char s.from x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### anyOf
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let anyOf (l : char list) (s : Tokenizer) =
>     let c = peek s
>     if Seq.contains c l then 
>         inc s; Result.Ok(c)
>     else
>         let i = s.from
>         Error (List.map (fun c -> range_char i, string c) l)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### chars_till_string
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let chars_till_string close (s : Tokenizer) =
>     assert (close <> "")
>     let rec loop (b : System.Text.StringBuilder) =
>         let x = peek s
>         if x = close.[[0]] && 
> System.String.Compare(s.text,s.from,close,1,close.Length-1) = 0 then inc' 
> close.Length s; Ok(b.ToString())
>         else 
>             if x <> eolLineParsers then inc s; b.Append(x) |> loop
>             else error_char s.from close
>     loop(System.Text.StringBuilder())
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### numberLineParsers
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> /// Parses a number as a sequence of digits and optionally underscores. Filters 
> out the underscores from the result.
> let numberLineParsers (s : Tokenizer) = 
>     let x = peek s
>     if System.Char.IsDigit x then
>         inc s
>         let rec loop (b : System.Text.StringBuilder) = 
>             let x = peek s
>             if x = '_' then inc s; loop b
>             elif System.Char.IsDigit x then inc s; loop(b.Append(x))
>             else Ok(b.ToString())
>         loop (System.Text.StringBuilder().Append(x))
>     else
>         let i = s.from
>         error_char i "number"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### number_fractional
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let number_fractional s =
>     (numberLineParsers .>>. (opt (skip_char '.' >>. numberLineParsers))) s
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## VSCTypes
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### VSCPos
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type VSCPos = {|line : int; character : int|}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### VSCRange
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type VSCRange = VSCPos * VSCPos
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### RString
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type RString = VSCRange * string
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### PackageId
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type PackageId = int
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ModuleId
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ModuleId = int
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### DirId
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type DirId = int
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### GlobalId
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type GlobalId = { package_id : PackageId; module_id : ModuleId; tag : int }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### RGlobalId
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type RGlobalId = VSCRange * GlobalId
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### SpiEdit
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type SpiEdit = {|from: int; nearTo: int; lines: string [[]]|}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## Tokenize
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // open System
> // open System.Text
> // open FSharpx.Collections
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TokenKeyword
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type TokenKeyword =
>     | SpecIn
>     | SpecAnd
>     | SpecFun
>     | SpecMatch
>     | SpecTypecase
>     | SpecFunction
>     | SpecWith
>     | SpecWithout
>     | SpecAs
>     | SpecWhen
>     | SpecInl
>     | SpecForall
>     | SpecExists
>     | SpecLet
>     | SpecInm
>     | SpecInb
>     | SpecRec
>     | SpecIf
>     | SpecThen
>     | SpecElif
>     | SpecElse
>     | SpecJoin
>     | SpecJoinBackend
>     | SpecType
>     | SpecNominal
>     | SpecReal
>     | SpecUnion
>     | SpecOpen
>     | SpecWildcard
>     | SpecPrototype
>     | SpecInstance
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ParenthesisState
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ParenthesisState = Open | Close
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Parenthesis
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Parenthesis = Round | Square | Curly
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### MacroEnum
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type MacroEnum = MTerm | MType | MTypeLit
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Literal
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Literal = 
>     | LitUInt8 of uint8
>     | LitUInt16 of uint16
>     | LitUInt32 of uint32
>     | LitUInt64 of uint64
>     | LitInt8 of int8
>     | LitInt16 of int16
>     | LitInt32 of int32
>     | LitInt64 of int64
>     | LitFloat32 of float32
>     | LitFloat64 of float
>     | LitBool of bool
>     | LitString of string
>     | LitChar of char
> 
>     // Converts the literal back to their string representation. Doesn't 
> override the default printer.
>     member l.LitToString() =
>         match l with
>         | LitUInt8 x -> x.ToString("R")
>         | LitUInt16 x -> x.ToString("R")
>         | LitUInt32 x -> x.ToString("R")
>         | LitUInt64 x -> x.ToString("R")
>         | LitInt8 x -> x.ToString("R")
>         | LitInt16 x -> x.ToString("R")
>         | LitInt32 x -> x.ToString("R")
>         | LitInt64 x -> x.ToString("R")
>         | LitFloat32 x -> x.ToString("R")
>         | LitFloat64 x -> x.ToString("R")
>         | LitBool x -> x.ToString()
>         | LitString x -> x
>         | LitChar x -> x.ToString()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### SemanticTokenLegend
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type SemanticTokenLegend =
>     | variable = 0
>     | symbol = 1
>     | string = 2
>     | number = 3
>     | operator = 4
>     | unary_operator = 5
>     | comment = 6
>     | keyword = 7
>     | parenthesis = 8
>     | type_variable = 9
>     | escaped_char = 10
>     | unescaped_char = 11
>     | number_suffix = 12
>     | escaped_var = 13
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### SpiralToken
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type SpiralToken =
>     | TokVar of string * SemanticTokenLegend
>     | TokSymbol of string * SemanticTokenLegend
>     | TokOperator of string * SemanticTokenLegend
>     | TokUnaryOperator of string * SemanticTokenLegend
>     | TokValue of Literal
>     | TokValueSuffix
>     | TokDefaultValue of string
>     | TokComment of string
>     | TokKeyword of TokenKeyword
>     | TokParenthesis of Parenthesis * ParenthesisState
>     | TokStringOpen | TokStringClose
>     | TokText of string
>     | TokEscapedChar of char
>     | TokEscapedVar
>     | TokUnescapedChar of char
>     | TokMacroOpen | TokMacroClose
>     | TokMacroTermVar of string
>     | TokMacroTypeVar of string
>     | TokMacroTypeLitVar of string
>     | TokMacroExpression of MacroEnum * ParenthesisState
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### token_groups
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let token_groups = function
>     | TokUnaryOperator(_,r) | TokOperator(_,r) | TokVar(_,r) | TokSymbol(_,r) ->
> r
>     | TokValue (LitChar _) | TokStringOpen | TokStringClose | TokText _ | 
> TokMacroOpen | TokMacroClose | TokValue(LitString _) -> 
> SemanticTokenLegend.string
>     | TokComment _ -> SemanticTokenLegend.comment
>     | TokKeyword _ -> SemanticTokenLegend.keyword
>     | TokParenthesis _ -> SemanticTokenLegend.parenthesis
>     | TokMacroTypeVar _ -> SemanticTokenLegend.type_variable
>     | TokMacroTypeLitVar _ -> SemanticTokenLegend.type_variable
>     | TokMacroTermVar _ -> SemanticTokenLegend.variable
>     | TokMacroExpression _ -> SemanticTokenLegend.parenthesis
>     | TokEscapedChar _ -> SemanticTokenLegend.escaped_char
>     | TokEscapedVar -> SemanticTokenLegend.escaped_var
>     | TokUnescapedChar _ -> SemanticTokenLegend.unescaped_char
>     | TokValue _ | TokDefaultValue _ -> SemanticTokenLegend.number
>     | TokValueSuffix -> SemanticTokenLegend.number_suffix
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### show_lit
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let show_lit = function
>     | LitUInt8 x -> sprintf "%iu8" x
>     | LitUInt16 x -> sprintf "%iu16" x
>     | LitUInt32 x -> sprintf "%iu32" x
>     | LitUInt64 x -> sprintf "%iu64" x
>     | LitInt8 x -> sprintf "%ii8" x
>     | LitInt16 x -> sprintf "%ii16" x
>     | LitInt32 x -> sprintf "%ii32" x
>     | LitInt64 x -> sprintf "%ii64" x
>     | LitFloat32 x -> sprintf "%ff32" x
>     | LitFloat64 x -> sprintf "%ff64" x
>     | LitBool x -> sprintf "%b" x
>     | LitString x -> sprintf "%s" x
>     | LitChar x -> sprintf "%c" x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_small_var_char_starting
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_small_var_char_starting c = System.Char.IsLower c || c = '_'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_var_char
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_var_char c = System.Char.IsLetterOrDigit c || c = '_' || c = '''
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_big_var_char_starting
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_big_var_char_starting c = System.Char.IsUpper c
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_parenth_open
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_var_char_starting c = System.Char.IsLetter c || c = '_'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_parenth_open
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_parenth_open c = 
>     let f x = c = x
>     f '(' || f '[[' || f '{'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_parenth_close
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_parenth_close c = 
>     let f x = c = x
>     f ')' || f ']]' || f '}'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_operator_char
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // http://www.asciitable.com/
> let is_operator_char c =
>     let f x = c = x
>     '!' <= c && c <= '~' && (is_var_char c || f '"' || is_parenth_open c || 
> is_parenth_close c) = false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_prefix_separator_char
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_prefix_separator_char c = 
>     let f x = c = x
>     f ' ' || f eolLineParsers || is_parenth_open c
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_postfix_separator_char
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_postfix_separator_char c = 
>     let f x = c = x
>     f ' ' || f eolLineParsers || is_parenth_close c
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_separator_char
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_separator_char c = is_prefix_separator_char c || is_parenth_close c
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let var (s: Tokenizer) = 
>     let from = s.from
>     let ok x = Result.Ok ({from=from; nearTo=s.from}, x)
>     let body x _ = 
>         if skip ':' s then error_char from ": is not allowed directly after a 
> var."
>         else
>             let f x = TokKeyword(x)
>             match x with
>             | "in" -> f SpecIn
>             | "and" -> f SpecAnd | "fun" -> f SpecFun
>             | "match" -> f SpecMatch | "typecase" -> f SpecTypecase
>             | "function" -> f SpecFunction
>             | "with" -> f SpecWith | "without" -> f SpecWithout
>             | "as" -> f SpecAs | "when" -> f SpecWhen
>             | "inl" -> f SpecInl | "forall" -> f SpecForall
>             | "let" -> f SpecLet | "inm" -> f SpecInm
>             | "inb" -> f SpecInb | "rec" -> f SpecRec
>             | "if" -> f SpecIf | "then" -> f SpecThen
>             | "elif" -> f SpecElif | "else" -> f SpecElse
>             | "join" -> f SpecJoin | "join_backend" -> f SpecJoinBackend
>             | "type" -> f SpecType | "nominal" -> f SpecNominal 
>             | "real" -> f SpecReal | "union" -> f SpecUnion
>             | "open" -> f SpecOpen | "_" -> f SpecWildcard
>             | "prototype" -> f SpecPrototype | "instance" -> f SpecInstance
>             | "true" -> TokValue(LitBool true) | "false" -> TokValue(LitBool 
> false)
>             | "exists" -> f SpecExists
>             | x -> TokVar(x,SemanticTokenLegend.variable)
>             |> ok
> 
>     (many1Satisfy2L is_var_char_starting is_var_char "variable" >>= body .>> 
> spaces) s
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### numberTokenize
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let numberTokenize (s: Tokenizer) = 
>     let from = s.from
> 
>     let parser (s: Tokenizer) = 
>         if peek s = '-' && System.Char.IsDigit (peek' s 1) && 
> is_prefix_separator_char (peek' s -1) then 
>             inc s
>             number_fractional s |> Result.map (function 
>                 | (a,Some b) -> sprintf "-%s.%s" a b
>                 | (a,None) -> "-"+a)
>         else number_fractional s |> Result.map (function 
>                 | (a,Some b) -> sprintf "%s.%s" a b
>                 | (a,None) -> a)
>     
>     let followedBySuffix x (s: Tokenizer) =
>         let from' = s.from
>         let inline safe_parse string_to_val val_to_lit val_dsc =
>             if (let x = peek s in is_separator_char x || is_operator_char x) 
> then
>                 match string_to_val x with
>                 | true, x -> Ok [[{from=from; nearTo=from'}, TokValue(val_to_lit
> x); {from=from'; nearTo=s.from}, TokValueSuffix]]
>                 | false, _ -> Error [[{from=from; nearTo=s.from}, (sprintf "The 
> string %s cannot be safely parsed as %s." x val_dsc)]]
>             else error_char s.from "separator"
>         let skip c = skip c s
>         if skip 'i' then
>             if skip '8' then safe_parse System.SByte.TryParse LitInt8 "i8"
>             elif skip '1' && skip '6' then safe_parse System.Int16.TryParse 
> LitInt16 "i16"
>             elif skip '3' && skip '2' then safe_parse System.Int32.TryParse 
> LitInt32 "i32"
>             elif skip '6' && skip '4' then safe_parse System.Int64.TryParse 
> LitInt64 "i64"
>             else error_char s.from "8,16,32 or 64"
>         elif skip 'u' then
>             if skip '8' then safe_parse System.Byte.TryParse LitUInt8 "uint8"
>             elif skip '1' && skip '6' then safe_parse System.UInt16.TryParse 
> LitUInt16 "u16"
>             elif skip '3' && skip '2' then safe_parse System.UInt32.TryParse 
> LitUInt32 "u32"
>             elif skip '6' && skip '4' then safe_parse System.UInt64.TryParse 
> LitUInt64 "u64"
>             else error_char s.from "8,16,32 or 64"
>         elif skip 'f' then
>             if skip '3' && skip '2' then safe_parse System.Single.TryParse 
> LitFloat32 "f32"
>             elif skip '6' && skip '4' then safe_parse System.Double.TryParse 
> LitFloat64 "f64"
>             else error_char s.from "32 or 64"
>         else Ok [[{from=from; nearTo=s.from}, TokDefaultValue x]]
> 
>     (parser >>= followedBySuffix .>> spaces) s
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### symbol
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let symbol s =
>     let from = s.from
>     let f x = ({from=from; nearTo=s.from}, x)
> 
>     let symbol x = TokSymbol(x,SemanticTokenLegend.symbol)
>     let x = peek s
>     let x' = peek' s 1
>     if x = '.' && x' = '(' then inc' 2 s; ((many1SatisfyL is_operator_char 
> "operator") .>> skip_char ')' |>> (symbol >> f) .>> spaces) s
>     elif x = '.' && is_var_char_starting x' then inc s; ((many1SatisfyL 
> is_var_char "variable") |>> (symbol >> f) .>> spaces) s
>     else error_char from "symbol"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### comment
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let comment (s : Tokenizer) =
>     if peek s = '/' && peek' s 1 = '/' then 
>         let from = s.from
>         inc' 2 s
>         while peek s = '/' || (peek s = '!' && peek' s 1 = ' ') do
>             inc s
>         if skip ' ' s then
>             let com = s.text.[[s.from..]]
>             s.from <- s.text.Length
>             Ok ({from=from; nearTo=s.from}, TokComment com)
>         else error_char s.from "whitespace"
>     else
>         error_char s.from "comment"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### operator
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let operator (s : Tokenizer) = 
>     let from = s.from
>     let ok x = ({from=from; nearTo=s.from}, x) |> Ok
>     let is_separator_prev = is_prefix_separator_char (peek' s -1)
>     let f name (s: Tokenizer) = 
>         if is_separator_prev && (is_postfix_separator_char (peek s) = false) 
> then TokUnaryOperator(name,SemanticTokenLegend.unary_operator) |> ok
>         else TokOperator(name,SemanticTokenLegend.operator) |> ok
>     (many1SatisfyL is_operator_char "operator"  >>= f .>> spaces) s
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### string_raw
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let string_raw s =
>     let from = s.from
>     let f x = {from=from; nearTo=s.from}, TokValue(LitString x)
>     (skip_string "@\"" >>. chars_till_string "\"" |>> f .>> spaces) s
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### char_quoted
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let char_quoted s = 
>     let char_quoted_body (s: Tokenizer) =
>         let inline read on_succ =
>             let x = peek s
>             if x <> eolLineParsers then inc s; on_succ x
>             else error_char s.from "character or '"
>         read (function
>             | '\\' -> 
>                 read (Ok << function
>                     | 'n' -> '\n' | 'r' -> '\r' | 't' -> '\t' | 'b' -> '\b'
>                     | x -> x
>                     )
>             | x -> Ok x
>             )
>     let from = s.from
>     let f _ x _ = {from=from; nearTo=s.from}, TokValue(LitChar x)
>     (pipe3 (skip_char '\'') char_quoted_body (skip_char '\'') f .>> spaces) s
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### special_char
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline special_char l text s =
>     let inline f from x = {from=from; nearTo=s.from}, x
>     let f = f s.from
>     inc s
>     let esc x = inc s; text (f (TokEscapedChar x) :: l)
>     let unesc x = inc s; text (f (TokUnescapedChar x) :: l)
>     match peek s with 
>     | x when x = eolLineParsers -> error_char s.from "character"
>     | 'n' -> esc '\n' | 'r' -> esc '\r'  | 't' -> esc '\t'  | 'b' -> esc '\b' 
>     | x -> unesc x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### string_quoted'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let string_quoted' s =
>     let inline f from x = {from=from; nearTo=s.from}, x
>     let close l = let f = f s.from in inc s; List.rev (f TokStringClose :: l) |>
> Ok
>     let rec text l =
>         let f = f s.from
>         let rec loop (str : System.Text.StringBuilder) =
>             let l () = if 0 < str.Length then f (TokText(str.ToString())) :: l 
> else l
>             match peek s with
>             | x when x = eolLineParsers -> error_char s.from "character or \""
>             | '\\' -> special_char (l ()) text s
>             | '"' -> close (l ())
>             | x -> inc s; loop (str.Append(x))
>         loop (System.Text.StringBuilder())
>         
>     match peek s with
>     | '"' -> let f = f s.from in inc s; text [[f TokStringOpen]]
>     | _ -> error_char s.from "\""
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### string_quoted
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let string_quoted s = (string_quoted' .>> spaces) s
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TokenizerMacro
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type TokenizerMacro =
>     | Text of TokenizerRange * string
>     | EscapedChar of TokenizerRange * char
>     | EscapedVar of TokenizerRange
>     | UnescapedChar of TokenizerRange * char
>     | Expression of TokenizerRange * string * MacroEnum
>     | Var of TokenizerRange * string * MacroEnum
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### range
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline range p s = 
>     let from = s.from
>     match p s with
>     | Ok x -> Ok({from=from; nearTo=s.from}, x)
>     | Error l -> Error l
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### brackets
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let brackets s =
>     let from = s.from
>     let f spec = inc s; (spaces >>% ({from=from; nearTo=s.from}, 
> TokParenthesis(spec))) s
>     match peek s with
>     | '(' -> f (Round,Open) | '[[' -> f (Square,Open) | '{' -> f (Curly,Open)
>     | ')' -> f (Round,Close) | ']]' -> f (Square,Close) | '}' -> f (Curly,Close)
>     | _ -> error_char s.from "`(`,`[[`,`{`,`}`,`]]` or `)`"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### tab
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let tab s = if peek s = '\t' then Error [[range_char (index s), "Tabs are not 
> allowed."]] else Error [[]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### eolTokenize
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let eolTokenize s = if peek s = eolLineParsers then Ok [[]] else Error 
> [[range_char (index s), "end of line"]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### token
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec token s =
>     let i = s.from
>     let inline (+) a b = alt i a b
>     let individual_tokens = string_quoted + numberTokenize + ((var + symbol + 
> string_raw + char_quoted + brackets + comment + operator) |>> fun x -> [[x]]) 
> |>> fun x -> x, [[]]
>     (macro + individual_tokens) s
> and tokenize text =
>     let mutable ar = FSharpx.Collections.PersistentVector.empty
>     let mutable er = [[]]
>     let tokens =
>         many_iter (fun (x : (TokenizerRange * SpiralToken) list,er' : 
> (TokenizerRange * string) list) ->
>             List.iter (fun x -> ar <- FSharpx.Collections.PersistentVector.conj 
> x ar) x
>             er <- List.append er' er
>             ) token
>     let er = match (spaces >>. tokens .>> (eolTokenize <|> tab)) {from=0; 
> text=text} with Ok() -> er | Error er' -> List.append er' er
>     ar, er
> and macro s =
>     let char_to_macro_expr = function
>         | '`' -> MType
>         | '!' -> MTerm
>         | '@' -> MTypeLit
>         | _ -> failwith "Compiler error: Unknown char in the tokenizer."
> 
>     let p_special_char s =
>         match peek' s 0, peek' s 1 with
>         | '\\', ('n' | 'r' | 't' | 'b' as c) -> 
>             let r = {from=s.from; nearTo=s.from+2}
>             inc' 2 s
>             Ok(EscapedChar(r, c))
>         | '\\', ('v' as c) -> 
>             let r = {from=s.from; nearTo=s.from+2}
>             inc' 2 s
>             Ok(EscapedVar(r))
>         | '\\', c ->
>             let r = {from=s.from; nearTo=s.from+2}
>             inc' 2 s 
>             Ok(UnescapedChar(r, c))
>         | _ -> error_char s.from "\\"
> 
>     let p_var s = (many1Satisfy2L is_var_char_starting is_var_char "variable") s
>     let p_text closing_char s = (range (many1SatisfyL (fun c -> c <> 
> closing_char && c <> '`' && c <> '!' && c <> '@' && c <> '\\') "macro text") |>>
> Text) s
>     let p_expr s = 
>         let start = anyOf [['`'; '!'; '@']]
>         let case_paren start_char = 
>             let mutable c = 1 // number of open parens.
>             between (skip_char '(') (skip_char ')') (many1SatisfyL (fun x -> // 
> Stops when the number of open parens is 0.
>                 c <- c + (match x with '(' -> 1 | ')' -> -1 | _ -> 0)
>                 c > 0
>                 ) "not )") 
>             |>> fun (body) range -> Expression(range,body,char_to_macro_expr 
> start_char)
>         let case_var start_char =
>             (skip_char start_char |>> fun () range -> 
> UnescapedChar(range,start_char))
>             <|> (p_var |>> fun body range -> Var(range,body,char_to_macro_expr 
> start_char))
>         (range (start >>= fun start_char -> (case_paren start_char <|> case_var 
> start_char))
>         |>> fun (range, f) -> f range) s
>     let p_macro_inner closing_char s = (many (p_special_char <|> p_text 
> closing_char <|> p_expr) <|>% [[]]) s
>     let p_macro s =
>         let body a b = range (between (skip_string a) (skip_char b) 
> (p_macro_inner b))
>         (body "$\"" '"' <|> body "$'" ''') s
> 
>     match (p_macro .>> spaces) s with
>     | Ok(r, x) -> 
>         let start = 
>             let r = {from=r.from; nearTo=r.from+2}
>             r, TokMacroOpen
>         let end_ = 
>             let r = {from=r.nearTo-1; nearTo=r.nearTo}
>             r, TokMacroClose
>     
>         let mutable er = [[]]
>         x |> List.collect (function
>             | Text(r,x) -> [[r, TokText x]]
>             | EscapedChar(r,x) ->
>                 let x = match x with 'n' -> '\n' | 'r' -> '\r' | 't' -> '\t' | 
> 'b' -> '\b' | x -> x
>                 [[r, TokEscapedChar x]]
>             | EscapedVar(r) -> [[r, TokEscapedVar]]
>             | UnescapedChar(r,x) -> [[r, TokUnescapedChar x]]
>             | Var(r,x,MType) -> [[r, TokMacroTypeVar x]]
>             | Var(r,x,MTypeLit) -> [[r, TokMacroTypeLitVar x]]
>             | Var(r,x,MTerm) -> [[r, TokMacroTermVar x]]
>             | Expression(r,x,t) -> 
>                 let start = 
>                     let r = {from=r.from; nearTo=r.from+2}
>                     r, TokMacroExpression(t,Open)
>                 let end_ = 
>                     let r = {from=r.nearTo-1; nearTo=r.nearTo}
>                     r, TokMacroExpression(t,Close)
>                 let middle,er' =
>                     let adjust_range (r : TokenizerRange,x) = {from=r.from + 
> (fst start).nearTo; nearTo=r.nearTo + (fst start).nearTo}, x
>                     let middle,er' = tokenize x
>                     FSharpx.Collections.PersistentVector.map adjust_range 
> middle,
>                     List.map adjust_range er'
>                 er <- List.append er' er
>                 List.concat [[[[start]]; List.ofSeq middle; [[end_]]]]
>             )
>         |> fun l -> Ok(List.concat [[[[start]]; l; [[end_]]]], er)
>     | Error er -> Error er
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### LineToken
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type LineToken = TokenizerRange * SpiralToken
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### LineComment
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type LineComment = TokenizerRange * string
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### LineTokenErrors
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type LineTokenErrors = (TokenizerRange * TokenizerError) list
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### vscode_tokens
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let vscode_tokens ((a,b) : VSCRange) (lines : LineToken 
> FSharpx.Collections.PersistentVector FSharpx.Collections.PersistentVector) =
>     let in_range x = min lines.Length x
>     let from, near_to = in_range a.line, in_range (b.line+1)
>     let toks = ResizeArray()
>     let rec loop i line_delta =
>         if i < near_to then
>             lines.[[i]] |> FSharpx.Collections.PersistentVector.fold (fun 
> (line_delta,from_prev) (r,x) ->
>                 toks.AddRange [[|line_delta; r.from-from_prev; r.nearTo-r.from; 
> int (token_groups x); 0|]]
>                 0, r.from
>                 ) (line_delta, 0)
>             |> fst |> ((+) 1) |> loop (i+1)
>     
>     loop from from
>     toks.ToArray()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## BlockSplitting
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // open FSharpx.Collections
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### LineTokens
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type LineTokens = LineToken FSharpx.Collections.PersistentVector 
> FSharpx.Collections.PersistentVector
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Block<'a>
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Block<'a> = {block: 'a; offset: int}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### block_at
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> /// Reads the comments up to a statement, and then reads the statement body. 
> Leaves any errors for the parsing stage.
> let block_at (lines : LineTokens) i =
>     let mutable block = FSharpx.Collections.PersistentVector.empty
>     let add x = block <- FSharpx.Collections.PersistentVector.conj x block
>     let rec loop_initial i =
>         if i < lines.Length then
>             let x = lines.[[i]]
>             add x
>             if 0 < x.Length then
>                 let r,t = x.[[0]]
>                 if r.from = 0 then
>                     match t with
>                     | TokComment _ -> loop_initial (i+1)
>                     | _ -> loop_body (i+1)
>                 else loop_initial (i+1) // This branch will be an error in the 
> parsing stage unless the token is a comment.
>             else loop_initial (i+1)
>     and loop_body i =
>         if i < lines.Length then
>             let x = lines.[[i]]
>             if 0 < x.Length then
>                 let r,_ = x.[[0]]
>                 if r.from <> 0 then add x; loop_body (i+1)
>             else add x; loop_body (i+1)
>     loop_initial i
>     {block = block; offset = i}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### block_all
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // Parses all the blocks.
> let rec block_all lines i = 
>     if i < FSharpx.Collections.PersistentVector.length lines then 
>         let x = block_at lines i
>         x :: block_all lines (i+x.block.Length) else [[]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_block_all
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // Parses all the blocks with diffing. Only parses those blocks which are dirty 
> based of the edit range. Preserves ref equality and saves work.
> // Without considering ref preservation, it is functionally equivalent to just 
> call `block_all` on just `lines`.
> // This function is difficult to read as it is several operations fused into one
> loop.
> let wdiff_block_all (blocks : LineTokens Block list) (lines : LineTokens, 
> lines_added, from, nearTo) =
>     // Lines added minus lines removed.
>     let line_adjustment = lines_added - (nearTo - from)
>     // The dirty block boundary needs to be more conservative when a separator 
> is added in the first position of block.
>     // Imagine adding a newline right on a block start. This would extend the 
> previous block, but the naive check would not react to it.
>     // The same goes for pasting an indented piece of text.
>     let dirty_from = let x = lines.[[from]] in from - (if x.Length = 0 || 0 < 
> (fst x.[[0]]).from then 1 else 0)
>     let is_dirty (x : LineTokens Block) = (dirty_from <= x.offset && x.offset < 
> nearTo) || (x.offset <= dirty_from && dirty_from < x.offset + x.block.Length)
>     let rec loop blocks i =
>         if i < lines.Length then
>             match blocks with
>             | x :: xs ->
>                 // If the block is dirty, forget it.
>                 if is_dirty x then loop xs i else 
>                     // If the block is past the removal range, adjust its line 
> offset.
>                     let x = {x with offset=if nearTo <= x.offset then x.offset +
> line_adjustment else x.offset}
>                     // The block can't be dirty here. Hence if the offsets are 
> the same, so are the blocks. Take it.
>                     if x.offset = i then x :: loop xs (i + x.block.Length)
>                     // Else if the block has been skipped over, forget it.
>                     elif x.offset < i then loop xs i
>                     // Else the block has been dirty filtered, recalculate it.
>                     else let x = block_at lines i in x :: loop blocks (i + 
> x.block.Length)
>             | [[]] -> block_all lines i
>         else [[]]
>     loop blocks 0
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## BlockParsing
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #r 
> @"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
> arsec.dll"
> #r 
> @"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
> arsecCS.dll"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // open System
> // open FParsec
> // open FSharp.Core
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### SymbolString
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type SymbolString = string
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### VarString
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type VarString = string
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### NominalString
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type NominalString = string
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Layout
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Layout = Heap | HeapMutable | StackMutable
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### FunType
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type FunType = FT_Vanilla | FT_Pointer | FT_Closure // The closure and the 
> pointer are specific to the C++ backend.
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Op
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Op =
>     // Converts the function to a specialized type specific to the C++ backend.
>     | ToFunPtr
>     | ToFunClosure
> 
>     // Compile time hash set
>     | HashSetCreate
>     | HashSetAdd
>     | HashSetContains
>     | HashSetRemove
>     | HashSetCount
> 
>     // Compile time hash map
>     | HashMapCreate
>     | HashMapSetImmutable
>     | HashMapSet
>     | HashMapAdd
>     | HashMapTryAdd
>     | HashMapContains
>     | HashMapRemove
>     | HashMapCount
>     | HashMapTryGet
> 
>     // Pragma
>     | PragmaUnrollPush
>     | PragmaUnrollPop
>     
>     // Backend branching
>     | BackendSwitch
> 
>     // Reordering check
>     | UsesOriginalTermVars
>     | UsesOriginalNominals
> 
>     // Imports
>     | Global
>     
>     // Python
>     | ToPythonRecord
>     | ToPythonNamedTuple
> 
>     // Branching
>     | While
>     | Do
>     | Indent
> 
>     // Layout
>     | LayoutToHeap
>     | LayoutToHeapMutable
>     | LayoutToStackMutable
>     | LayoutIndex
> 
>     // Type
>     | TypeToVar
>     | TypeToSymbol
>     | TypeLitToLit
>     | LitToTypeLit
>     | LitToSymbol
> 
>     // Closure conversion
>     | Dyn
> 
>     // Nominal 
>     | NominalCreate // In addition to regular nominals, it can also creates 
> unions
>     | NominalStrip
>     | NominalTypeApply
> 
>     // Union
>     | Unbox
>     | Unbox2
>     | UnionTag
>     | UnionUntag
>     | UnionToRecord
> 
>     // String
>     | StringLength
>     | StringIndex
>     | StringSlice
>     | StaticStringConcat
>     | Printf // Cuda specific
> 
>     // Array
>     | ArrayCreate
>     | ArrayLength
>     | ArrayIndex
>     | ArrayIndexSet
> 
>     // Record
>     | RecordMap
>     | RecordIter
>     | RecordFilter
>     | RecordFold
>     | RecordFoldBack
>     | RecordLength
> 
>     // Record Type
>     | RecordTypeMap
>     | RecordTypeIter
>     | RecordTypeFold
>     | RecordTypeFoldBack
>     | RecordTypeLength
>     | RecordTypeTryFind
> 
>     // BinOps
>     | Add
>     | Sub
>     | Mult 
>     | Div 
>     | Mod 
>     | Pow
>     | LTE
>     | LT
>     | EQ
>     | TypeEq
>     | NEQ
>     | GT
>     | GTE 
>     | BoolAnd
>     | BoolOr
>     | BitwiseAnd
>     | BitwiseOr
>     | BitwiseXor
>     | BitwiseComplement
>     | ShiftLeft
>     | ShiftRight
> 
>     // Unary math ops
>     | Neg
>     | Tanh
>     | Log
>     | Exp
>     | Sin
>     | Cos
>     | Sqrt
>     | NanIs
>     | Conv
> 
>     // Infinity
>     | Infinity
>     | Pi
> 
>     // Static Is
>     | LitIs
>     | PrimIs
>     | SymbolIs
>     | VarIs
>     | UnionIs
>     | HeapUnionIs
>     | LayoutIs
>     | NominalIs
>     | FunctionIs
>     | ExistsIs
>     | PrototypeHas
> 
>     // Static Type Is
>     | PrimTypeIs
>     | SymbolTypeIs
>     | UnionTypeIs
>     | HeapUnionTypeIs
>     | LayoutTypeIs
>     | ExistsTypeIs
>     | NominalTypeIs
> 
>     // Panic
>     | FailWith
> 
>     // Static unary operations
>     | PrintStatic
>     | PrintRaw
>     | ErrorType
>     | ExistsStrip
>     | StringLitToSymbol
>     | SymbolToString
>     
>     // Serialization helpers
>     | VarTag
>     | TagToSymbol
>     | FunctionTermSlotsGet
>     | FunctionTermSlotsSet
>     | FreeVars
>     | FreeVarsReplace
>     | SizeOf
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### PatternCompilationErrors
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type PatternCompilationErrors =
>     | DisjointOrPatternVar
>     | DuplicateTermVar
>     | DuplicateTypeVar
>     | ShadowedVar
>     | DuplicateRecordSymbol
>     | DuplicateRecordInjection
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ParserErrors
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ParserErrors =
>     | TypeVarsNeedToBeExplicitForExists
>     | InvalidPattern of PatternCompilationErrors
>     | ExpectedKeyword of TokenKeyword
>     | ExpectedStringOpen | ExpectedStringClose
>     | ExpectedMacroOpen | ExpectedMacroClose
>     | ExpectedMacroVar | ExpectedMacroTypeVar | ExpectedMacroTypeLitVar 
>     | ExpectedEscapedChar of is_term_macro : bool
>     | ExpectedText | ExpectedUnescapedChar
>     | ExpectedOperator'
>     | ExpectedOperator of string
>     | ExpectedUnaryOperator'
>     | ExpectedUnaryOperator of string
>     | ExpectedUnit
>     | ExpectedVar
>     | ExpectedVarOrOpAsNameOfRecStatement
>     | ExpectedVarOrOpAsNameOfGlobalStatement
>     | ExpectedSmallVar
>     | ExpectedBigVar
>     | ExpectedLit
>     | ExpectedSymbolPaired
>     | SymbolPairedShouldStartWithUppercaseInTypeScope
>     | ExpectedSymbol
>     | ExpectedParenthesis of Parenthesis * ParenthesisState
>     | ExpectedMacroExpression of MacroEnum * ParenthesisState
>     | ExpectedOpenParenthesis
>     | ExpectedStatement
>     | ExpectedEob
>     | ExpectedFunctionAsBodyOfRecStatement
>     | ExpectedSinglePatternWhenStatementNameIsNorVarOrOp
>     | ExpectedGlobalFunction
>     | ExpectedExpression
>     | InbuiltOpNotFound
>     | UnknownOperator
>     | UnexpectedEob
>     | UnexpectedAndInlRec
>     | ForallNotAllowed
>     | TypecaseNotAllowed
>     | MetavarNotAllowed
>     | TermNotAllowed
>     | UnknownError
>     | DuplicateRecordTypeVar
>     | DuplicateForallVar
>     | DuplicateExistsVar
>     | DuplicateConstraint
>     | DuplicateTermRecordSymbol
>     | DuplicateTermRecordInjection
>     | DuplicateRecFunctionName
>     | BottomUpNumberParseError of string * string
>     | ExpectedPairedSymbolInUnion
>     | DuplicateUnionKey
>     | MetavarShadowedByVar
>     | VarShadowedByMetavar
>     | ListLiteralsNotAllowedInBottomUp
>     | ArrayLiteralsNotAllowedInBottomUp
>     | ForallNotAllowedInTypecase
>     | ExistsNotAllowedInTypecase
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### RawKindExpr
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type RawKindExpr =
>     | RawKindWildcard
>     | RawKindStar
>     | RawKindFun of RawKindExpr * RawKindExpr
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### UnionLayout
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type UnionLayout = UStack | UHeap
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### HoVar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type HoVar = VSCRange * (VarString * RawKindExpr)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TypeVar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type TypeVar = HoVar * (VSCRange * VarString) list
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### RawMacro
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type RawMacro =
>     | RawMacroText of VSCRange * string
>     | RawMacroTerm of VSCRange * RawExpr
>     | RawMacroType of VSCRange * RawTExpr
>     | RawMacroTypeLit of VSCRange * RawTExpr
> and RawRecordWith =
>     | RawRecordWithSymbol of (VSCRange * SymbolString) * RawExpr
>     | RawRecordWithSymbolModify of (VSCRange * SymbolString) * RawExpr
>     | RawRecordWithInjectVar of (VSCRange * VarString) * RawExpr
>     | RawRecordWithInjectVarModify of (VSCRange * VarString) * RawExpr
> and RawRecordWithout =
>     | RawRecordWithoutSymbol of VSCRange * SymbolString
>     | RawRecordWithoutInjectVar of VSCRange * VarString
> and PatRecordMember =
>     | PatRecordMembersSymbol of (VSCRange * SymbolString) * name: Pattern
>     | PatRecordMembersInjectVar of (VSCRange * VarString) * name: Pattern
> and Pattern =
>     | PatB of VSCRange
>     | PatE of VSCRange
>     | PatVar of VSCRange * VarString
>     | PatDyn of VSCRange * Pattern
>     | PatUnbox of VSCRange * symbol: string * Pattern
>     | PatExists of VSCRange * (VSCRange * VarString) list * Pattern
>     | PatAnnot of VSCRange * Pattern * RawTExpr
>     | PatPair of VSCRange * Pattern * Pattern
>     | PatSymbol of VSCRange * string
>     | PatRecordMembers of VSCRange * PatRecordMember list
>     | PatOr of VSCRange * Pattern * Pattern
>     | PatAnd of VSCRange * Pattern * Pattern
>     | PatValue of VSCRange * Literal
>     | PatDefaultValue of VSCRange * VarString
>     | PatWhen of VSCRange * Pattern * RawExpr
>     | PatNominal of VSCRange * (VSCRange * VarString) *  (VSCRange * VarString) 
> list * Pattern
>     | PatArray of VSCRange * Pattern list
>     | PatFilledDefaultValue of VSCRange * VarString * RawTExpr // Filled in by 
> the inferencer.
> and RawExpr =
>     | RawB of VSCRange
>     | RawV of VSCRange * VarString * is_tvar_applied : bool
>     | RawLit of VSCRange * Literal
>     | RawDefaultLit of VSCRange * string
>     | RawSymbol of VSCRange * SymbolString
>     | RawType of VSCRange * RawTExpr
>     | RawMatch of VSCRange * body: RawExpr * (Pattern * RawExpr) list
>     | RawFun of VSCRange * (Pattern * RawExpr) list
>     | RawForall of VSCRange * TypeVar * RawExpr
>     | RawExists of VSCRange * (VSCRange * RawTExpr list option) * RawExpr
>     | RawRecBlock of VSCRange * ((VSCRange * VarString) * RawExpr) list * 
> on_succ: RawExpr // The bodies of a block must be RawFun or RawForall.
>     | RawRecordWith of VSCRange * RawExpr list * RawRecordWith list * 
> RawRecordWithout list
>     | RawOp of VSCRange * Op * RawExpr list
>     | RawJoinPoint of VSCRange * backend: (VSCRange * string) option * RawExpr *
> name: string option
>     | RawAnnot of VSCRange * RawExpr * RawTExpr
>     | RawTypecase of VSCRange * RawTExpr * (RawTExpr * RawExpr) list
>     | RawOpen of VSCRange * (VSCRange * VarString) * (VSCRange * SymbolString) 
> list * on_succ: RawExpr
>     | RawApply of VSCRange * RawExpr * RawExpr
>     | RawIfThenElse of VSCRange * RawExpr * RawExpr * RawExpr
>     | RawIfThen of VSCRange * RawExpr * RawExpr
>     | RawPair of VSCRange * RawExpr * RawExpr
>     | RawSeq of VSCRange * RawExpr * RawExpr
>     | RawHeapMutableSet of VSCRange * RawExpr * RawExpr list * RawExpr
>     | RawReal of VSCRange * RawExpr
>     | RawMacro of VSCRange * RawMacro list
>     | RawArray of VSCRange * RawExpr list
>     | RawMissingBody of VSCRange
>     | RawFilledForall of VSCRange * string * RawExpr // Filled in by the 
> inferencer.
> and RawTExpr =
>     | RawTWildcard of VSCRange
>     | RawTB of VSCRange
>     | RawTMetaVar of VSCRange * VarString
>     | RawTLit of VSCRange * Literal
>     | RawTVar of VSCRange * VarString
>     | RawTPair of VSCRange * RawTExpr * RawTExpr
>     | RawTFun of VSCRange * RawTExpr * RawTExpr * FunType
>     | RawTArray of VSCRange * RawTExpr
>     | RawTRecord of VSCRange * Map<int * string,RawTExpr>
>     | RawTSymbol of VSCRange * SymbolString
>     | RawTApply of VSCRange * RawTExpr * RawTExpr
>     | RawTForall of VSCRange * TypeVar * RawTExpr
>     | RawTExists of VSCRange * TypeVar list * RawTExpr
>     | RawTPrim of VSCRange * PrimitiveType
>     | RawTTerm of VSCRange * RawExpr
>     | RawTMacro of VSCRange * RawMacro list
>     | RawTUnion of VSCRange * Map<int * string,bool * RawTExpr> * UnionLayout * 
> this: RawTExpr  // The boolean arg determines whether the union case is 
> generalized. `this` is the self type.
>     | RawTLayout of VSCRange * RawTExpr * Layout
>     | RawTTypecase of VSCRange * RawTExpr * (RawTExpr * RawTExpr) list
>     | RawTFilledNominal of VSCRange * GlobalId // Filled in by the inferencer.
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### (+.)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let (+.) (a,_) (_,b) = a,b
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### range_of_hovar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let range_of_hovar ((r,_) : HoVar) = r
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### range_of_typevar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let range_of_typevar ((x,_) : TypeVar) = range_of_hovar x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### hovar_name
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let hovar_name ((_,(name,_)) : HoVar) = name
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### typevar_name
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let typevar_name ((h,_) : TypeVar) = hovar_name h
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### range_of_record_with
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let range_of_record_with = function
>     | RawRecordWithSymbol((r,_),_)
>     | RawRecordWithSymbolModify((r,_),_)
>     | RawRecordWithInjectVar((r,_),_)
>     | RawRecordWithInjectVarModify((r,_),_) -> r
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### range_of_record_without
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let range_of_record_without = function
>     | RawRecordWithoutSymbol(r,_)
>     | RawRecordWithoutInjectVar(r,_) -> r
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### range_of_pattern
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let range_of_pattern = function
>     | PatB r
>     | PatE r
>     | PatVar(r,_)
>     | PatDyn(r,_)
>     | PatUnbox(r,_,_)
>     | PatExists(r,_,_)
>     | PatSymbol(r,_)
>     | PatValue(r,_)
>     | PatDefaultValue(r,_)
>     | PatRecordMembers(r,_)
>     | PatArray(r,_)
>     | PatAnnot(r,_,_)
>     | PatPair(r,_,_)
>     | PatOr(r,_,_)
>     | PatAnd(r,_,_)
>     | PatWhen(r,_,_)
>     | PatFilledDefaultValue(r,_,_)
>     | PatNominal(r,_,_,_) -> r
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### range_of_pat_record_member
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let range_of_pat_record_member = function
>     | PatRecordMembersSymbol((r,_),x)
>     | PatRecordMembersInjectVar((r,_),x) -> r +. range_of_pattern x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### range_of_expr
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let range_of_expr = function
>     | RawB r
>     | RawMissingBody r
>     | RawMacro(r,_)
>     | RawV(r,_,_)
>     | RawLit(r,_)
>     | RawDefaultLit(r,_)
>     | RawSymbol(r,_)
>     | RawType(r,_)
>     | RawJoinPoint(r,_,_,_)
>     | RawArray(r,_)
>     | RawMatch(r,_,_)
>     | RawFun(r,_)
>     | RawReal(r,_)
>     | RawRecBlock(r,_,_)
>     | RawOp(r,_,_)
>     | RawAnnot(r,_,_)
>     | RawTypecase(r,_,_)
>     | RawForall(r,_,_)
>     | RawExists(r,_,_)
>     | RawFilledForall(r,_,_)
>     | RawApply(r,_,_)
>     | RawPair(r,_,_)
>     | RawIfThen(r,_,_)
>     | RawSeq(r,_,_)
>     | RawHeapMutableSet(r,_,_,_)
>     | RawRecordWith(r,_,_,_)
>     | RawIfThenElse(r,_,_,_)
>     | RawOpen(r,_,_,_) -> r
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### rawv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rawv (r,x) = RawV(r,x,true)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### range_of_texpr
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let range_of_texpr = function
>     | RawTWildcard r
>     | RawTB r
>     | RawTLit(r,_)
>     | RawTMacro(r,_)
>     | RawTMetaVar(r,_)
>     | RawTVar(r,_)
>     | RawTArray(r,_)
>     | RawTRecord(r,_)
>     | RawTUnion(r,_,_,_)
>     | RawTSymbol(r,_)
>     | RawTPrim(r,_)
>     | RawTTerm(r,_)
>     | RawTFilledNominal(r,_)
>     | RawTPair(r,_,_)
>     | RawTFun(r,_,_,_)
>     | RawTApply(r,_,_)
>     | RawTLayout(r,_,_)
>     | RawTExists(r,_,_)
>     | RawTTypecase(r,_,_)
>     | RawTForall(r,_,_) -> r
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### range_of_texpr_gadt_constructor
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec range_of_texpr_gadt_constructor = function
>     | RawTForall(_,_,x) -> range_of_texpr_gadt_constructor x
>     | RawTFun(_,_,x,_) | x -> range_of_texpr x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### range_of_texpr_gadt_body
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec range_of_texpr_gadt_body = function
>     | RawTForall(_,_,x) -> range_of_texpr_gadt_body x
>     | RawTFun(_,x,_,_) | x -> range_of_texpr x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### VectorCord
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type VectorCord = {|row : int; col : int|}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Env__
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Env__ = {
>     semantic_updates : (VectorCord * SemanticTokenLegend) ResizeArray
>     tokens_cords : VectorCord [[]]
>     tokens : (VSCRange * SpiralToken) [[]]
>     comments : LineComment option [[]]
>     i : int ref
>     is_top_down : bool
>     default_env : DefaultEnv
>     } with
> 
>     member d.Index with get() = d.i.contents and set(i) = d.i.Value <- i
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### BlockParsingEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type BlockParsingEnv = Env__
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### try_current_template
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline try_current_template (d : BlockParsingEnv) on_succ on_fail =
>     let i = d.Index
>     if i < d.tokens.Length then on_succ d.tokens.[[i]]
>     else on_fail()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### try_current
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline try_current d f = try_current_template d (fun (p,t) -> f (p, t)) (fun
> () -> Result.Error [[]])
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### print_current
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let print_current d = try_current d (fun x -> printfn "%A" x; Ok()) // For 
> parser debugging purposes.
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### line_template
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline line_template d f = try_current_template d (fst >> f) (fun _ -> -1)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### col
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let col d = line_template d (fun (r,_) -> r.character)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### lineBlockParsing
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let lineBlockParsing d = line_template d (fun (r,_) -> r.line)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### skip'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let skip' (d : BlockParsingEnv) i = d.i.Value <- d.i.contents+i
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### skipBlockParsing
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let skipBlockParsing d = skip' d 1
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### skip_string_open
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let skip_string_open d =
>     try_current d <| function
>         | p,TokStringOpen -> skipBlockParsing d; Result.Ok(p)
>         | p, _ -> Result.Error [[p, ExpectedStringOpen]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### skip_string_close
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let skip_string_close d =
>     try_current d <| function
>         | p,TokStringClose -> skipBlockParsing d; Result.Ok(p)
>         | p, _ -> Result.Error [[p, ExpectedStringClose]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### skip_macro_open
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let skip_macro_open d =
>     try_current d <| function
>         | p,TokMacroOpen -> skipBlockParsing d; Ok(p)
>         | p, _ -> Result.Error [[p, ExpectedMacroOpen]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### skip_macro_close
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let skip_macro_close d =
>     try_current d <| function
>         | p,TokMacroClose -> skipBlockParsing d; Ok(p)
>         | p, _ -> Result.Error [[p, ExpectedMacroClose]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_text
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_text is_term_macro d =
>     let (+.) a b =
>         match a with
>         | Some a -> Some (a +. b)
>         | None -> Some b
>     let rec loop (a : VSCRange option) (str : System.Text.StringBuilder) =
>         try_current d <| function
>             | b,TokText x -> skipBlockParsing d; loop (a +. b) (str.Append(x))
>             | b,TokEscapedVar when is_term_macro -> skipBlockParsing d; loop (a 
> +. b) (str.Append("\\v"))
>             | b,(TokEscapedChar x | TokUnescapedChar x) -> skipBlockParsing d; 
> loop (a +. b) (str.Append(x))
>             | b, _ -> 
>                 if Option.isNone a then Result.Error [[b, ExpectedText; b, 
> ExpectedEscapedChar is_term_macro; b, ExpectedUnescapedChar]]
>                 else Result.Ok(Option.get a, str.ToString())
>     loop None (System.Text.StringBuilder())
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_macro_var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_macro_var d =
>     try_current d <| function
>         | p, TokMacroTermVar x -> skipBlockParsing d; 
> Result.Ok(RawMacroTerm(p,rawv(p,x)))
>         | p, TokMacroTypeVar x -> skipBlockParsing d; 
> Result.Ok(RawMacroType(p,RawTVar(p,x)))
>         | p, TokMacroTypeLitVar x -> skipBlockParsing d; 
> Result.Ok(RawMacroTypeLit(p,RawTVar(p,x)))
>         | p,_ -> Error [[p, ExpectedMacroVar]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_macro_type_var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_macro_type_var d =
>     try_current d <| function
>         | p, TokMacroTypeVar x -> skipBlockParsing d; 
> Result.Ok(RawMacroType(p,RawTVar(p,x)))
>         | p, TokMacroTypeLitVar x -> skipBlockParsing d; 
> Result.Ok(RawMacroTypeLit(p,RawTVar(p,x)))
>         | p,_ -> Error [[p, ExpectedMacroTypeVar]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### skip_keyword
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let skip_keyword t d =
>     try_current d <| function
>         | p,TokKeyword t' when t = t' -> skipBlockParsing d; Result.Ok t'
>         | p, _ -> Error [[p, ExpectedKeyword t]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### skip_keyword'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let skip_keyword' t d =
>     try_current d <| function
>         | p,TokKeyword t' when t = t' -> skipBlockParsing d; Result.Ok p
>         | p, _ -> Error [[p, ExpectedKeyword t]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_unary_op
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_unary_op d =
>     try_current d <| function
>         | p, TokUnaryOperator(t',_) -> skipBlockParsing d; Result.Ok t'
>         | p, _ -> Error [[p, ExpectedUnaryOperator']]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_unary_op'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_unary_op' d =
>     try_current d <| function
>         | p, TokUnaryOperator(t',_) -> skipBlockParsing d; Result.Ok(p,t')
>         | p, _ -> Error [[p, ExpectedUnaryOperator']]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_op
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_op d =
>     try_current d <| function
>         | p, TokOperator(t',_) -> skipBlockParsing d; Result.Ok t'
>         | p, _ -> Error [[p, ExpectedOperator']]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_op'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_op' d =
>     try_current d <| function
>         | p, TokOperator(t',_) -> skipBlockParsing d; Result.Ok(p,t')
>         | p, _ -> Error [[p, ExpectedOperator']]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### update_semantic
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let update_semantic (d : BlockParsingEnv) = let i = d.Index in fun x -> 
> d.semantic_updates.Add(d.tokens_cords.[[i]], x)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_op_type
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_op_type d =
>     try_current d <| function
>         | p, TokOperator(t',r) -> update_semantic d 
> SemanticTokenLegend.type_variable; skipBlockParsing d; Result.Ok(p,t')
>         | p, _ -> Error [[p, ExpectedOperator']]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### skip_op
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let skip_op t d =
>     try_current d <| function
>         | p, TokOperator(t',_) when t' = t -> skipBlockParsing d; Result.Ok p
>         | p, _ -> Error [[p, ExpectedOperator t]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### skip_unary_op
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let skip_unary_op t d =
>     try_current d <| function
>         | p, TokUnaryOperator(t',_) when t' = t -> skipBlockParsing d; Result.Ok
> t'
>         | p, _ -> Error [[p, ExpectedUnaryOperator t]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_var d =
>     try_current d <| function
>         | p, TokVar(t',_) -> skipBlockParsing d; Result.Ok t'
>         | p, _ -> Error [[p, ExpectedVar]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_var'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_var' d =
>     try_current d <| function
>         | p, TokVar(t',_) -> let r = update_semantic d in skipBlockParsing d; 
> Result.Ok(p,t',r)
>         | p, _ -> Error [[p, ExpectedVar]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_var''
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_var'' d =
>     try_current d <| function
>         | p, TokVar(t',_) -> skipBlockParsing d; Result.Ok(p,t')
>         | p, _ -> Error [[p, ExpectedVar]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_big_var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_big_var d =
>     try_current d <| function
>         | p, TokVar(t',_) when System.Char.IsUpper(t',0) -> skipBlockParsing d; 
> Result.Ok(p,t')
>         | p, _ -> Error [[p, ExpectedBigVar]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_var_as_symbol
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_var_as_symbol d =
>     try_current d <| function
>         | p, TokVar(t',_) -> update_semantic d SemanticTokenLegend.symbol; 
> skipBlockParsing d; Result.Ok t'
>         | p, _ -> Error [[p, ExpectedVar]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_big_var_as_symbol
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_big_var_as_symbol d =
>     try_current d <| function
>         | p, TokVar(t',_) when System.Char.IsUpper(t',0) -> update_semantic d 
> SemanticTokenLegend.symbol; skipBlockParsing d; Result.Ok t'
>         | p, _ -> Error [[p, ExpectedBigVar]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_big_var_as_keyword
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_big_var_as_keyword d =
>     try_current d <| function
>         | p, TokVar(t',_) when System.Char.IsUpper(t',0) -> update_semantic d 
> SemanticTokenLegend.keyword; skipBlockParsing d; Result.Ok(p,t')
>         | p, _ -> Error [[p, ExpectedBigVar]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_small_var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_small_var d =
>     try_current d <| function
>         | p, TokVar(t',r) when System.Char.IsUpper(t',0) = false -> 
> skipBlockParsing d; Result.Ok t'
>         | p, _ -> Error [[p, ExpectedSmallVar]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_small_var'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_small_var' d =
>     try_current d <| function
>         | p, TokVar(t',r) when System.Char.IsUpper(t',0) = false -> 
> skipBlockParsing d; Result.Ok(p,t')
>         | p, _ -> Error [[p, ExpectedSmallVar]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_big_type_var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_big_type_var d =
>     try_current d <| function
>         | p, TokVar(t',r) when System.Char.IsUpper(t',0) -> update_semantic d 
> SemanticTokenLegend.type_variable; skipBlockParsing d; Result.Ok(t')
>         | p, _ -> Error [[p, ExpectedSmallVar]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_big_type_var'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_big_type_var' d =
>     try_current d <| function
>         | p, TokVar(t',r) when System.Char.IsUpper(t',0) -> update_semantic d 
> SemanticTokenLegend.type_variable; skipBlockParsing d; Result.Ok(p,t')
>         | p, _ -> Error [[p, ExpectedSmallVar]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_small_type_var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_small_type_var d =
>     try_current d <| function
>         | p, TokVar(t',r) when System.Char.IsUpper(t',0) = false -> 
> update_semantic d SemanticTokenLegend.type_variable; skipBlockParsing d; 
> Result.Ok(t')
>         | p, _ -> Error [[p, ExpectedSmallVar]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_small_type_var'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_small_type_var' d =
>     try_current d <| function
>         | p, TokVar(t',r) when System.Char.IsUpper(t',0) = false -> 
> update_semantic d SemanticTokenLegend.type_variable; skipBlockParsing d; 
> Result.Ok(p,t')
>         | p, _ -> Error [[p, ExpectedSmallVar]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_value
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_value d =
>     try_current d <| function
>         | p, TokValue t' -> 
>             skipBlockParsing d
>             if d.Index < d.tokens.Length then 
>                 match snd d.tokens.[[d.Index]] with 
>                 | TokValueSuffix -> skipBlockParsing d 
>                 | _ -> ()
>             Result.Ok(p,t')
>         | p, _ -> Error [[p, ExpectedLit]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_symbol
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_symbol d =
>     try_current d <| function
>         | p, TokSymbol(t',r) -> skipBlockParsing d; Result.Ok(p,t')
>         | p, _ -> Error [[p, ExpectedSymbol]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### skip_parenthesis
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let skip_parenthesis a b d =
>     try_current d <| function
>         | p, TokParenthesis(a',b') when a = a' && b = b' -> skipBlockParsing d; 
> Result.Ok()
>         | p, _ -> Error [[p, ExpectedParenthesis(a,b)]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### skip_macro_expression
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let skip_macro_expression a b d =
>     try_current d <| function
>         | p, TokMacroExpression(a',b') when a = a' && b = b' -> skipBlockParsing
> d; Result.Ok()
>         | p, _ -> Error [[p, ExpectedMacroExpression(a,b)]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### on_succ
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let on_succ x _ = Result.Ok x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### macro_expression
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // open FParsec
> let macro_expression ty a d = (skip_macro_expression ty Open >>. a .>> 
> skip_macro_expression ty Close) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### rounds
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rounds a d = (skip_parenthesis Round Open >>. a .>> skip_parenthesis Round 
> Close) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### curlies
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let curlies a d = (skip_parenthesis Curly Open >>. a .>> skip_parenthesis Curly 
> Close) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### squares
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let squares a d = (skip_parenthesis Square Open >>. a .>> skip_parenthesis 
> Square Close) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### indexBlockParsing
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let indexBlockParsing (t : BlockParsingEnv) = t.Index
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### index_setBlockParsing
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let index_setBlockParsing v (t : BlockParsingEnv) = t.Index <- v
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### rangeBlockParsing
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline rangeBlockParsing exp s =
>     let i = indexBlockParsing s
>     exp s |> Result.map (fun x ->
>         let i' = indexBlockParsing s
>         if i < i' then fst s.tokens.[[i]] +. fst s.tokens.[[i'-1]], x : VSCRange
> * _
>         else
>             failwith "Compiler error: The parser passed into `range` has to 
> consume at least one token for it to work."
>         )
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### kind
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec kind d = (sepBy1 ((skip_op "*" >>% RawKindStar) <|> rounds kind) 
> (skip_op "->") |>> List.reduceBack (fun a b -> RawKindFun (a,b))) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### duplicates
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let duplicates er x = 
>     let h = System.Collections.Generic.HashSet()
>     x |> List.choose (fun (r : VSCRange,n : string) -> if h.Add n = false then 
> Some(r,er) else None)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### indentBlockParsing
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline indentBlockParsing i op next d = if op i (col d) then next d else 
> Error [[]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### record_var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let record_var d = (read_var_as_symbol <|> rounds read_op) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### patterns_validate
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let patterns_validate pats = 
>     let pos = System.Collections.Generic.Dictionary(HashIdentity.Reference)
>     let errors = ResizeArray()
>     let rec loop is_type pat =
>         let loop = loop is_type
>         let inline duplicate_var() = InvalidPattern (if is_type then 
> DuplicateTypeVar else DuplicateTermVar)
>         match pat with
>         | PatFilledDefaultValue _ | PatDefaultValue _ | PatValue _ | PatSymbol _
> | PatE _ | PatB _ -> Set.empty
>         | PatArray(_,x) -> 
>             List.fold (fun s x -> 
>                 let x = loop x
>                 let inters = Set.intersect s x
>                 if Set.isEmpty inters = false then inters |> Set.iter (fun x -> 
> errors.Add(pos.[[x]], duplicate_var()))
>                 s + x
>                 ) Set.empty x
>         | PatExists(r,l,p) ->
>             if is_type then
>                 let s = List.fold (fun s (r,x) -> pos.Add(x,r); Set.add x s) 
> Set.empty l
>                 let x = loop p
>                 let inters = Set.intersect s x
>                 if Set.isEmpty inters = false then inters |> Set.iter (fun x -> 
> errors.Add(pos.[[x]], duplicate_var()))
>                 s + x
>             else 
>                 loop p
>         | PatVar(r,x) -> 
>             if is_type then
>                 Set.empty
>             else 
>                 pos.Add(x,r)
>                 Set.singleton x
>         | PatDyn(_,p) | PatAnnot (_,p,_) | PatNominal(_,_,_,p) | PatUnbox(_,_,p)
> | PatWhen(_,p,_) -> loop p
>         | PatRecordMembers(_,items) ->
>             let symbols = System.Collections.Generic.HashSet()
>             let injects = System.Collections.Generic.HashSet()
>             let vars = System.Collections.Generic.HashSet()
>             List.iter (fun item ->
>                 match item with
>                 | PatRecordMembersSymbol((r,keyword),name) ->
>                     if symbols.Add(keyword) = false then errors.Add (r, 
> InvalidPattern DuplicateRecordSymbol); Set.empty else loop name
>                 | PatRecordMembersInjectVar((r,var),name) ->
>                     if injects.Add(var) = false then errors.Add (r, 
> InvalidPattern DuplicateRecordInjection); Set.empty else loop name
>                 |> Set.iter (fun x -> if vars.Add x = false then errors.Add 
> (pos.[[x]], duplicate_var()))
>                 ) items
>             Set vars
>         | PatPair(_,a,b) | PatAnd(_,a,b) -> 
>             let a, b = loop a, loop b
>             Set.intersect b a |> Set.iter (fun x -> errors.Add (pos.[[x]], 
> duplicate_var()))
>             a + b
>         | PatOr(_,a,b) -> 
>             let a, b = loop a, loop b
>             let f = Set.iter (fun x -> errors.Add (pos.[[x]], InvalidPattern 
> DisjointOrPatternVar))
>             f (a-b); f (b-a)
>             a
>     
>     let validate is_type =
>         List.fold (fun s x ->
>             let s' = loop is_type x
>             Set.intersect s' s |> Set.iter (fun x -> 
> errors.Add(pos.[[x]],InvalidPattern ShadowedVar))
>             s + s'
>             ) Set.empty pats |> ignore
>     validate true; validate false
>     errors |> Seq.toList
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### join_point
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let join_point is_let name = function // Has the effect of removing nested join 
> points due to not duplicating them.
>     | RawJoinPoint(a,b,c,_) -> RawJoinPoint(a,b,c,name)
>     | x -> if is_let then RawJoinPoint(range_of_expr x, None, x, name) else x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### join_point_backend
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let join_point_backend (a,b) = RawJoinPoint(range_of_expr b, Some a, b, None)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### unintern
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> /// Some places need unique string refs, so this is to keep the compiler from 
> interning static strings.
> let unintern (x : string) = System.Text.StringBuilder(x).ToString()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### adjust_join_point
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec adjust_join_point is_let name x =
>     let dyn_if_let a = if is_let then PatDyn(range_of_pattern a, a) else a
>     match x with
>     | RawForall(r,a,b) -> RawForall(r,a,adjust_join_point is_let name b)
>     | RawFun(r,[[a,b]]) -> RawFun(r,[[dyn_if_let a, adjust_join_point is_let 
> name b]])
>     | RawFun(r,l) ->
>         let empty = fst r, fst r
>         let n = unintern " arg"
>         let a = PatVar(empty,n) |> dyn_if_let
>         let b = RawMatch(empty,rawv(empty,n),l)
>         RawFun(r,[[a,join_point is_let name b]])
>     | x -> join_point is_let name x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### adjust_join_point'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let adjust_join_point' is_let name = function
>     | RawForall _ | RawFun _ as x -> adjust_join_point is_let name x
>     | x -> x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### inl_or_let_process
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inl_or_let_process (r, (is_let, is_rec, name, foralls, pats, body)) _ =
>     match is_rec, name, foralls, pats with
>     | false, _, [[]], [[]] -> 
>         match patterns_validate [[name]] with
>         | [[]] -> Result.Ok((r,name,adjust_join_point' is_let (match name with 
> PatVar(_,name) -> Some name | _ -> None) body),is_rec)
>         | ers -> Error ers
>     | _, PatVar(_,name'), _, _ -> 
>         match patterns_validate (if is_rec then name :: pats else pats) with
>         | [[]] ->
>             let body =
>                 let dyn_if_let x = if is_let then PatDyn(range_of_pattern x, x) 
> else x
>                 adjust_join_point is_let (Some name') body
>                 |> List.foldBack (fun pat body -> RawFun(range_of_pattern pat +.
> range_of_expr body,[[dyn_if_let pat,body]])) pats
>                 |> List.foldBack (fun typevar body -> RawForall(range_of_typevar
> typevar +. range_of_expr body,typevar,body)) foralls
>             match is_rec, body with
>             | false, _ | true, (RawFun _ | RawForall _) -> 
> Result.Ok((r,name,body),is_rec)
>             | true, _ -> Error [[r, ExpectedFunctionAsBodyOfRecStatement]]
>         | ers -> Error ers
>     | true, _, _, _ -> Error [[range_of_pattern name, 
> ExpectedVarOrOpAsNameOfRecStatement]]
>     | false, _, _, _ -> Error [[range_of_pattern name, 
> ExpectedSinglePatternWhenStatementNameIsNorVarOrOp]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ho_var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let ho_var d : Result<HoVar,_> = rangeBlockParsing ((read_small_type_var |>> fun
> x -> x, RawKindWildcard) <|> rounds ((read_small_type_var .>> skip_op ":") .>>. 
> kind)) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### forall_var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let forall_var d : Result<TypeVar,_> = (ho_var .>>. (curlies (sepBy 
> (read_small_type_var' <|> rounds read_op_type) (skip_op ";")) <|>% [[]])) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### forall
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let forall d = 
>     (skip_keyword SpecForall >>. many1 forall_var .>> skip_op "." 
>     >>= fun q _ -> 
>         let x' = q |> List.collect (fun (_,l) -> duplicates DuplicateConstraint 
> l)
>         let x = q |> List.map (fun ((r,(a,_)),_) -> r,a) |> duplicates 
> DuplicateForallVar
>         match List.append x x' with [[]] -> Result.Ok q | er -> Result.Error er
>         ) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### pat_exists'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let pat_exists' d = 
>     (skip_keyword SpecExists >>. many (rangeBlockParsing read_small_type_var) 
> .>> skip_op "." 
>     >>= fun q _ -> 
>         match duplicates DuplicateExistsVar q with [[]] -> Result.Ok q | er -> 
> Error er
>         ) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### exists
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let exists d = 
>     (skip_keyword SpecExists >>. many forall_var .>> skip_op "." 
>     >>= fun q _ -> 
>         let x' = q |> List.collect (fun (_,l) -> duplicates DuplicateConstraint 
> l)
>         let x = q |> List.map (fun ((r,(a,_)),_) -> r,a) |> duplicates 
> DuplicateExistsVar
>         match List.append x x' with [[]] -> Result.Ok q | er -> Error er
>         ) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### annotated_body
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline annotated_body sep exp ty =
>     pipe2 (opt (skip_op ":" >>. ty))
>         (skip_op sep .>>. opt exp)
>         (fun a (r,b) ->
>             let b = match b with Some b -> b | None -> RawMissingBody r
>             match a with
>             | Some a -> RawAnnot(range_of_expr b +. range_of_texpr a,b,a)
>             | None -> b)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### inl_or_let
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline inl_or_let exp pattern ty =
>     rangeBlockParsing (tuple6 ((skip_keyword SpecInl >>% false) <|> 
> (skip_keyword SpecLet >>% true))
>             ((skip_keyword SpecRec >>% true) <|>% false) pattern
>             (forall <|>% [[]]) (many pattern) (annotated_body "=" exp ty))
>     >>= inl_or_let_process
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### and_inl_or_let
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline and_inl_or_let exp pattern ty =
>     rangeBlockParsing (tuple6 (skip_keyword SpecAnd >>. ((skip_keyword SpecInl 
> >>% false) <|> (skip_keyword SpecLet >>% true)))
>             (fun _ -> Result.Ok true) pattern
>             (forall <|>% [[]]) (many pattern) (annotated_body "=" exp ty))
>     >>= inl_or_let_process
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Associativity
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Associativity = FParsec.Associativity
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### inbuilt_operators
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inbuilt_operators x = 
>     match x with
>     | "+" -> ValueSome(60, Associativity.Left)
>     | "-" -> ValueSome(60, Associativity.Left)
>     | "*" -> ValueSome(70, Associativity.Left)
>     | "/" -> ValueSome(70, Associativity.Left)
>     | "%" -> ValueSome(70, Associativity.Left)
>     | "|>" -> ValueSome(10, Associativity.Left)
>     | ">>" -> ValueSome(10, Associativity.Left)
>     | "<-" -> ValueSome(4, Associativity.Left)
>     
>     | "<=" -> ValueSome(40, Associativity.None)
>     | "<" -> ValueSome(40, Associativity.None)
>     | "=" -> ValueSome(40, Associativity.None)
>     | "`=" -> ValueSome(40, Associativity.None)
>     | ">" -> ValueSome(40, Associativity.None)
>     | ">=" -> ValueSome(40, Associativity.None)
>     | "<>" -> ValueSome(40, Associativity.None)
>     | "<<<" -> ValueSome(40, Associativity.None)
>     | ">>>" -> ValueSome(40, Associativity.None)
>     | "&&&" -> ValueSome(40, Associativity.None)
>     | "|||" -> ValueSome(40, Associativity.None)
> 
>     | "||" -> ValueSome(20, Associativity.Right)
>     | "&&" -> ValueSome(30, Associativity.Right)
>     | "::" -> ValueSome(50, Associativity.Right)
>     | "^" -> ValueSome(45, Associativity.Right)
>     | "<|" -> ValueSome(10, Associativity.Right)
>     | "<<" -> ValueSome(10, Associativity.Right)
>     | "." -> ValueSome(2, Associativity.Right)
>     | "," -> ValueSome(6, Associativity.Right)
>     | ":>" -> ValueSome(35, Associativity.Right)
>     | ":?>" -> ValueSome(35, Associativity.Right)
>     | "**" -> ValueSome(80, Associativity.Right)
>     | _ -> ValueNone
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### precedence_associativity
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // The `.` operator has special behavior similar to F#.
> let rec precedence_associativity name = 
>     if 0 < String.length name then
>         if 1 < String.length name && name.[[0]] = '.' then 
> precedence_associativity name.[[1..]]
>         else
>             match inbuilt_operators name with
>             | ValueNone -> precedence_associativity (name.[[0..name.Length-2]])
>             | v -> v
>     else ValueNone
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### op
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let op (d : BlockParsingEnv) =
>     rangeBlockParsing read_op d |> Result.bind (fun (o,x) ->
>         match x with
>         | "=>" | "|" | ":" | ";" -> skip' d -1; Error [[]] // Separators get 
> special handling for sake of better error messages.
>         | _ ->
>             match precedence_associativity x with // TODO: Might be good to 
> memoize this.
>             | ValueNone -> Error [[o, UnknownOperator]]
>             | ValueSome(p,a) ->
>                 let inline f on_succ = Ok(p,a,fun (a,b) -> 
>                     let ra, rb = range_of_expr a, range_of_expr b
>                     let r = ra +. rb
>                     on_succ(r,a,b)
>                     )
>                 match x with
>                 | "." -> f RawSeq
>                 | "&&" -> f (fun (r,a,b) -> RawIfThenElse(r,a,b,RawLit(o,LitBool
> false)))
>                 | "||" -> f (fun (r,a,b) -> RawIfThenElse(r,a,RawLit(o,LitBool 
> true),b))
>                 | "," -> f RawPair
>                 | "<-" -> f (fun (r,a,c) ->
>                     let rec loop l = function
>                         | RawApply(_,a,b) -> loop (b :: l) a
>                         | a -> a, l
>                     let a,b = loop [[]] a
>                     RawHeapMutableSet(r,a,b,c)
>                     )
>                 | x -> f (fun (r,a,b) -> RawApply(r,RawApply(r +. 
> o,rawv(o,x),a),b))
>         )
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### string_to_op_dict
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let string_to_op_dict : Dictionary<string,Op> = 
> System.Collections.Generic.Dictionary(HashIdentity.Structural)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> Microsoft.FSharp.Reflection.FSharpType.GetUnionCases(typeof<Op>)
> |> Array.iter (fun x -> string_to_op_dict.[[x.Name]] <- 
> Microsoft.FSharp.Reflection.FSharpValue.MakeUnion(x,[[||]]) :?> Op)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### string_to_op
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let string_to_op x = string_to_op_dict.TryGetValue x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### symbol_paired_concat
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let symbol_paired_concat k =
>     let b = System.Text.StringBuilder()
>     List.iter (fun (_, x : string) -> b.Append(x).Append('_') |> ignore) k
>     b.ToString()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### module_openBlockParsing
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let module_openBlockParsing = rangeBlockParsing ((skip_keyword SpecOpen >>. 
> read_small_var') .>>. (many read_symbol))
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### bar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let bar i d = indentBlockParsing i (<=) (skip_op "|") d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### pat_pair
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline pat_pair next = 
>     sepBy1 next (skip_op ",") 
>     |>> List.reduceBack (fun a b -> PatPair(range_of_pattern a +. 
> range_of_pattern b,a,b))
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### RootTypeFlags
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type RootTypeFlags = {
>     allow_typecase_metavars : bool
>     allow_term : bool
>     allow_wildcard : bool
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### root_type_defaults
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let root_type_defaults = {
>     allow_typecase_metavars = false
>     allow_term = false
>     allow_wildcard = false
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### bottom_up_number
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let bottom_up_number (default_env : DefaultEnv) (r : VSCRange,x : string) =
>     let inline f string_to_val val_to_lit val_dsc =
>         match string_to_val x with
>         | true, x -> Ok(r, val_to_lit x)
>         | false, _ -> Error [[r, BottomUpNumberParseError(x,val_dsc)]]
>     if x.Contains '.' then
>         match default_env.default_float with
>         | Float32T -> f System.Single.TryParse LitFloat32 "f32"
>         | Float64T -> f System.Double.TryParse LitFloat64 "f64"
>         | x -> failwithf "Compiler error: Invalid default float type. Got: %A" x
>     else
>         match default_env.default_int with
>         | Int8T -> f System.SByte.TryParse LitInt8 "i8"
>         | Int16T -> f System.Int16.TryParse LitInt16 "i16"
>         | Int32T -> f System.Int32.TryParse LitInt32 "i32"
>         | Int64T -> f System.Int64.TryParse LitInt64 "i64"
>         | UInt8T -> f System.Byte.TryParse LitUInt8 "u8"
>         | UInt16T -> f System.UInt16.TryParse LitUInt16 "u16"
>         | UInt32T -> f System.UInt32.TryParse LitUInt32 "u32"
>         | UInt64T -> f System.UInt64.TryParse LitUInt64 "u64"
>         | x -> failwithf "Compiler error: Invalid default int type. Got: %A" x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### typecase_validate
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let typecase_validate x _ =
>     let metavars = System.Collections.Generic.HashSet()    
>     let vars = System.Collections.Generic.HashSet()
>     let errors = ResizeArray()
>     let rec f = function
>         | RawTFilledNominal _ | RawTTerm _ | RawTTypecase _ -> failwith 
> "Compiler error: This case is not supposed to appear in typecase."
>         | RawTForall(r,_,_) -> errors.Add(r,ForallNotAllowedInTypecase)
>         | RawTExists(r,_,_) -> errors.Add(r,ExistsNotAllowedInTypecase)
>         | RawTLit _ | RawTPrim _ | RawTSymbol _ | RawTB _ | RawTWildcard _ -> ()
>         | RawTMetaVar(r,a) -> if vars.Contains(a) then 
> errors.Add(r,MetavarShadowedByVar) else metavars.Add(a) |> ignore
>         | RawTVar(r,a) -> if metavars.Contains(a) then 
> errors.Add(r,VarShadowedByMetavar) else vars.Add(a) |> ignore
>         | RawTApply(_,a,b) | RawTFun(_,a,b,_) | RawTPair(_,a,b) -> f a; f b
>         | RawTLayout(_,a,_) | RawTArray(_,a) -> f a
>         | RawTUnion(_,a,_,_) -> Map.iter (fun _ x -> f (snd x)) a 
>         | RawTRecord(_,a) -> Map.iter (fun _ -> f) a
>         | RawTMacro(_,a) -> a |> List.iter (function RawMacroType(_,a) -> f a | 
> _ -> ())
>     f x
>     if 0 < errors.Count then Error (Seq.toList errors) else Ok(x)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### expr_tight
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // Parses an expression only if it is directly next to the previous one.
> let inline expr_tight next (d: BlockParsingEnv) = 
>     let i = indexBlockParsing d
>     if 0 < i && i < d.tokens.Length then
>         let r,r' = snd (fst d.tokens.[[i-1]]), fst (fst d.tokens.[[i]])
>         if r.line = r'.line && r.character = r'.character then next d else Error
> [[]]
>     else Error [[]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_default_value'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline read_default_value' f d =
>     try_current d <| function
>         | p, TokDefaultValue t' -> skipBlockParsing d; f (p,t')
>         | p, _ -> Error [[p, ExpectedLit]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_default_value
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline read_default_value on_top on_bot d =
>     read_default_value' (fun (p,t') ->
>         if d.is_top_down then Ok(on_top (p,t'))
>         else bottom_up_number d.default_env (p,t') |> Result.map on_bot
>         ) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_string
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let read_string = tuple3 skip_string_open ((read_text false |>> snd) <|>% "") 
> skip_string_close
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### pat_var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let pat_var d = (read_small_var' |>> PatVar) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### pat_list_pair
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let pat_list_pair r a b = PatUnbox(r,"Cons",PatPair(r,a,b))
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### root_pattern_var_nominal_union
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec root_pattern_var_nominal_union s =
>     (read_var' >>= fun (r,a,re) s ->
>         if System.Char.IsUpper(a,0) then
>             (opt root_pattern_var |>> fun b ->
>                 re SemanticTokenLegend.symbol
>                 let b = match b with Some b -> b | None -> PatE r
>                 PatUnbox(r,a,b)
>                 ) s
>         else 
>             (many (expr_tight read_symbol) >>= fun syms s ->
>                 match syms with
>                 | [[]] ->
>                     (opt root_pattern_var |>> fun b ->
>                         match b with
>                         | Some b ->
>                             re SemanticTokenLegend.type_variable
>                             PatNominal(r +. range_of_pattern b,(r,a),syms,b)
>                         | None ->
>                             PatVar(r,a)
>                         ) s
>                 | _ ->
>                     (root_pattern_var |>> fun b ->
>                         re SemanticTokenLegend.type_variable
>                         PatNominal(r +. range_of_pattern b,(r,a),syms,b)
>                         ) s
>                 ) s
>         ) s
> and root_pattern_wildcard d = (skip_keyword' SpecWildcard |>> PatE) d
> and root_pattern_dyn d = (rangeBlockParsing (skip_unary_op "~" >>. 
> root_pattern_var) |>> PatDyn) d
> and root_pattern_record d = 
>     let pat_record_item =
>         let inj = skip_unary_op "$" >>. read_small_var' |>> fun a -> 
> PatRecordMembersInjectVar,a
>         let var = rangeBlockParsing record_var |>> fun a -> 
> PatRecordMembersSymbol,a
>         ((inj <|> var) .>>. (opt (skip_op "=" >>. root_pattern_pair)))
>         |>> fun ((f,a),b) -> f (a, defaultArg b (PatVar a))
>     (rangeBlockParsing (curlies (many pat_record_item)) |>> PatRecordMembers) d
> and root_pattern_type s = 
>     pipe2 root_pattern (opt (skip_op ":" >>. root_type_annot))
>         (fun a -> function Some b -> PatAnnot(range_of_pattern a +. 
> range_of_texpr b,a,b) | None -> a) s
> and root_pattern_rounds d = 
>     (rangeBlockParsing (rounds ((((read_op' |>> PatVar) <|> root_pattern_type) 
> |>> fun x _ -> x) <|>% PatB))
>     |>> fun (r,x) -> x r) d
> and pat_array s = (skip_unary_op ";" >>. rangeBlockParsing (squares (sepBy 
> root_pattern_type (skip_op ";"))) |>> fun (r,x) -> PatArray(r,x)) s
> and pat_list s =
>     (rangeBlockParsing (squares (sepBy root_pattern_type (skip_op ";")))
>     |>> fun ((r,_),x) -> let r = r,r in List.foldBack (pat_list_pair r) x 
> (PatUnbox(r,"Nil",PatB r))) s
> and pat_exists s = (rangeBlockParsing (pat_exists' .>>. root_pattern) |>> fun 
> (r,(l,b)) -> PatExists(r,l,b)) s
> and root_pattern s =
>     let body s = 
>         let pat_value = (read_value |>> PatValue) <|> (read_default_value 
> PatDefaultValue PatValue)
>         let pat_string = read_string |>> (fun (a,x,b) -> PatValue(a +. 
> b,LitString x))
>         let pat_symbol = read_symbol |>> PatSymbol
>         let (+) = alt (indexBlockParsing s)
>         (root_pattern_rounds + root_pattern_var_nominal_union + 
> root_pattern_wildcard + root_pattern_dyn + pat_value + pat_string 
>         + root_pattern_record + pat_symbol + pat_array + pat_list + pat_exists) 
> s
> 
>     let pat_and = sepBy1 body (skip_op "&") |>> List.reduce (fun a b -> 
> PatAnd(range_of_pattern a +. range_of_pattern b,a,b))
>     let pat_pair = pat_pair pat_and
>     let pat_cons = rangeBlockParsing (sepBy1 pat_pair (skip_op "::")) |>> fun 
> (r,x) -> List.reduceBack (pat_list_pair r) x
>     let pat_or = sepBy1 pat_cons (skip_op "|") |>> List.reduce (fun a b -> 
> PatOr(range_of_pattern a +. range_of_pattern b,a,b))
>     let pat_as = pat_or .>>. (opt (skip_keyword SpecAs >>. pat_or )) |>> 
> function a, Some b -> PatAnd(range_of_pattern a +. range_of_pattern b,a,b) | a, 
> None -> a
>     pat_as s
> and root_pattern_when d = (root_pattern .>>. (opt (skip_keyword SpecWhen >>. 
> root_term)) |>> function a, Some b -> PatWhen(range_of_pattern a +. 
> range_of_expr b,a,b) | a, None -> a) d
> and root_pattern_var d =
>     let (+) = alt (indexBlockParsing d)
>     (pat_var + root_pattern_wildcard + root_pattern_dyn + root_pattern_rounds + 
> root_pattern_record + pat_array + pat_list + pat_exists) d
> and root_pattern_pair d = pat_pair root_pattern_var d
> and root_type_annot d = root_type {root_type_defaults with 
> allow_term=d.is_top_down=false; allow_wildcard=d.is_top_down} d
> and root_type_record (flags : RootTypeFlags) d =
>     (rangeBlockParsing (curlies (sepBy ((rangeBlockParsing record_var .>> 
> skip_op ":") .>>. root_type flags) (optional (skip_op ";"))))
>     >>= fun (r,x) _ ->
>         x |> List.map fst |> duplicates DuplicateRecordTypeVar
>         |> function [[]] -> Ok(RawTRecord(r,x |> List.mapi (fun i ((_,n),x) -> 
> (i,n),x) |> Map.ofList)) | er -> Error er
>         ) d
> and root_type_union (flags : RootTypeFlags) d =
>     let bar = bar (col d)
>     let vanilla = skip_op ":" >>. root_type flags |>> fun x -> Some (false, x)
>     let gadt = 
>         skip_op "::"
>         >>. pipe2 (opt forall) (root_type flags) (Option.foldBack (List.foldBack
> (fun a b -> RawTForall(range_of_typevar a +. range_of_texpr b,a,b))))
>         |>> fun x -> Some (true, x)
> 
>     let body = vanilla <|> gadt <|>% None
>     (rangeBlockParsing (optional bar >>. sepBy1 (rangeBlockParsing 
> read_big_var_as_symbol .>>. body) bar)
>     >>= fun (r,x) _ ->
>         x |> List.map fst |> duplicates DuplicateUnionKey
>         |> function 
>             | [[]] -> Ok(r,x |> List.mapi (fun i ((r,n),x) -> (i,n), match x 
> with Some x -> x | None -> false, RawTB r) |> Map.ofList)
>             | er -> Error er
>         ) d
> and root_type (flags : RootTypeFlags) d =
>     let next = root_type flags
>     let cases d =
>         let wildcard d = if flags.allow_wildcard then (skip_keyword' 
> SpecWildcard |>> RawTWildcard) d else Error [[]]
>         // This metavar case only occurs in typecase during the bottom-up 
> segment. It should not be confused with metavars during top-down type inference.
>         let metavar d = if flags.allow_typecase_metavars then (skip_unary_op "~"
> >>. read_var' |>> fun (a,b,r) -> r SemanticTokenLegend.type_variable; 
> RawTMetaVar(a,b)) d else Error [[]]
>         let term d = if flags.allow_term then (rangeBlockParsing (skip_unary_op 
> "`" >>. ((read_var'' |>> rawv) <|> rounds root_term)) |>> RawTTerm) {d with 
> is_top_down=false} else Error [[]]
>         let symbol = read_symbol |>> RawTSymbol
>         let record = root_type_record flags
>         let lit = (read_value |>> RawTLit) <|> (read_string |>> fun (a,b,c) -> 
> RawTLit(a +. c, LitString b))
>         let lit_default = read_default_value' (bottom_up_number d.default_env >>
> Result.map RawTLit)
>         let var = read_var' |>> fun (o,x,r) ->
>             r SemanticTokenLegend.type_variable
>             RawTVar(o, x)
>         let rounds =
>             rangeBlockParsing (rounds ((next |>> fun x _ -> x) <|>% RawTB))
>             |>> fun (r,x) -> x r
>         let macro = 
>             let read_macro_expression s = 
>                 (macro_expression MType (root_type root_type_defaults |>> fun x 
> -> RawMacroType(range_of_texpr x,x))
>                 <|> macro_expression MTypeLit (root_type root_type_defaults |>> 
> fun x -> RawMacroTypeLit(range_of_texpr x,x))) s
>             let body = many ((read_text false |>> RawMacroText) <|> 
> read_macro_type_var <|> read_macro_expression)
>             pipe3 skip_macro_open body skip_macro_close (fun a l b -> 
> RawTMacro(a +. b, l))
>         let exists = rangeBlockParsing (exists .>>. root_type flags) |>> fun 
> (r,(l,b)) -> RawTExists(r,l,b)
>         let foralls = rangeBlockParsing (forall .>>. root_type flags) |>> (fun 
> (r,(l,b)) -> List.foldBack (fun a b -> RawTForall(range_of_typevar a +. 
> range_of_texpr b,a,b)) l b)
>         let (+) = alt (indexBlockParsing d)
>         (rounds + lit + lit_default + wildcard + term + metavar + var + record +
> symbol + macro + exists + foralls) d
> 
>     let fold_applies a b = List.fold (fun a b -> RawTApply(range_of_texpr a +. 
> range_of_texpr b,a,b)) a b
>     let apply_tight d = pipe2 cases (many (expr_tight cases)) fold_applies d
>     let apply d = pipe2 apply_tight (many (indentBlockParsing (col d) (<) 
> apply_tight)) fold_applies d
>     
>     let pairs = sepBy1 apply (skip_op "*") |>> List.reduceBack (fun a b -> 
> RawTPair(range_of_texpr a +. range_of_texpr b,a,b))
>     let functions = sepBy1 pairs (skip_op "->") |>> List.reduceBack (fun a b -> 
> RawTFun(range_of_texpr a +. range_of_texpr b,a,b,FT_Vanilla))
>     
>     functions d
> 
> and root_term d =
>     let rec expressions d =
>         let next = root_term
>         let case_var = read_var'' |>> rawv
>         let case_value = read_value |>> RawLit
>         let case_exists = 
>             let sequence_type d = (many (indentBlockParsing (col d) (=) (sepBy1 
> (root_type root_type_defaults)  (skip_op ";"))) |>> List.concat) d
>             ((skip_keyword' SpecExists) .>>. (opt (squares sequence_type)) .>>. 
> next)
>                 >>= fun ((r,type_vars),body) d ->
>                         if d.is_top_down || Option.isSome type_vars
>                         then Ok(RawExists(r +. range_of_expr body, (r, 
> type_vars), body))
>                         else Error [[r, TypeVarsNeedToBeExplicitForExists]]
>         let case_rounds = 
>             rangeBlockParsing (rounds ((((read_op' |>> rawv) <|> next) |>> fun x
> _ -> x) <|>% RawB))
>             |>> fun (r,x) -> x r
>         let case_fun =
>             (skip_keyword SpecFun >>. many1 root_pattern_pair .>>. 
> (annotated_body "=>" next root_type_annot))
>             >>= fun (pats, body) _ ->
>                 match patterns_validate pats with
>                 | [[]] -> List.foldBack (fun pat body -> RawFun(range_of_pattern
> pat +. range_of_expr body,[[pat,body]])) pats body |> Ok
>                 | ers -> Error ers
>             
>         let case_forall d =
>             if d.is_top_down then Error [[]] else
>                 (tuple3 forall (many root_pattern_pair) (annotated_body "=>" 
> next root_type_annot)
>                 >>= fun (foralls : TypeVar list, pats, body) _ ->
>                     match patterns_validate pats with
>                     | [[]] -> 
>                         List.foldBack (fun pat body -> RawFun(range_of_pattern 
> pat +. range_of_expr body,[[pat,body]])) pats body
>                         |> List.foldBack (fun a body -> 
> RawForall(range_of_typevar a +. range_of_expr body,a,body)) foralls |> Ok
>                     | ers -> Error ers) d
> 
>         let case_default_value = read_default_value RawDefaultLit RawLit
>         let case_if_then_else d =
>             let i = col d
>             let inline f' keyword = rangeBlockParsing (skip_keyword keyword >>. 
> next)
>             let inline f keyword = indentBlockParsing i (<=) (f' keyword)
>             (pipe4 (f' SpecIf) (f SpecThen) (many (f SpecElif .>>. f SpecThen)) 
> (opt (f SpecElse))
>                 (fun cond tr elifs fl -> 
>                     let f cond tr = function
>                         | Some fl -> fst fl, RawIfThenElse(fst cond +. fst 
> fl,snd cond,snd tr,snd fl)
>                         | None -> fst tr, RawIfThen(fst cond +. fst tr,snd 
> cond,snd tr)
>                     let fl = List.foldBack (fun (cond,tr) fl -> f cond tr fl |> 
> Some) elifs fl
>                     f cond tr fl |> snd)) d
>         
>         let case_match =
>             let clauses d = 
>                 let bar = bar (col d)
>                 (optional bar >>. sepBy1 (root_pattern_when .>>. (skip_op "=>" 
> >>. next)) bar
>                 >>= fun l _ ->
>                     match l |> List.collect (fun (a,_) -> patterns_validate 
> [[a]]) with
>                     | [[]] -> Ok l
>                     | e -> Error e
>                     ) d
> 
>             (rangeBlockParsing (skip_keyword SpecFunction >>. clauses) |>> 
> RawFun)
>             <|> (rangeBlockParsing ((skip_keyword SpecMatch >>. next .>> 
> skip_keyword SpecWith) .>>. clauses) |>> fun (a,(b,c)) -> RawMatch(a,b,c))
> 
>         let case_typecase d =
>             let clauses d = 
>                 let bar = bar (col d)
>                 let typecase = root_type {root_type_defaults with 
> allow_typecase_metavars=true; allow_wildcard=true} >>= typecase_validate
>                 (optional bar >>. sepBy1 (typecase .>>. (skip_op "=>" >>. next))
> bar) d
> 
>             if d.is_top_down then Error [[]] else
>                 (rangeBlockParsing ((skip_keyword SpecTypecase >>. root_type 
> {root_type_defaults with allow_term=true} .>> skip_keyword SpecWith) .>>. 
> clauses)
>                 |>> fun (r, (a, b)) -> RawTypecase(r,a,b)) d
> 
>         let case_record =
>             let create = skip_op "=" >>. next
>             let modify = skip_op "#=" >>. next
>             let var = rangeBlockParsing record_var
>             let inject = skip_unary_op "$" >>. rangeBlockParsing read_small_var
>             let record_create_body =
>                 (var .>>. opt create |>> function (a,Some b) -> 
> RawRecordWithSymbol(a,b) | (a,None) -> RawRecordWithSymbol(a,rawv a))
>                 <|> (inject .>>. create |>> RawRecordWithInjectVar)
>             let record_create = rangeBlockParsing (curlies (sepBy 
> record_create_body (optional (skip_op ";")))) |>> fun (r,withs) -> 
> (r,[[]],withs,[[]])
>             let record_with_bodies =
>                 (var >>= fun a ->
>                     ((modify |>> fun b -> RawRecordWithSymbolModify(a,b))
>                     <|> (opt create |>> function Some b -> 
> RawRecordWithSymbol(a,b) | None -> RawRecordWithSymbol(a,rawv a))))
>                 <|> (inject >>= fun a ->
>                     ((modify |>> fun b -> RawRecordWithInjectVarModify(a,b))
>                     <|> (create |>> fun b -> RawRecordWithInjectVar(a,b))))
>             let record_without_bodies = (var |>> RawRecordWithoutSymbol) <|> 
> (inject |>> RawRecordWithoutInjectVar)
>             let record_with =
>                 rangeBlockParsing
>                     (curlies
>                         (tuple4 read_small_var'
>                             (many ((read_symbol |>> RawSymbol) <|> (skip_op "$" 
> >>. read_small_var' |>> rawv)))
>                             ((skip_keyword SpecWith >>. sepBy record_with_bodies
> (optional (skip_op ";"))) <|>% [[]])
>                             ((skip_keyword SpecWithout >>. many 
> record_without_bodies) <|>% [[]])))
>                 |>> fun (r,(name, acs, withs, withouts)) -> (r,rawv name :: 
> acs,withs,withouts)
> 
>             restore 2 record_create <|> record_with
>             >>= fun (_,_,withs,withouts as x) _ ->
>                 [[
>                 withs |> List.choose (function RawRecordWithSymbol(a,_) | 
> RawRecordWithSymbolModify(a,_) -> Some a | _ -> None) |> duplicates 
> DuplicateTermRecordSymbol
>                 withs |> List.choose (function RawRecordWithInjectVar(a,_) | 
> RawRecordWithInjectVarModify(a,_) -> Some a | _ -> None) |> duplicates 
> DuplicateTermRecordInjection
>                 withouts |> List.choose (function RawRecordWithoutSymbol(a,b) ->
> Some(a,b) | _ -> None) |> duplicates DuplicateTermRecordSymbol
>                 withouts |> List.choose (function RawRecordWithoutInjectVar(a,b)
> -> Some(a,b) | _ -> None) |> duplicates DuplicateTermRecordInjection
>                 ]] |> List.concat |> function [[]] -> Ok(RawRecordWith x) | er 
> -> Error er
> 
>         let case_join_point = skip_keyword SpecJoin >>. next |>> join_point true
> None
>         let case_join_point_backend = skip_keyword SpecJoinBackend >>. 
> (read_big_var_as_keyword .>>. next) |>> join_point_backend
>         let case_real = skip_keyword SpecReal >>. (fun d -> next {d with 
> is_top_down=false}) |>> fun x -> RawReal(range_of_expr x,x)
>         let case_symbol = read_symbol |>> RawSymbol
>         let case_list = rangeBlockParsing (squares sequence_body) >>= fun (r,l) 
> d -> 
>             if d.is_top_down then
>                 let r = fst r, fst r
>                 List.foldBack (fun a b -> 
>                     RawApply(r,rawv(r,unintern "Cons"),RawPair(r,a,b))
>                     ) l (rawv(r,unintern "Nil")) |> Ok
>             else
>                 Error [[r, ListLiteralsNotAllowedInBottomUp]]
> 
>         let case_string = read_string |>> fun (a, x, b) -> RawLit(a +. 
> b,LitString x)
> 
>         let case_macro =
>             let read_macro_expression s = 
>                 (macro_expression MTerm (root_term |>> fun x -> 
> RawMacroTerm(range_of_expr x,x))
>                 <|> macro_expression MType (root_type root_type_defaults |>> fun
> x -> RawMacroType(range_of_texpr x,x))
>                 <|> macro_expression MTypeLit (root_type root_type_defaults |>> 
> fun x -> RawMacroTypeLit(range_of_texpr x,x))) s
>             let body = many ((read_text true |>> RawMacroText) <|> 
> read_macro_var <|> read_macro_expression)
>             pipe3 skip_macro_open body skip_macro_close (fun a l b -> RawMacro(a
> +. b, l))
> 
>         let (+) = alt (indexBlockParsing d)
> 
>         (case_value + case_default_value + case_var + case_join_point + 
> case_join_point_backend + case_real + case_symbol
>         + case_typecase + case_match + case_typecase + case_rounds + case_list +
> case_record
>         + case_if_then_else + case_fun + case_forall + case_string + case_macro 
> + case_exists) d
> 
>     and application_tight d =
>         let next = expressions
>         pipe2 next (many (expr_tight next)) (List.fold (fun a b -> 
> RawApply(range_of_expr a +. range_of_expr b,a,b))) d
> 
>     and sequence_body d = (many (indentBlockParsing (col d) (=) (sepBy1 
> operators (skip_op ";"))) |>> List.concat) d
>     and unary_op d =
>         let next = application_tight
>         let f = 
>             read_unary_op' >>= fun (o,a) d ->
>                 let type_expr d = 
>                     choice [[|
>                         read_small_type_var' |>> RawTVar
>                         read_value |>> RawTLit
>                         read_string |>> fun (a,b,c) -> RawTLit(a +. c, LitString
> b)
>                         rounds (root_type {root_type_defaults with 
> allow_term=true})
>                         |]] d
>                 let term_expr d =
>                     choice [[|
>                         read_var'' |>> rawv
>                         read_value |>> RawLit
>                         read_default_value RawDefaultLit RawLit
>                         read_string |>> fun (a,b,c) -> RawLit(a +. c, LitString 
> b)
>                         rounds root_term
>                         |]] d
>                 match a with
>                 | ";" -> 
>                     if d.is_top_down then (rangeBlockParsing (squares 
> sequence_body) |>> fun (r,x) -> RawApply(o,RawV(o,unintern "array",true), 
> RawArray(o,x))) d
>                     else Error [[o, ArrayLiteralsNotAllowedInBottomUp]]
>                 | "!!!!" -> 
>                     (rangeBlockParsing (read_big_var .>>. (rounds (sepBy (fun d 
> -> unary_op {d with is_top_down=false}) (skip_op ","))))
>                     >>= fun (r,((ra,a), b)) _ ->
>                         match string_to_op a with
>                         | true, op' -> Ok(RawOp(r,op',b))
>                         | false, _ -> Error [[ra,InbuiltOpNotFound]]) d
>                 | "`" -> if d.is_top_down then Error [[]] else 
> (rangeBlockParsing type_expr |>> RawType) d
>                 | "`@" -> 
>                     if d.is_top_down then Error [[]] else 
>                         (rangeBlockParsing term_expr |>> fun (r,x) -> 
>                             let r' = o +. r 
>                             RawType(r', 
> RawTTerm(r',RawOp(r',LitToTypeLit,[[x]])))
>                             ) d
>                 | "``" -> if d.is_top_down then Error [[]] else 
> (rangeBlockParsing type_expr |>> fun (r,x) -> RawOp(o +. 
> r,TypeToVar,[[RawType(r,x)]])) d
>                 | "`$" -> (read_var'' |>> fun (r,x) -> RawV(r,x,false)) d
>                 | _ -> (next |>> fun b -> RawApply(o +. range_of_expr b,rawv(o, 
> "~" + a),b)) d
>         (f <|> next) d
> 
>     and application (d: BlockParsingEnv) =
>         let next = unary_op
>         pipe2 next (many (indentBlockParsing (col d) (<) next)) (List.fold (fun 
> a b -> RawApply(range_of_expr a +. range_of_expr b,a,b))) d
> 
>     and operators d =
>         let term = application
>         let i = col d
>         let op = indentBlockParsing i (<=) op
> 
>         /// Pratt parser
>         let rec led left (prec,asoc,m) d =
>             match asoc with
>             | Associativity.Right -> (tdop (prec-1) |>> fun right -> m (left, 
> right)) d
>             | _ -> (tdop prec |>> fun right -> m (left, right)) d
> 
>         and tdop rbp d =
>             let rec loop left d = 
>                 ((op >>= fun (prec,_,_ as v) d ->
>                     if rbp < prec then (led left v >>= loop) d
>                     else skip' d -1; Error [[]]) <|>% left) d
>             (term >>= loop) d
> 
>         pipe2 (tdop System.Int32.MinValue)
>             (opt (indentBlockParsing i (<=) (skip_op ":" >>. root_type_annot)))
>             (fun a -> function Some b -> RawAnnot(range_of_expr a +. 
> range_of_texpr b,a,b) | _ -> a)
>             d
> 
>     let statements d =
>         let next = operators
>         let inl_or_let =
>             (inl_or_let root_term root_pattern_pair root_type_annot .>>. many 
> (and_inl_or_let root_term root_pattern_pair root_type_annot))
>             >>= fun x _ -> 
>                 match x with
>                 | ((r,name,body),false), [[]] -> Ok(fun on_succ -> 
> RawMatch(r,body,[[name,on_succ]]))
>                 | ((_,_,_),false), l -> l |> List.map (fun ((r,_,_),_) -> r, 
> UnexpectedAndInlRec) |> Error
>                 | x, xs ->
>                     let l = x :: xs |> List.map (function 
>                         | (r,PatVar(o,name),body),true -> r, ((o,name), body)
>                         | _ -> failwith "Compiler error: Recursive inl/let 
> statements should always have PatVar for names and should always be recursive."
>                         )
>                     let r = l |> List.map fst |> List.reduce (+.)
>                     l |> List.map (snd >> fst) 
>                     |> duplicates DuplicateRecFunctionName
>                     |> function [[]] -> Ok(fun on_succ -> RawRecBlock(r, 
> List.map snd l, on_succ)) | er -> Error er
>         let module_open = module_openBlockParsing |>> fun (r,(name,acs)) on_succ
> -> RawOpen(r,name,acs,on_succ)
>         let statement_parsers d =
>             let (+) = alt (indexBlockParsing d)
>             (inl_or_let + module_open) d
>         
>         let i = col d
>         let inline if_ x = indentBlockParsing i x
>         let stmts = 
>             many1 (if_ (=) (rangeBlockParsing statement_parsers)) .>>. opt ((if_
> (<=) (skip_keyword SpecIn) >>. root_term) <|> if_ (=) next)
>             >>= fun (a,b) _ -> match b with Some b -> Ok(a,b) | None -> Error 
> [[List.last a |> fst, ExpectedExpression]]
>         let expr = if_ (=) next |>> fun x -> [[]],x
>         (many1 (stmts <|> expr)
>         |>> fun x -> 
>             List.foldBack (fun (stmts,expr) s -> 
>                 let process_statements s = List.foldBack (fun (_,a) b -> a b) 
> stmts s
>                 match s with
>                 | ValueNone -> ValueSome (process_statements expr)
>                 | ValueSome expr' -> ValueSome (process_statements 
> (RawSeq(range_of_expr expr +. range_of_expr expr',expr,expr')))
>                 ) x ValueNone |> ValueOption.get
>             ) d
> 
>     statements d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### comments
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let comments (s : BlockParsingEnv) = 
>     let line_near_to = lineBlockParsing s
>     let rec loop line d =
>         if 0 <= line then 
>             match s.comments.[[line]] with
>             | Some(r,text) -> 
>                 let text = text.TrimEnd()
>                 loop (line-1) ((if text = "" then "\n" else text + " ") :: d)
>             | _ -> d
>         else d
>     loop (line_near_to-1) [[]]
>     |> String.concat ""
>     |> fun x -> Ok(x.TrimEnd())
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Comments
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Comments = string
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TopStatement
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type [[<ReferenceEquality>]] TopStatement =
>     | TopAnd of VSCRange * TopStatement
>     | TopInl of Comments * VSCRange * (VSCRange * VarString) * RawExpr * 
> is_top_down: bool
>     | TopRecInl of Comments * VSCRange * (VSCRange * VarString) * RawExpr * 
> is_top_down: bool
>     | TopNominal of VSCRange * (VSCRange * VarString) * HoVar list * RawTExpr
>     | TopNominalRec of VSCRange * (VSCRange * VarString) * HoVar list * RawTExpr
>     | TopType of VSCRange * (VSCRange * VarString) * HoVar list * RawTExpr
>     | TopPrototype of Comments * VSCRange * (VSCRange * VarString) * (VSCRange *
> VarString) * TypeVar list * RawTExpr
>     | TopInstance of VSCRange * (VSCRange * VarString) * (VSCRange * VarString) 
> * TypeVar list * RawExpr
>     | TopOpen of VSCRange * (VSCRange * VarString) * (VSCRange * SymbolString) 
> list
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### top_inl_or_let_process
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let top_inl_or_let_process comments is_top_down = function
>     | (r,PatVar(r',name),body),is_rec -> 
>         let rec loop = function
>             | RawAnnot(r,body,t) -> loop body
>             | RawForall _ | RawFun _ ->
>                 if is_rec then 
> Ok(TopRecInl(comments,r,(r',name),body,is_top_down))
>                 else Ok(TopInl(comments,r,(r',name),body,is_top_down))
>             | _ -> Error [[r, ExpectedGlobalFunction]]
>         loop body
>     | (_,x,_),_ -> Error [[range_of_pattern x, 
> ExpectedVarOrOpAsNameOfGlobalStatement]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### top_inl_or_let
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let top_inl_or_let d = ((comments .>>. inl_or_let root_term root_pattern_pair 
> root_type_annot) >>= fun (comments,x) d -> top_inl_or_let_process comments 
> d.is_top_down x) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### process_union
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let process_union (r,(layout,n,a,(r',b))) _ =
>     let this = (RawTVar n,a) ||> List.fold (fun s x -> 
> RawTApply(r',s,RawTVar(r',hovar_name x)))
>     match layout with
>     | UHeap -> Ok(TopNominalRec(r,n,a,RawTUnion(r',b,layout,this)))
>     | UStack -> Ok(TopNominal(r,n,a,RawTUnion(r',b,layout,this)))
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### union_clauses
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let union_clauses d = root_type_union root_type_defaults d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### top_union
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let top_union d = ((rangeBlockParsing (tuple4 (skip_keyword SpecUnion >>. 
> ((skip_keyword SpecRec >>% UHeap) <|>% UStack)) read_small_type_var' (many 
> ho_var .>> skip_op "=") union_clauses)) >>= process_union) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### top_nominal
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let top_nominal d = 
>     (rangeBlockParsing (tuple3 (skip_keyword SpecNominal >>. 
> read_small_type_var') (many ho_var .>> skip_op "=") (root_type 
> {root_type_defaults with allow_term=true}))
>     |>> fun (r,(n,a,b)) -> TopNominal(r,n,a,b)) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### type_forall
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline type_forall next d = (pipe2 (forall <|>% [[]]) next (List.foldBack 
> (fun x s -> RawTForall(range_of_typevar x +. range_of_texpr s,x,s)))) d 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### top_prototype
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let top_prototype d = 
>     (rangeBlockParsing 
>         (tuple5 comments
>             (skip_keyword SpecPrototype >>. (read_small_var' <|> rounds 
> read_op')) read_small_type_var' (many forall_var) 
>             (skip_op ":" >>. type_forall (root_type root_type_defaults)))
>     |>> fun (r,(com,a,b,c,d)) -> TopPrototype(com,r,a,b,c,d)) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### top_instance
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let top_instance d =
>     (rangeBlockParsing
>         (tuple4 (skip_keyword SpecInstance >>. (read_small_var' <|> rounds 
> read_op')) read_small_type_var' (many forall_var) (skip_op "=" >>. root_term))
>     >>= fun (r,(prototype_name, nominal_name, nominal_foralls, body)) _ ->
>             Ok(TopInstance(r,prototype_name,nominal_name,nominal_foralls,body))
>             ) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### top_type
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let top_type d = (rangeBlockParsing (tuple3 (skip_keyword SpecType >>. 
> read_small_type_var') (many ho_var) (skip_op "=" >>. root_type 
> root_type_defaults)) |>> fun (r,(a,b,c)) -> TopType(r,a,b,c)) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### top_and_inl_or_let
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let top_and_inl_or_let d = 
>     (comments .>>. restore 1 (rangeBlockParsing (and_inl_or_let root_term 
> root_pattern_pair root_type_annot)) 
>     >>= fun (comments,(r,x)) d -> top_inl_or_let_process comments d.is_top_down 
> x |> Result.map (fun x -> TopAnd(r,x))) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### top_and
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline top_and f = restore 1 (rangeBlockParsing (skip_keyword SpecAnd >>. 
> f)) |>> TopAnd
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### top_and_union
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let top_and_union d = top_and ((rangeBlockParsing (tuple4 (skip_keyword 
> SpecUnion >>% UHeap) read_small_type_var' (many ho_var .>> skip_op "=") 
> union_clauses)) >>= process_union) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### top_open
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let top_open d = (module_openBlockParsing |>> fun (r,(name,acs)) -> 
> TopOpen(r,name,acs)) d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### top_statement
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let top_statement s =
>     let (+) = alt (indexBlockParsing s)
>     (top_inl_or_let + top_union + top_nominal + top_prototype + top_type + 
> top_instance + top_and_inl_or_let + top_and_union + top_open) s
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ParserErrorsList
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ParserErrorsList = (VSCRange * ParserErrors) list
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ParseResult
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ParseResult = Result<TopStatement,ParserErrorsList>
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### parseBlockParsing
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let parseBlockParsing (s : BlockParsingEnv) : ParseResult =
>     if 0 < s.tokens.Length then
>         match top_statement s with
>         | Ok _ as x -> if s.Index = s.tokens.Length then x else Error [[fst 
> s.tokens.[[s.Index]], ExpectedEob]]
>         | Error [[]] ->
>             if s.Index = s.tokens.Length then Error [[fst (Array.last s.tokens),
> UnexpectedEob]]
>             else Error [[fst s.tokens.[[s.Index]], ExpectedEob]]
>         | Error _ as l -> l
>     else
>         Error [[]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### show_parser_error
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let show_parser_error = function
>     | TypeVarsNeedToBeExplicitForExists -> "The type vars for the exists body 
> have to be specified up front in the bottom-up segment."
>     | DuplicateExistsVar -> "Duplicate variable in the exists type."
>     | ExistsNotAllowedInTypecase -> "The existential type is not allowed in 
> typecase."
>     | ForallNotAllowedInTypecase -> "The type lambda is not allowed in 
> typecase."
>     | MetavarShadowedByVar -> "The metavariable is shadowed by a variable."
>     | VarShadowedByMetavar -> "The variable is shadowed by a metavariable."
>     | ExpectedPairedSymbolInUnion -> "The union clause should be pair whose left
> side is a symbol."
>     | ExpectedEscapedChar false -> "escaped character"
>     | ExpectedEscapedChar true -> "escaped character or the escaped variable 
> (\\v)"
>     | ExpectedUnescapedChar -> "unescaped character"
>     | ExpectedMacroVar -> "variable"
>     | ExpectedMacroTypeVar -> "type variable"
>     | ExpectedMacroTypeLitVar -> "type literal variable"
>     | ExpectedText -> "text"
>     | ExpectedMacroOpen -> "$\""
>     | ExpectedStringOpen -> "\""
>     | ExpectedMacroClose | ExpectedStringClose -> "\""
>     | ExpectedKeyword x ->
>         match x with
>         | SpecExists -> "exists"
>         | SpecIn -> "in"
>         | SpecAnd -> "and"
>         | SpecFun -> "fun"
>         | SpecMatch -> "match"
>         | SpecTypecase -> "typecase"
>         | SpecFunction -> "function"
>         | SpecWith -> "with"
>         | SpecWithout -> "without"
>         | SpecAs -> "as"
>         | SpecWhen -> "when"
>         | SpecInl -> "inl"
>         | SpecLet -> "let"
>         | SpecForall -> "forall"
>         | SpecInm -> "inm"
>         | SpecInb -> "inb"
>         | SpecRec -> "rec"
>         | SpecIf -> "if"
>         | SpecThen -> "then"
>         | SpecElif -> "elif"
>         | SpecElse -> "else"
>         | SpecJoin -> "join"
>         | SpecJoinBackend -> "join_backend"
>         | SpecType -> "type"
>         | SpecNominal -> "nominal"
>         | SpecReal -> "real"
>         | SpecUnion -> "union"
>         | SpecOpen -> "open"
>         | SpecWildcard -> "_"
>         | SpecInstance -> "instance"
>         | SpecPrototype -> "prototype"
>     | ExpectedParenthesis(Round,Open) -> "("
>     | ExpectedParenthesis(Curly,Open) -> "{"
>     | ExpectedParenthesis(Square,Open) -> "[["
>     | ExpectedParenthesis(Round,Close) -> ")"
>     | ExpectedParenthesis(Curly,Close) -> "}"
>     | ExpectedParenthesis(Square,Close) -> "]]"
>     | ExpectedMacroExpression(MTerm,Open) -> "`("
>     | ExpectedMacroExpression(MType,Open) -> "!("
>     | ExpectedMacroExpression(MTypeLit,Open) -> "@("
>     | ExpectedMacroExpression(MTerm,Close) -> ")"
>     | ExpectedMacroExpression(MType,Close) -> ")"
>     | ExpectedMacroExpression(MTypeLit,Close) -> ")"
>     | ExpectedOpenParenthesis -> "(, { or [["
>     | ExpectedOperator' -> "operator"
>     | ExpectedOperator x -> x
>     | ExpectedUnaryOperator' -> "unary operator"
>     | ExpectedUnaryOperator x -> x
>     | ExpectedUnit -> "()"
>     | ExpectedSmallVar -> "lowercase variable"
>     | ExpectedBigVar -> "uppercase variable"
>     | ExpectedVar -> "variable"
>     | ExpectedLit -> "literal"
>     | ExpectedSymbol -> "symbol"
>     | ExpectedSymbolPaired -> "paired symbol"
>     | ExpectedStatement -> "statement"
>     | ExpectedFunctionAsBodyOfRecStatement -> "Rec statements should all return 
> functions known at parse time."
>     | ExpectedGlobalFunction -> "Global inl/let statements should all return 
> functions known at parse time."
>     | ExpectedSinglePatternWhenStatementNameIsNorVarOrOp -> "Unexpected 
> pattern."
>     | ExpectedVarOrOpAsNameOfGlobalStatement -> "The first pattern of a global 
> statement should either be a variable or compile down to it."
>     | ExpectedVarOrOpAsNameOfRecStatement -> "The first pattern of a recursive 
> statement should either be a variable or compile down to it."
>     | ExpectedExpression -> "A sequence of statements should end in an 
> expression."
>     | InbuiltOpNotFound -> "Not found among the inbuilt operations."
>     | UnknownOperator -> "Operator does not have known precedence and 
> associativity."
>     | ForallNotAllowed -> "Forall not allowed here."
>     | InvalidPattern DisjointOrPatternVar -> "Both branches of an or pattern 
> need to have the same variables. This one is disjoint."
>     | InvalidPattern DuplicateTermVar -> "Duplicate term variable in pattern."
>     | InvalidPattern DuplicateTypeVar -> "Duplicate type variable in pattern."
>     | InvalidPattern ShadowedVar -> "Shadowed pattern variable."
>     | MetavarNotAllowed -> "Metavariable is not allowed here."
>     | SymbolPairedShouldStartWithUppercaseInTypeScope -> "Paired symbol should 
> start with uppercase in type scope."
>     | TermNotAllowed -> "The term is not allowed here."
>     | TypecaseNotAllowed -> "Typecase is not allowed here."
>     | UnexpectedAndInlRec -> "The first statement of a recursive block has to be
> marked as recursive."
>     | ExpectedEob -> "Failed to parse this token."
>     | UnexpectedEob -> "Unexpected end of block past this token."
>     | UnknownError -> "Compiler error: Parsing failed at this position with no 
> error message and without consuming all the tokens in a block."
>     | DuplicateRecordTypeVar -> "Duplicate record type variable."
>     | DuplicateForallVar -> "Duplicate forall variable."
>     | DuplicateConstraint -> "Duplicate constraint."
>     | InvalidPattern DuplicateRecordSymbol
>     | DuplicateTermRecordSymbol -> "Duplicate record symbol."
>     | InvalidPattern DuplicateRecordInjection
>     | DuplicateTermRecordInjection -> "Duplicate record injection."
>     | DuplicateRecFunctionName -> "Shadowing of functions by the members of the 
> same mutually recursive block is not allowed."
>     | BottomUpNumberParseError (x, val_dsc) -> sprintf "The string %s cannot be 
> safely parsed as %s." x val_dsc
>     | DuplicateUnionKey -> "Duplicate union keys are not allowed."
>     | ListLiteralsNotAllowedInBottomUp -> "List literals are not allowed in the 
> bottom-up segment."
>     | ArrayLiteralsNotAllowedInBottomUp -> "Array literals are not allowed in 
> the bottom-up segment."
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## HopacInfixes
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #r 
> @"../../../../../../../.nuget/packages/hopac/0.5.1/lib/netstandard2.0/Hopac.dll"
> #r 
> @"../../../../../../../.nuget/packages/hopac/0.5.1/lib/netstandard2.0/Hopac.Core
> .dll"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> open Hopac
> open Hopac.Infixes
> 
> let (>>**) x f =
>     if x |> Hopac.Promise.Now.isFulfilled
>     then x |> Hopac.Promise.Now.get |> f
>     else Hopac.Infixes.(>>=*) x f
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## BlockBundling
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> open Hopac.Extensions
> open Hopac.Stream
> 
> // open FSharpx.Collections
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Bundle
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // These bundles are top statements that have their range offsets distributed 
> into them.
> type [[<ReferenceEquality>]] Bundle =
>     | BundleType of VSCRange * (VSCRange * VarString) * HoVar list * RawTExpr
>     | BundleNominal of VSCRange * (VSCRange * VarString) * HoVar list * RawTExpr
>     | BundleNominalRec of (VSCRange * (VSCRange * VarString) * HoVar list * 
> RawTExpr) list
>     | BundleInl of Comments * VSCRange * (VSCRange * VarString) * RawExpr * 
> is_top_down: bool
>     | BundleRecInl of (Comments * VSCRange * (VSCRange * VarString) * RawExpr) 
> list * is_top_down: bool
>     | BundlePrototype of Comments * VSCRange * (VSCRange * VarString) * 
> (VSCRange * VarString) * TypeVar list * RawTExpr
>     | BundleInstance of VSCRange * (VSCRange * VarString) * (VSCRange * 
> VarString) * TypeVar list * RawExpr
>     | BundleOpen of VSCRange * (VSCRange * VarString) * (VSCRange * 
> SymbolString) list
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### bundle_range
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let bundle_range = function
>     | BundleType(r,_,_,_) | BundleNominal(r,_,_,_) | BundleInl(_,r,_,_,_) 
>     | BundlePrototype(_,r,_,_,_,_) | BundleInstance(r,_,_,_,_) | 
> BundleOpen(r,_,_) -> r
>     | BundleNominalRec l -> List.head l |> fun (r,_,_,_) -> r
>     | BundleRecInl(l,_) -> List.head l |> fun (_,r,_,_) -> r
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_offset
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_offset offset (range : VSCRange) : VSCRange = 
>     let f (a : VSCPos) = {|a with line=offset + a.line|}
>     let a,b = range
>     f a, f b
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_offset_hovar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_offset_hovar offset (a,b) = add_offset offset a, b
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_offset_hovar_list
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_offset_hovar_list offset x = List.map (add_offset_hovar offset) x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_offset_typevar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_offset_typevar offset ((a,b),c) = (add_offset offset a, b), 
> add_offset_hovar_list offset c
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_offset_typevar_list
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_offset_typevar_list offset x = List.map (add_offset_typevar offset) x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### fold_offset_ty
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec fold_offset_ty offset x = 
>     let f = fold_offset_ty offset
>     let g = add_offset offset
>     match x with
>     | RawTWildcard r -> RawTWildcard(g r)
>     | RawTLit(r,a) -> RawTLit(g r, a)
>     | RawTB r -> RawTB(g r)
>     | RawTMetaVar(r,a) -> RawTMetaVar(g r,a)
>     | RawTVar(r,a) -> RawTVar(g r,a)
>     | RawTArray(r,a) -> RawTArray(g r,f a)
>     | RawTPair(r,a,b) -> RawTPair(g r,f a,f b)
>     | RawTFun(r,a,b,t) -> RawTFun(g r,f a,f b,t)
>     | RawTRecord(r,a) -> RawTRecord(g r,Map.map (fun _ -> f) a)
>     | RawTUnion(r,a,b,c) -> RawTUnion(g r,Map.map (fun _ (is_gadt,body) -> 
> is_gadt, f body) a,b,f c)
>     | RawTTypecase(r,a,b) -> RawTTypecase(g r,f a,List.map (fun (a,b) -> f a, f 
> b) b)
>     | RawTSymbol(r,a) -> RawTSymbol(g r,a)
>     | RawTApply(r,a,b) -> RawTApply(g r,f a,f b)
>     | RawTForall(r,a,b) -> RawTForall(g r,add_offset_typevar offset a,f b)
>     | RawTExists(r,a,b) -> RawTExists(g r,add_offset_typevar_list offset a,f b)
>     | RawTPrim(r,a) -> RawTPrim(g r,a)
>     | RawTTerm(r,a) -> RawTTerm(g r,fold_offset_term offset a)
>     | RawTMacro(r,a) -> RawTMacro(g r,fold_offset_macro offset a)
>     | RawTFilledNominal(r,a) -> RawTFilledNominal(g r,a)
>     | RawTLayout(r,a,b) -> RawTLayout(g r,f a,b)
> and fold_offset_macro offset a =
>     let g = add_offset offset
>     List.map (function
>         | RawMacroText(r,a) -> RawMacroText(g r,a)
>         | RawMacroTerm(r,a) -> RawMacroTerm(g r,fold_offset_term offset a)
>         | RawMacroType(r,a) -> RawMacroType(g r,fold_offset_ty offset a)
>         | RawMacroTypeLit(r,a) -> RawMacroTypeLit(g r,fold_offset_ty offset a)
>         ) a
> and fold_offset_term offset x = 
>     let f = fold_offset_term offset
>     let ty = fold_offset_ty offset
>     let g = add_offset offset
>     match x with
>     | RawB r -> RawB (g r)
>     | RawV(r,a,b) -> RawV (g r,a,b)
>     | RawLit(r,a) -> RawLit (g r,a)
>     | RawDefaultLit(r,a) -> RawDefaultLit (g r,a)
>     | RawSymbol(r,a) -> RawSymbol (g r,a)
>     | RawType(r,a) -> RawType(g r, ty a)
>     | RawMatch(r,a,b) -> RawMatch(g r,f a,List.map (fun (a,b) -> 
> fold_offset_pattern offset a,f b) b)
>     | RawFun(r,a) -> RawFun(g r,List.map (fun (a,b) -> fold_offset_pattern 
> offset a,f b) a)
>     | RawForall(r,a,b) -> RawForall(g r,add_offset_typevar offset a,f b)
>     | RawExists(r,(r',a),b) -> RawExists(g r,(g r',Option.map (List.map ty) a),f
> b)
>     | RawFilledForall(r,a,b) -> RawFilledForall(g r,a,f b)
>     | RawRecBlock(r,a,b) -> RawRecBlock(g r,List.map (fun ((r,a),b) -> (g r,a),f
> b) a,f b)
>     | RawRecordWith(r,a,b,c) -> 
>         let b =
>             b |> List.map (function
>                 | RawRecordWithSymbol((r,a),b) -> RawRecordWithSymbol((g r,a),f 
> b)
>                 | RawRecordWithSymbolModify((r,a),b) -> 
> RawRecordWithSymbolModify((g r,a),f b)
>                 | RawRecordWithInjectVar((r,a),b) -> RawRecordWithInjectVar((g 
> r,a),f b)
>                 | RawRecordWithInjectVarModify((r,a),b) -> 
> RawRecordWithInjectVarModify((g r,a),f b)
>                 )
>         let c =
>             c |> List.map (function
>                 | RawRecordWithoutSymbol(r,a) -> RawRecordWithoutSymbol(g r,a)
>                 | RawRecordWithoutInjectVar(r,a) -> RawRecordWithoutInjectVar(g 
> r,a)
>                 )
>         RawRecordWith(g r, List.map f a,b,c)
>     | RawOp(r,a,b) -> RawOp(g r,a,List.map f b)
>     | RawJoinPoint(r,q,a,b) -> RawJoinPoint(g r,Option.map (fun (r',w) -> g 
> r',w) q,f a,b)
>     | RawAnnot(r,a,b) -> RawAnnot(g r,f a,ty b)
>     | RawTypecase(r,a,b) -> RawTypecase(g r,ty a,List.map (fun (a,b) -> ty a,f 
> b) b)
>     | RawOpen(r,a,b,c) -> RawOpen(g r,add_offset_hovar offset 
> a,add_offset_hovar_list offset b,f c)
>     | RawApply(r,a,b) -> RawApply(g r,f a,f b)
>     | RawIfThenElse(r,a,b,c) -> RawIfThenElse(g r,f a,f b,f c)
>     | RawIfThen(r,a,b) -> RawIfThen(g r,f a,f b)
>     | RawPair(r,a,b) -> RawPair(g r,f a,f b)
>     | RawSeq(r,a,b) -> RawSeq(g r,f a,f b)
>     | RawHeapMutableSet(r,a,b,c) -> RawHeapMutableSet(g r,f a,List.map f b,f c)
>     | RawReal(r,a) -> RawReal(g r,f a)
>     | RawMissingBody r -> RawMissingBody(g r)
>     | RawMacro(r,a) -> RawMacro(g r,fold_offset_macro offset a)
>     | RawArray(r,a) -> RawArray(g r,List.map f a)
> and fold_offset_pattern offset x = 
>     let f = fold_offset_pattern offset
>     let term = fold_offset_term offset
>     let ty = fold_offset_ty offset
>     let g = add_offset offset
>     let g' x = add_offset_hovar offset x
>     match x with
>     | PatFilledDefaultValue _ -> failwith "Compiler error: Later stages only."
>     | PatB r -> PatB(g r)
>     | PatE r -> PatE(g r)
>     | PatVar(r,a) -> PatVar(g r,a)
>     | PatDyn(r,a) -> PatDyn(g r,f a)
>     | PatUnbox(r,q,a) -> PatUnbox(g r,q,f a)
>     | PatAnnot(r,a,b) -> PatAnnot(g r,f a,ty b)
>     | PatPair(r,a,b) -> PatPair(g r,f a,f b)
>     | PatSymbol(r,a) -> PatSymbol(g r,a)
>     | PatRecordMembers(r,a) ->
>         let a = a |> List.map (function
>             | PatRecordMembersSymbol((r,a),b) -> PatRecordMembersSymbol((g 
> r,a),f b)
>             | PatRecordMembersInjectVar((r,a),b) -> PatRecordMembersInjectVar((g
> r,a),f b)
>             )
>         PatRecordMembers(g r,a)
>     | PatOr(r,a,b) -> PatOr(g r,f a,f b)
>     | PatAnd(r,a,b) -> PatAnd(g r,f a,f b)
>     | PatValue(r,a) -> PatValue(g r,a)
>     | PatDefaultValue(r,a) -> PatDefaultValue(g r,a)
>     | PatWhen(r,a,b) -> PatWhen(g r,f a,term b)
>     | PatNominal(r,a,b,c) -> PatNominal(g r,g' a,List.map g' b,f c)
>     | PatExists(r,a,b) -> PatExists(g r,List.map g' a,f b)
>     | PatArray(r,a) -> PatArray(g r,List.map f a)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### bundle_blocks
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let bundle_blocks (blocks : TopStatement Block list) =
>     match blocks with
>     | [[]] -> None
>     | {block=TopAnd _} :: x' -> failwith "Compiler error: TopAnd should be 
> eliminated during the first bundling step."
>     | {block=TopRecInl _} :: _ as l ->
>         l |> List.mapFold (fun _ -> function
>             | {offset=i; block=TopRecInl(com,r,a,b,c)} -> (com, add_offset i r, 
> add_offset_hovar i a, fold_offset_term i b), c
>             | _ -> failwith "Compiler error: Recursive inl statements can only 
> be followed by statements of the same type."
>             ) true
>         |> BundleRecInl |> Some
>     | {block=TopNominalRec _} :: _ as l ->
>         l |> List.map (function 
>             | {offset=i; block=TopNominalRec(r,a,b,c)} -> (add_offset i r, 
> add_offset_hovar i a, add_offset_hovar_list i b, fold_offset_ty i c)
>             | _ -> failwith "Compiler error: Recursive type statements can only 
> be followed by statements of the same type."
>             )
>         |> BundleNominalRec |> Some
>     | [[{offset=i; block=TopInl(com,r,a,b,c)}]] -> BundleInl(com, add_offset i 
> r, add_offset_hovar i a, fold_offset_term i b, c) |> Some
>     | [[{offset=i; block=TopPrototype(com,r,a,b,c,d)}]] -> 
> BundlePrototype(com,add_offset i r, add_offset_hovar i a, add_offset_hovar i b, 
> add_offset_typevar_list i c, fold_offset_ty i d) |> Some
>     | [[{offset=i; block=TopNominal(r,a,b,c)}]] -> BundleNominal(add_offset i r,
> add_offset_hovar i a, add_offset_hovar_list i b, fold_offset_ty i c) |> Some
>     | [[{offset=i; block=TopType(r,a,b,c)}]] -> BundleType(add_offset i r, 
> add_offset_hovar i a, add_offset_hovar_list i b, fold_offset_ty i c) |> Some
>     | [[{offset=i; block=TopInstance(r,a,b,c,d)}]] -> BundleInstance(add_offset 
> i r, add_offset_hovar i a, add_offset_hovar i b, add_offset_typevar_list i c, 
> fold_offset_term i d) |> Some
>     | [[{offset=i; block=TopOpen(r,a,b)}]] -> BundleOpen(add_offset i r, 
> add_offset_hovar i a, add_offset_hovar_list i b) |> Some
>     | {block=TopInl _ | TopPrototype _ | TopNominal _ | TopType _ | TopInstance 
> _ | TopOpen _} :: _ -> failwith "Compiler error: Regular top level statements 
> should be singleton bundles."
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_line_to_range
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_line_to_range line ((a,b) : VSCRange) = {|a with line=line+a.line|}, {|b
> with line=line+b.line|}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### process_error
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let process_error v = 
>     let messages, expecteds = v |> List.distinct |> List.partition (fun x -> 
> System.Char.IsUpper(x,0))
>     let ex () = match expecteds with [[x]] -> sprintf "Expected: %s" x | x -> 
> sprintf "Expected one of: %s" (String.concat ", " x)
>     let f l = String.concat "\n" l
>     if List.isEmpty expecteds then f messages
>     elif List.isEmpty messages then ex ()
>     else f (ex () :: "" :: "Other error messages:" :: messages)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### show_block_parsing_error
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let show_block_parsing_error line (l : ParserErrorsList) : RString list =
>     l |> List.groupBy fst
>     |> List.map (fun (k,v) -> 
>         let k = add_line_to_range line k
>         let v = List.map (snd >> show_parser_error) v
>         k, process_error v
>         )
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ParsedBlock
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ParsedBlock = {result : ParseResult; semantic_tokens : LineTokens}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ParserState
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ParserState = {
>     is_top_down : bool
>     blocks : (LineTokens * ParsedBlock Promise Block) list
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### BlockBundleValue
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type BlockBundleValue = {bundle : Bundle option; errors : RString list}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### BlockBundleState
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type BlockBundleState = (TopStatement Block list * BlockBundleValue) Stream
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### BlockBundleStateInner
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type BlockBundleStateInner = {errors : RString list; tmp : TopStatement Block 
> list; state : BlockBundleState}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_block_bundle_init
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_block_bundle_init : BlockBundleState = Promise.Now.never()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_block_bundle
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> /// Bundles the blocks with the `and` statements. Also collects the parser 
> errors.
> /// Does diffing to ref preserve the bundles.
> let wdiff_block_bundle (state : BlockBundleState) (l : ParserState) : 
> BlockBundleState =
>     let (+.) a b = add_line_to_range a b
> 
>     let empty = {state=wdiff_block_bundle_init; tmp=[[]]; errors=[[]]}
>     let move_temp (s : BlockBundleStateInner) next =
>         let o' = List.rev s.tmp
>         let fl () = (o',{bundle=bundle_blocks o'; errors=Seq.toList s.errors}), 
> next empty
>         if Promise.Now.isFulfilled s.state then
>             match Promise.Now.get s.state with
>             | Cons((o,q),xs) when o = o' -> (o,{bundle=q.bundle; 
> errors=Seq.toList s.errors}), next {state=xs; tmp=[[]]; errors=[[]]}
>             | _ -> fl ()
>         else fl ()
>         |> Cons |> Promise.Now.withValue
> 
>     let inline iter (s : BlockBundleStateInner) l f = 
>         match l with
>         | (_,x) :: x' -> let offset = x.offset in x.block >>** fun {result=a} ->
> f (offset,a,x')
>         | [[]] -> move_temp s (fun _ -> Promise.Now.withValue Nil)
>     let rec init (s : BlockBundleStateInner) l = iter s l <| fun (offset,x,x') 
> -> 
>         match x with
>         | Ok (TopAnd(r,_)) -> init {s with errors = (offset +. r, "Invalid `and`
> statement.") :: s.errors} x'
>         | Ok (TopRecInl _ as a) -> recinl {s with tmp = {offset=offset; block=a}
> :: s.tmp} x'
>         | Ok (TopNominalRec _ as a) -> rectype {s with tmp = {offset=offset; 
> block=a} :: s.tmp} x'
>         | Ok a -> move_temp {s with tmp = {offset=offset; block=a} :: s.tmp} 
> (fun s -> init s x')
>         | Error er -> init {s with errors = List.append 
> (show_block_parsing_error offset er) s.errors} x'
>     and recinl (s : BlockBundleStateInner) l = iter s l <| fun (offset,x,x') -> 
>         match x with
>         | Ok (TopAnd(_, TopRecInl _ & a)) -> recinl {s with tmp = 
> {offset=offset; block=a} :: s.tmp} x'
>         | Ok (TopAnd(r, _)) -> recinl {s with errors = (offset +. r, "inl/let 
> recursive statements can only be followed by `and` inl/let statements.") :: 
> s.errors} x'
>         | Ok _ -> move_temp s (fun s -> init s l)
>         | Error er -> recinl {s with errors = List.append 
> (show_block_parsing_error offset er) s.errors} x'
>     and rectype (s : BlockBundleStateInner) l = iter s l <| fun (offset,x,x') ->        match x with
>         | Ok (TopAnd(_, TopNominalRec _ & a)) -> rectype {s with tmp = 
> {offset=offset; block=a} :: s.tmp} x'
>         | Ok (TopAnd(r, _)) -> rectype {s with errors = (offset +. r, "`union 
> rec` can only be followed by `and union`.") :: s.errors} x'
>         | Ok _ -> move_temp s (fun s -> init s l)
>         | Error er -> rectype {s with errors = List.append 
> (show_block_parsing_error offset er) s.errors} x'
> 
>     init {empty with state=state} l.blocks
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### semantic_tokens
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let semantic_tokens (l : ParserState) = 
>     let rec loop s = function
>         | (_,x) :: xs -> x.block >>= fun x -> loop 
> (FSharpx.Collections.PersistentVector.append s x.semantic_tokens) xs
>         | [[]] -> Job.result s
>     loop FSharpx.Collections.PersistentVector.empty l.blocks
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## Infer
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### 'a ref'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type [[<ReferenceEquality>]] 'a ref' = {mutable contents' : 'a}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TT
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type TT =
>     | KindType
>     | KindFun of TT * TT
>     | KindMetavar of TT option ref'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Constraint
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Constraint =
>     | CUInt
>     | CSInt
>     | CInt
>     | CFloat
>     | CNumber
>     | CPrim
>     | CSymbol
>     | CRecord
>     | CPrototype of GlobalId
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ConstraintOrModule
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ConstraintOrModule = C of Constraint | M of Map<string,ConstraintOrModule>
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type [[<ReferenceEquality>]] Var = {
>     scope : int
>     constraints : Constraint Set // Must be stated up front and needs to be 
> static in forall vars
>     kind : TT // Is not supposed to have metavars.
>     name : string // Is what gets printed.
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### MVar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type [[<ReferenceEquality>]] MVar = {
>     mutable scope : int
>     mutable constraints : Constraint Set // Must be stated up front and needs to
> be static in forall vars
>     kind : TT // Has metavars, and so is mutable.
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TM
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type TM =
>     | TMText of string
>     | TMVar of T
>     | TMLitVar of T
> and T =
>     | TyB
>     | TyLit of Literal
>     | TyPrim of PrimitiveType
>     | TySymbol of string
>     | TyPair of T * T
>     | TyRecord of Map<int * string, T>
>     | TyModule of Map<string, T>
>     | TyComment of Comments * T
>     | TyFun of T * T * FunType
>     | TyArray of T
>     | TyNominal of GlobalId
>     | TyUnion of Map<int * string,bool * T> * UnionLayout // The boolean arg 
> determines whether the union case is generalized.
>     | TyApply of T * T * TT // Regular type functions (TyInl) get reduced, while
> this represents the staged reduction of nominals.
>     | TyInl of Var * T
>     | TyForall of Var * T
>     | TyExists of Var list * T
>     | TyMetavar of MVar * T option ref
>     | TyVar of Var * T option ref
>     | TyMacro of TM list
>     | TyLayout of T * Layout
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### tyvar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let tyvar x = TyVar(x, ref None)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TypeError
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type TypeError =
>     | KindError of TT * TT
>     | KindErrorInConstraint of TT * TT
>     | ExpectedSymbolAsRecordKey of T
>     | ExpectedSymbolAsModuleKey of T
>     | UnboundVariable of string
>     | UnboundModule
>     | ModuleIndexFailedInOpen
>     | ModuleIndexWouldShadowLocalVars of string [[]]
>     | TermError of T * T
>     | TypeVarScopeError of string * T * T
>     | RecursiveMetavarsNotAllowed of T * T
>     | RecursiveTypevarsNotAllowed of T * T
>     | ForallVarConstraintError of string * Constraint Set * Constraint Set
>     | MetavarsNotAllowedInRecordWith
>     | ExpectedRecord of T
>     | ExpectedExistentialInTerm of T
>     | ExpectedExistentialInPattern of T
>     | UnexpectedNumberOfArgumentsInExistsPattern of got: int * expected: int
>     | UnexpectedNumberOfArgumentsInExistsBody of got: int * expected: int
>     | ExistsShouldntHaveMetavars of T list
>     | ExpectedRecordInsideALayout of T
>     | UnionsCannotBeApplied
>     | ExpectedNominalInApply of T
>     | MalformedNominal
>     | LayoutSetMustBeAnnotated
>     | ExpectedMutableLayout of T
>     | ExpectedRecordAsResultOfIndex of T
>     | RecordIndexFailed of string
>     | ModuleIndexFailed of string
>     | ExpectedModule of T
>     | ExpectedSymbol' of T
>     | ExpectedSymbolInRecordWith of T
>     | RealFunctionInTopDown
>     | ModuleMustBeImmediatelyApplied
>     | MissingRecordFieldsInPattern of T * string list
>     | CasePatternNotFoundForType of GlobalId * string
>     | CasePatternNotFound of string
>     | CannotInferCasePatternFromTermInEnv of T
>     | NominalInPatternUnbox of GlobalId
>     | TypeInEnvIsNotNominal of T
>     | UnionInPatternNominal of GlobalId
>     | ConstraintError of Constraint * T
>     | PrototypeConstraintCannotPropagateToMetavar of GlobalId * T
>     | PrototypeConstraintCannotPropagateToVar of GlobalId * T
>     | ExpectedAnnotation
>     | ExpectedSinglePattern
>     | RecursiveAnnotationHasMetavars of T
>     | ValueRestriction of T
>     | DuplicateRecInlName
>     | DuplicateKeyInRecUnion
>     | ExpectedConstraintInsteadOfModule
>     | InstanceNotFound of prototype: GlobalId * instance: GlobalId
>     | ExpectedPrototypeConstraint of Constraint
>     | ExpectedPrototypeInsteadOfModule
>     | ExpectedHigherOrder of T
>     | InstanceArityError of prototype_arity: int * instance_arity: int
>     | InstanceCoreVarsShouldMatchTheArityDifference of got: int * expected: int
>     | InstanceKindError of TT * TT
>     | KindNotAllowedInInstanceForall
>     | InstanceVarShouldNotMatchAnyOfPrototypes
>     | MissingBody
>     | MacroIsMissingAnnotation
>     | ArrayIsMissingAnnotation
>     | ExistsIsMissingAnnotation
>     | ShadowedForall
>     | ShadowedExists
>     | UnionTypesMustHaveTheSameLayout
>     | OrphanInstance
>     | ShadowedInstance
>     | UnusedTypeVariable of string list
>     | CompilerError of string
>     | IncorrectGADTConstructorType
>     | IncorrectRecursiveNominal
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### shorten'<'a>
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline shorten'<'a> (x : 'a) link next =
>     let x' : 'a = next x
>     if System.Object.ReferenceEquals(x,x') = false then link.contents' <- Some 
> x'
>     x'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### visit_tt
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec visit_tt = function
>     | KindMetavar({contents'=Some x} & link) -> shorten' x link visit_tt
>     | a -> a
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### shorten<'a>
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline shorten<'a> (x : 'a) (link : ref<option<'a>>) next =
>     let x' : 'a = next x
>     if System.Object.ReferenceEquals(x,x') = false then link.Value <- Some x'
>     x'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### visit_t_mvar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec visit_t_mvar = function
>     | TyComment(_,a) -> visit_t_mvar a
>     | TyMetavar(_,{contents=Some x} & link) -> shorten x link visit_t_mvar
>     | a -> a
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### visit_t
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec visit_t x = 
>     match visit_t_mvar x with
>     | TyVar(_,{contents=Some x}) -> visit_t x
>     | x -> x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### InferTypeErrorException
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> exception InferTypeErrorException of (VSCRange * TypeError) list
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### metavars
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec metavars = function
>     | RawTTypecase _ | RawTExists _ | RawTFilledNominal _ | RawTMacro _ | 
> RawTVar _ | RawTTerm _ 
>     | RawTPrim _ | RawTWildcard _ | RawTLit _ | RawTB _ | RawTSymbol _ -> 
> Set.empty
>     | RawTMetaVar(_,a) -> Set.singleton a
>     | RawTArray(_,a) | RawTLayout(_,a,_) | RawTForall(_,_,a) -> metavars a
>     | RawTPair(_,a,b) | RawTApply(_,a,b) | RawTFun(_,a,b,_) -> metavars a + 
> metavars b
>     | RawTUnion(_,l,_,this) -> Map.fold (fun s _ (_,v) -> s + metavars v) 
> (metavars this) l
>     | RawTRecord(_,l) -> Map.fold (fun s _ v -> s + metavars v) Set.empty l
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TopEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type TopEnv = {
>     nominals_next_tag : int
>     nominals_aux : Map<GlobalId, {|name : string; kind : TT|}>
>     nominals : Map<GlobalId, {|vars : Var list; body : T|}>
>     prototypes_next_tag : int
>     prototypes_instances : Map<GlobalId * GlobalId, Constraint Set list>
>     prototypes : Map<GlobalId, {|name : string; signature: T; kind : TT|}>
>     ty : Map<string,T>
>     term : Map<string,T>
>     constraints : Map<string,ConstraintOrModule>
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### top_env_emptyInfer
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let top_env_emptyInfer = {
>     nominals_next_tag = 0
>     nominals_aux = Map.empty
>     nominals = Map.empty
>     prototypes_next_tag = 0
>     prototypes_instances = Map.empty
>     prototypes = Map.empty
>     ty = Map.empty
>     term = Map.empty
>     constraints = Map.empty
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### unionInfer
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let unionInfer small big = {
>     nominals_next_tag = max small.nominals_next_tag big.nominals_next_tag
>     nominals_aux = Map.foldBack Map.add small.nominals_aux big.nominals_aux
>     nominals = Map.foldBack Map.add small.nominals big.nominals
>     prototypes_next_tag = max small.prototypes_next_tag big.prototypes_next_tag
>     prototypes_instances = Map.foldBack Map.add small.prototypes_instances 
> big.prototypes_instances
>     prototypes = Map.foldBack Map.add small.prototypes big.prototypes
>     ty =
>         Map.foldBack (fun k v s ->
>             let v =
>                 match v, s |> Map.tryFind k with
>                 | TyModule x, Some (TyModule x') -> Map.foldBack Map.add x x' |>
> TyModule
>                 | _ -> v
>             s |> Map.add k v
>         ) small.ty big.ty
>     term =
>         Map.foldBack (fun k v s ->
>             let v =
>                 match v, s |> Map.tryFind k with
>                 | TyModule x, Some (TyModule x') -> Map.foldBack Map.add x x' |>
> TyModule
>                 | _ -> v
>             s |> Map.add k v
>         ) small.term big.term
>     constraints =
>         Map.foldBack (fun k v s ->
>             let v =
>                 match v, s |> Map.tryFind k with
>                 | M x, Some (M x') -> Map.foldBack Map.add x x' |> M
>                 | _ -> v
>             s |> Map.add k v
>         ) small.constraints big.constraints
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### in_moduleInfer
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let in_moduleInfer m a : TopEnv =
>     {a with
>         ty = Map.add m (TyModule a.ty) Map.empty
>         term = Map.add m (TyModule a.term) Map.empty
>         constraints = Map.add m (M a.constraints) Map.empty
>         }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Env_
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Env_ = { ty : Map<string,T>; term : Map<string,T>; constraints : 
> Map<string,ConstraintOrModule> }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### InferEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type InferEnv = Env_
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### kind_get
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let kind_get x =
>     let rec loop = function
>         | KindFun(a,b) -> a :: loop b
>         | a -> [[a]]
>     let l = loop x
>     {|arity=List.length l; args=l|}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### prototype_init_forall_kind
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let prototype_init_forall_kind = function
>     | TyForall(a,_) -> a.kind
>     | _ -> failwith "Compiler error: The prototype should have at least one 
> forall."
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### show_primt
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let show_primt = function
>     | UInt8T -> "u8"
>     | UInt16T -> "u16"
>     | UInt32T -> "u32"
>     | UInt64T -> "u64"
>     | Int8T -> "i8"
>     | Int16T -> "i16"
>     | Int32T -> "i32"
>     | Int64T -> "i64"
>     | Float32T -> "f32"
>     | Float64T -> "f64"
>     | BoolT -> "bool"
>     | StringT -> "string"
>     | CharT -> "char"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### constraint_name
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec constraint_name (env : TopEnv) = function
>     | CSInt -> "sint" | CUInt -> "uint" | CInt -> "int"
>     | CFloat -> "float" | CNumber -> "number" | CPrim -> "prim"
>     | CSymbol -> "symbol" | CRecord -> "record"
>     | CPrototype i -> env.prototypes.[[i]].name
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### constraint_kind
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let constraint_kind (env : TopEnv) = function
>     | CSInt | CUInt | CInt | CFloat | CNumber | CPrim | CSymbol | CRecord -> 
> KindType
>     | CPrototype i -> env.prototypes.[[i]].kind
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### tt
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec tt (env : TopEnv) = function
>     | TyComment(_,x) | TyMetavar(_,{contents=Some x}) -> tt env x
>     | TyNominal i -> env.nominals_aux.[[i]].kind
>     | TyApply(_,_,x) | TyMetavar({kind=x},_) | TyVar({kind=x},_) -> x
>     | TyExists _ | TyLit _ | TyUnion _ | TyLayout _ | TyMacro _ | TyB | TyPrim _
> | TyForall _ | TyFun _ | TyRecord _ | TyModule _ | TyPair _ | TySymbol _ | 
> TyArray _ -> KindType
>     | TyInl(v,a) -> KindFun(v.kind,tt env a)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### has_metavars
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec has_metavars x =
>     let f = has_metavars
>     match visit_t x with
>     | TyMetavar _ -> true
>     | TyVar _ | TyNominal _ | TyB | TyLit _ | TyPrim _ | TySymbol _ | TyModule _
> -> false
>     | TyExists(_,a) | TyComment(_,a) | TyLayout(a,_) | TyForall(_,a) | 
> TyInl(_,a) | TyArray a -> f a
>     | TyApply(a,b,_) | TyFun(a,b,_) | TyPair(a,b) -> f a || f b
>     | TyUnion(l,_) -> Map.exists (fun _ -> snd >> f) l
>     | TyRecord l -> Map.exists (fun _ -> f) l
>     | TyMacro a -> List.exists (function TMVar x -> has_metavars x | _ -> false)
> a
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### term_subst
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // Eliminates the metavars in the type if possible.
> let term_subst a =
>     let h = System.Collections.Generic.HashSet(HashIdentity.Reference)
>     // 'a = 'b = ('c = int * 'd = float)
>     // visit_t shortens to:
>     // 'a = ('c = int * 'd = float)
>     // visit_t returns:
>     // ('c = int * 'd = float)
>     // term_subst returns:
>     // int * float
>     let inline g a f =
>         let _ = h.Add(a)
>         let x = f()
>         let _ = h.Remove(a)
>         x
>     let rec f a =
>         match visit_t a with
>         | TyMetavar _ | TyNominal _ | TyB | TyLit _ | TyPrim _ | TySymbol _ as x
> -> x
>         | TyVar(x,r) -> TyVar(x, if h.Contains x then ref None else r)
>         | TyComment(a,b) -> TyComment(a,f b)
>         | TyPair(a,b) -> TyPair(f a, f b)
>         | TyRecord a -> TyRecord(Map.map (fun _ -> f) a)
>         | TyModule a -> TyModule(Map.map (fun _ -> f) a)
>         | TyUnion(a,b) -> TyUnion(Map.map (fun _ (is_gadt, x) -> is_gadt, f x) 
> a,b)
>         | TyFun(a,b,t) -> TyFun(f a, f b, t)
>         | TyForall(a,b) -> g a <| fun () -> TyForall(a,f b)
>         | TyExists(a,b) -> TyExists(a,f b)
>         | TyArray a -> TyArray(f a)
>         | TyApply(a,b,c) -> TyApply(f a, f b, c)
>         | TyInl(a,b) -> g a <| fun () -> TyInl(a,f b)
>         | TyMacro a -> TyMacro(List.map (function TMVar x -> TMVar(f x) | x -> 
> x) a)
>         | TyLayout(a,b) -> TyLayout(f a,b)
>     f a
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### HoverTypes
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type HoverTypes() =
>     // This is to allocate less trash for code that doesn't use GADTs. 
>     // Unfortunately, we cannot use memoization instead as term_subst is not 
> functionally pure.
>     let rec has_substituted_tvars x = 
>         let f = has_substituted_tvars
>         match x with
>         | TyMetavar(_,{contents=Some _}) -> true
>         | TyVar (_, {contents=Some x}) | TyComment(_,x) -> f x
>         | TyVar _ | TyMetavar _ | TyNominal _ | TyB | TyLit _ | TyPrim _ | 
> TySymbol _ | TyModule _ -> false
>         | TyExists(_,a) | TyComment(_,a) | TyLayout(a,_) | TyForall(_,a) | 
> TyInl(_,a) | TyArray a -> f a
>         | TyApply(a,b,_) | TyFun(a,b,_) | TyPair(a,b) -> f a || f b
>         | TyUnion(l,_) -> Map.exists (fun _ -> snd >> f) l
>         | TyRecord l -> Map.exists (fun _ -> f) l
>         | TyMacro a -> List.exists (function TMVar x -> has_metavars x | _ -> 
> false) a
>     let hover_types = ResizeArray()
>     member _.AddHover((r : VSCRange),(x,(com : string))) =
>         hover_types.Add(r,((if has_substituted_tvars x then term_subst x else 
> x), com))
>     member _.ToArray() = hover_types.ToArray()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### module_openInfer
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let module_openInfer (hover_types : HoverTypes option) (top_env : InferEnv) 
> (local_env_ty : Map<string,T>) (r : VSCRange) b l =
>     let tryFind env x =
>         match Map.tryFind x env.term, Map.tryFind x env.ty, Map.tryFind x 
> env.constraints with
>         | Some (TyModule a), Some (TyModule b), Some (M c) -> ValueSome {term=a;
> ty=b; constraints=c}
>         | _ -> ValueNone
>     match tryFind top_env b with
>     | ValueNone -> Result.Error(r, UnboundModule)
>     | ValueSome env ->
>         hover_types |> Option.iter (fun hover_types -> 
> hover_types.AddHover(r,(TyModule env.term,"")))
>         let rec loop env = function
>             | (r,x) :: x' ->
>                 match tryFind env x with
>                 | ValueSome env ->
>                     hover_types |> Option.iter (fun hover_types -> 
> hover_types.AddHover(r,(TyModule env.term,"")))
>                     loop env x'
>                 | _ -> Result.Error(r, ModuleIndexFailedInOpen)
>             | [[]] -> Result.Ok env
>         loop env l |> Result.bind (fun env ->
>             let h = ResizeArray()
>             local_env_ty |> Map.iter (fun k _ -> if env.ty.ContainsKey k then 
> h.Add k)
>             if h.Count > 0 then Result.Error(r, 
> ModuleIndexWouldShadowLocalVars(h.ToArray()))
>             else Result.Ok env
>             )
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### validate_bound_vars
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let validate_bound_vars (top_env : InferEnv) constraints term ty x =
>     let errors = ResizeArray()
>     let check_term term (a,b) = if Set.contains b term = false && 
> Map.containsKey b top_env.term = false then errors.Add(a,UnboundVariable b)
>     let check_ty ty (a,b) = if Set.contains b ty = false && Map.containsKey b 
> top_env.ty = false then errors.Add(a,UnboundVariable b)
>     let check_cons constraints (a,b) =
>         match Map.tryFind b constraints |> Option.orElseWith (fun () -> 
> Map.tryFind b top_env.constraints) with
>         | Some (C _) -> ()
>         | Some (M _) -> errors.Add(a,ExpectedConstraintInsteadOfModule)
>         | None -> errors.Add(a,UnboundVariable b)
>     let rec cterm constraints (term, ty) x =
>         match x with
>         | RawSymbol _ | RawDefaultLit _ | RawLit _ | RawB _ -> ()
>         | RawV(a,b,_) -> check_term term (a,b)
>         | RawType(_,x) -> ctype constraints term ty x
>         | RawMatch(_,body,l) -> cterm constraints (term, ty) body; List.iter 
> (fun (a,b) -> cterm constraints (cpattern constraints term ty a) b) l
>         | RawFun(_,l) -> List.iter (fun (a,b) -> cterm constraints (cpattern 
> constraints term ty a) b) l
>         | RawForall(_,((_,(a,_)),l),b) -> List.iter (check_cons constraints) l; 
> cterm constraints (term, Set.add a ty) b
>         | RawFilledForall _ -> failwith "Compiler error: Should not appear 
> during variable validation."
>         | RawRecBlock(_,l,on_succ) ->
>             let term = List.fold (fun s ((_,x),_) -> Set.add x s) term l
>             List.iter (fun (_,x) -> cterm constraints (term, ty) x) l
>             cterm constraints (term, ty) on_succ
>         | RawRecordWith(_,a,b,c) ->
>             List.iter (cterm constraints (term, ty)) a
>             List.iter (function
>                 | RawRecordWithSymbol(_,e) | RawRecordWithSymbolModify(_,e) -> 
> cterm constraints (term, ty) e
>                 | RawRecordWithInjectVar(v,e) | 
> RawRecordWithInjectVarModify(v,e) -> check_term term v; cterm constraints (term,
> ty) e
>                 ) b
>             List.iter (function RawRecordWithoutSymbol _ -> () | 
> RawRecordWithoutInjectVar (a,b) -> check_term term (a,b)) c
>         | RawOp(_,_,l) -> List.iter (cterm constraints (term, ty)) l
>         | RawReal(_,x) | RawJoinPoint(_,_,x,_) -> cterm constraints (term, ty) x
>         | RawExists(_,(_,a),b) -> Option.iter (List.iter (ctype constraints term
> ty)) a; cterm constraints (term, ty) b
>         | RawAnnot(_,RawMacro(_,a),b) -> cmacro constraints term ty a; ctype 
> constraints term ty b
>         | RawMacro(r,a) -> errors.Add(r,MacroIsMissingAnnotation); cmacro 
> constraints term ty a
>         | RawAnnot(_,RawArray(_,a),b) -> List.iter (cterm constraints (term, 
> ty)) a; ctype constraints term ty b
>         | RawArray(r,a) -> errors.Add(r,ArrayIsMissingAnnotation); List.iter 
> (cterm constraints (term, ty)) a
>         | RawAnnot(_,a,b) -> cterm constraints (term, ty) a; ctype constraints 
> term ty b
>         | RawTypecase(_,a,b) ->
>             ctype constraints term ty a
>             List.iter (fun (a,b) ->
>                 ctype constraints term ty a
>                 cterm constraints (term, ty + metavars a) b
>                 ) b
>         | RawOpen(_,(a,b),l,on_succ) ->
>             match module_openInfer None top_env Map.empty a b l with
>             | Result.Ok x ->
>                 let combine e m = Map.fold (fun s k _ -> Set.add k s) e m
>                 cterm (Map.foldBack Map.add x.constraints constraints) (combine 
> term x.term, combine ty x.ty) on_succ
>             | Result.Error e -> errors.Add(e)
>         | RawHeapMutableSet(_,a,b,c) -> cterm constraints (term, ty) a; 
> List.iter (cterm constraints (term, ty)) b; cterm constraints (term, ty) c
>         | RawSeq(_,a,b) | RawPair(_,a,b) | RawIfThen(_,a,b) | RawApply(_,a,b) ->
> cterm constraints (term, ty) a; cterm constraints (term, ty) b
>         | RawIfThenElse(_,a,b,c) -> cterm constraints (term, ty) a; cterm 
> constraints (term, ty) b; cterm constraints (term, ty) c
>         | RawMissingBody r -> errors.Add(r,MissingBody)
>     and cmacro constraints term ty a =
>         List.iter (function
>             | RawMacroText _ -> ()
>             | RawMacroTerm(r,a) -> cterm constraints (term, ty) a
>             | RawMacroType(r,a) | RawMacroTypeLit(r,a) -> ctype constraints term
> ty a
>             ) a
>     and ctype constraints term ty x =
>         match x with
>         | RawTFilledNominal(_,_) | RawTPrim _ | RawTWildcard _ | RawTLit _ | 
> RawTB _ | RawTSymbol _ | RawTMetaVar _ -> ()
>         | RawTTypecase(_,a,b) -> 
>             ctype constraints term ty a
>             List.iter (fun (a,b) -> 
>                 ctype constraints term ty a
>                 ctype constraints term (ty + metavars a) b
>                 ) b
>         | RawTVar(a,b) -> check_ty ty (a,b)
>         | RawTArray(_,a) | RawTLayout(_,a,_) -> ctype constraints term ty a
>         | RawTPair(_,a,b) | RawTApply(_,a,b) | RawTFun(_,a,b,_) -> ctype 
> constraints term ty a; ctype constraints term ty b
>         | RawTUnion(_,l,_,this) -> Map.iter (fun _ (_,x) -> ctype constraints 
> term ty x) l; ctype constraints term ty this
>         | RawTRecord(_,l) -> Map.iter (fun _ -> ctype constraints term ty) l
>         | RawTForall(_,((_,(a,_)),l),b) -> List.iter (check_cons constraints) l;
> ctype constraints term (Set.add a ty) b
>         | RawTExists(_,a,b) -> 
>             let ty =
>                 List.fold (fun ty ((_,(a,_)),l) ->
>                     List.iter (check_cons constraints) l
>                     Set.add a ty
>                     ) ty a
>             ctype constraints term ty b
>         | RawTTerm (_,a) -> cterm constraints (term, ty) a
>         | RawTMacro(_,a) -> cmacro constraints term ty a
>     and cpattern constraints term ty x =
>         //let is_first = System.Collections.Generic.HashSet()
>         let rec loop (term, ty) x = 
>             let f = loop (term, ty)
>             match x with
>             | PatDefaultValue _ | PatFilledDefaultValue _ | PatValue _ | 
> PatSymbol _ | PatB _ | PatE _ -> term, ty
>             | PatExists(_,a,b) ->
>                 let ty = List.fold (fun s (_,x) -> Set.add x s) ty a
>                 loop (term, ty) b
>             | PatVar(_,b) ->
>                 //if is_first.Add b then () // TODO: I am doing it like this so 
> I can reuse this code later for variable highlighting.
>                 Set.add b term, ty
>             | PatDyn(_,x) | PatUnbox(_,_,x) -> f x
>             | PatPair(_,a,b) -> loop (f a) b
>             | PatRecordMembers(_,l) ->
>                 List.fold (fun s -> function
>                     | PatRecordMembersSymbol(_,x) -> loop s x
>                     | PatRecordMembersInjectVar((a,b),x) -> check_term term 
> (a,b); loop s x
>                     ) (term, ty) l
>             | PatAnd(_,a,b) | PatOr(_,a,b) -> loop (loop (term, ty) a) b
>             | PatAnnot(_,a,b) -> ctype constraints term ty b; f a
>             | PatWhen(_,a,b) -> let r = f a in cterm constraints r b; r
>             | PatNominal(_,(r,a),_,b) -> check_ty ty (r,a); f b
>             | PatArray(_,a) -> List.fold loop (term, ty) a
>         loop (term, ty) x
> 
>     match x with
>     | Choice1Of2 x -> cterm constraints (term, ty) x
>     | Choice2Of2 x -> ctype constraints term ty x
>     errors
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### assert_bound_vars
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let assert_bound_vars (top_env : InferEnv) constraints term ty x =
>     let errors = validate_bound_vars top_env constraints term ty x
>     if 0 < errors.Count then raise (InferTypeErrorException (Seq.toList errors))
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### subst
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec subst (m : (Var * T) list) x =
>     let f = subst m
>     if List.isEmpty m then x 
>     else 
>         match x with
>         | TyComment(_,x)
>         | TyMetavar(_,{contents=Some x}) 
>         | TyVar (_,{contents=Some x}) -> f x // Don't do path shortening here.
>         | TyMetavar _ | TyNominal _ | TyB | TyLit _ | TyPrim _ | TySymbol _ -> x
>         | TyPair(a,b) -> TyPair(f a, f b)
>         | TyRecord a -> TyRecord(Map.map (fun _ -> f) a)
>         | TyModule a -> TyModule(Map.map (fun _ -> f) a)
>         | TyUnion(a,b) -> TyUnion(Map.map (fun _ (is_gadt,body) -> is_gadt, f 
> body) a,b)
>         | TyFun(a,b,t) -> TyFun(f a, f b, t)
>         | TyArray a -> TyArray(f a)
>         | TyApply(a,b,c) -> TyApply(f a, f b, c)
>         | TyVar (a,_) -> List.tryPick (fun (v,x) -> if a = v then Some x else 
> None) m |> Option.defaultValue x
>         | TyForall(a,b) -> TyForall(a, f b)
>         | TyExists(a,b) -> TyExists(a, f b)
>         | TyInl(a,b) -> TyInl(a, f b)
>         | TyMacro a -> TyMacro(List.map (function TMVar x -> TMVar(f x) | x -> 
> x) a)
>         | TyLayout(a,b) -> TyLayout(f a,b)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### type_apply_split
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let type_apply_split x =
>     let rec loop s x =
>         match visit_t x with
>         | TyApply(a,b,_) -> loop (b :: s) a
>         | x -> x, s
>     loop [[]] x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### kind_subst
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec kind_subst = function
>     | KindMetavar ({contents'=Some x} & link) -> shorten' x link kind_subst
>     | KindMetavar _ | KindType as x -> x
>     | KindFun(a,b) -> KindFun(kind_subst a,kind_subst b)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### foralls_get
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec foralls_get = function
>     | RawForall(_,a,b) -> let a', b = foralls_get b in a :: a', b
>     | b -> [[]], b
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### foralls_ty_get
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec foralls_ty_get = function
>     | TyForall(a,b) -> let a', b = foralls_ty_get b in a :: a', b
>     | b -> [[]], b
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### kind_force
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec kind_force = function
>     | KindMetavar ({contents'=Some x} & link) -> shorten' x link kind_force
>     | KindMetavar link -> let x = KindType in link.contents' <- Some x; x
>     | KindType as x -> x
>     | KindFun(a,b) -> KindFun(kind_force a,kind_force b)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### p
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let p prec prec' x =
>     if prec < prec' then x else sprintf "(%s)" x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### show_kind
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let show_kind x =
>     let rec f prec x =
>         let p = p prec
>         match x with
>         | KindMetavar {contents'=Some x} -> f prec x
>         | KindMetavar _ -> "?"
>         | KindType -> "*"
>         | KindFun(a,b) -> p 20 (sprintf "%s -> %s" (f 20 a) (f 19 b))
>     f -1 x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### show_constraints
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let show_constraints env x = Set.toList x |> List.map (constraint_name env) |> 
> String.concat "; " |> sprintf "{%s}"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### show_nominal
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let show_nominal (env : TopEnv) i = match Map.tryFind i env.nominals_aux with 
> Some x -> x.name | None -> "?"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### show_layout_type
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let show_layout_type = function Heap -> "heap" | HeapMutable -> "mut" | 
> StackMutable -> "stack_mut"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### show_t
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let show_t (env : TopEnv) x =
>     let show_var (a : Var) =
>         let n = match a.kind with KindType -> a.name | _ -> sprintf "(%s : %s)" 
> a.name (show_kind a.kind)
>         if Set.isEmpty a.constraints then n
>         else sprintf "%s %s" n (show_constraints env a.constraints)
>     let rec f prec x =
>         let p = p prec
>         match x with
>         | TyVar (_, {contents=Some x}) | TyComment(_,x) | 
> TyMetavar(_,{contents=Some x}) -> f prec x
>         | TyMetavar _ -> "_"
>         | TyVar (a, _) -> a.name
>         | TyNominal i ->
>             match Map.tryFind i env.nominals_aux with
>             | Some x when prec < 0 -> sprintf "(%s : %s)" x.name (show_kind 
> x.kind)
>             | Some x -> x.name
>             | _ -> "?"
>         | TyB -> "()"
>         | TyLit x -> show_lit x
>         | TyPrim x -> show_primt x
>         | TySymbol x -> sprintf ".%s" x
>         | TyExists(a,b) -> 
>             let a = List.map show_var a |> String.concat " "
>             p 0 (sprintf "exists %s. %s" a (f -1 b))
>         | TyForall _ ->
>             let a, b =
>                 let rec loop = function
>                     | TyForall(a,b) -> let a',b = loop b in (a :: a'), b
>                     | b -> [[]], b
>                 loop x
>             let a = List.map show_var a |> String.concat " "
>             p 0 (sprintf "forall %s. %s" a (f -1 b))
>         | TyInl _ ->
>             let a, b =
>                 let rec loop = function
>                     | TyInl(a,b) -> let a',b = loop b in (a :: a'), b
>                     | b -> [[]], b
>                 loop x
>             let a = List.map show_var a |> String.concat " "
>             p 0 (sprintf "%s => %s" a (f -1 b))
>         | TyArray a -> p 30 (sprintf "array_base %s" (f 30 a))
>         | TyApply(a,b,_) -> p 30 (sprintf "%s %s" (f 29 a) (f 30 b))
>         | TyPair(a,b) -> p 25 (sprintf "%s * %s" (f 25 a) (f 24 b))
>         | TyFun(a,b,FT_Vanilla) -> p 20 (sprintf "%s -> %s" (f 20 a) (f 19 b))
>         | TyFun(a,b,FT_Pointer) -> p 20 (sprintf "fptr (%s -> %s)" (f 20 a) (f 
> 19 b))
>         | TyFun(a,b,FT_Closure) -> p 20 (sprintf "closure (%s -> %s)" (f 20 a) 
> (f 19 b))
>         | TyModule l ->
>             if prec = -2 then
>                 l |> Map.toList |> List.map (fun (k,v) ->
>                     let a,b = k, f -1 v
>                     match v with
>                     | TyComment(com,_) -> sprintf "%s : %s\n---\n%s\n---\n" a b 
> com
>                     | _ -> sprintf "%s : %s" a b
>                     )
>                 |> String.concat "\n"
>             else "module"
>         | TyRecord l -> sprintf "{%s}" (l |> Map.toList |> List.map (fun 
> ((_,k),v) -> sprintf "%s : %s" k (f -1 v)) |> String.concat "; ")
>         | TyUnion(l,_) -> sprintf "{%s}" (l |> Map.toList |> List.map (fun 
> ((_,k),(_,v)) -> sprintf "%s : %s" k (f -1 v)) |> String.concat "| ")
>         | TyMacro a -> p 30 (List.map (function TMLitVar a | TMVar a -> f -1 a |
> TMText a -> a) a |> String.concat "")
>         | TyLayout(a,b) -> p 30 (sprintf "%s %s" (show_layout_type b) (f 30 a))
> 
>     f -2 x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### show_type_error
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let show_type_error (env : TopEnv) x =
>     let f = show_t env
>     match x with
>     | IncorrectRecursiveNominal -> "The non-recursive nominals should not use 
> their own type in the clause."
>     | IncorrectGADTConstructorType -> "The GADT case in the union has to result 
> in an instance of the union being constructed. Any type other than the self 
> being in the range of the union is not allowed."
>     | ExistsShouldntHaveMetavars a -> sprintf "The variables of the exists body 
> shouldn't have metavariables left over in them.\nGot: [[%s]]"  (List.map f a |> 
> String.concat ", ")
>     | ExpectedExistentialInPattern a -> sprintf "The variable being destructured
> in the pattern match need to be explicitly annotated and with an existential 
> type.\nGot: %s" (f a)
>     | UnexpectedNumberOfArgumentsInExistsPattern(got,exp) -> sprintf "The number
> of arguments in the existential pattern doesn't match the one in the type.\nGot:
> %i\nExpected: %i" got exp
>     | UnexpectedNumberOfArgumentsInExistsBody(got,exp) -> sprintf "The number of
> arguments in the existential body doesn't match the one in the type.\nGot: 
> %i\nExpected: %i" got exp
>     | ExpectedExistentialInTerm a -> sprintf "The body of `expects` need to be 
> explicitly annotated and with an existential type.\nGot: %s" (f a)
>     | UnionsCannotBeApplied -> "Unions cannot be applied."
>     | ExpectedNominalInApply a -> sprintf "Expected a nominal.\nGot: %s" (f a)
>     | MalformedNominal -> "Malformed nominal."
>     | ModuleMustBeImmediatelyApplied -> "Module must be immediately applied."
>     | ExpectedSymbol' a -> sprintf "Expected a symbol.\nGot: %s" (f a)
>     | KindError(a,b) -> sprintf "Kind unification failure.\nGot:      
> %s\nExpected: %s" (show_kind a) (show_kind b)
>     | KindErrorInConstraint(a,b) -> sprintf "Kind unification failure when 
> propagating them from constraints.\nGot:      %s\nExpected: %s" (show_kind a) 
> (show_kind b)
>     | TermError(a,b) -> sprintf "Unification failure.\nGot:      %s\nExpected: 
> %s" (f a) (f b)
>     | RecursiveMetavarsNotAllowed(a,b) -> sprintf "Recursive metavariables are 
> not allowed. A metavar cannot be unified with a type that has itself.\nGot:
> %s\nExpected: %s" (f a) (f b)
>     | RecursiveTypevarsNotAllowed(a,b) -> sprintf "Recursive type variables are 
> not allowed. A type variable cannot be unified with a type that has 
> itself.\nGot:      %s\nExpected: %s" (f a) (f b)
>     | ExpectedSymbolAsRecordKey a -> sprintf "Expected symbol as a record 
> key.\nGot: %s" (f a)
>     | ExpectedSymbolAsModuleKey a -> sprintf "Expected symbol as a module 
> key.\nGot: %s" (f a)
>     | UnboundVariable x -> sprintf "Unbound variable: %s." x
>     | UnboundModule -> sprintf "Unbound module."
>     | ModuleIndexFailedInOpen -> sprintf "Module does not have a submodule with 
> that key."
>     | ModuleIndexWouldShadowLocalVars [[|v|]] -> $"The module open would shadow 
> a local variable: {v}."
>     | ModuleIndexWouldShadowLocalVars vars -> let v = String.concat ", " vars in
> $"The module open would shadow the local variables: {v}."
>     | TypeVarScopeError(a,_,_) -> sprintf "Tried to unify the type variable %s 
> with a metavar outside its scope." a
>     | ForallVarConstraintError(n,a,b) -> sprintf "Metavariable's constraints 
> must be a subset of the forall var %s's.\nGot: %s\nExpected: %s" n 
> (show_constraints env a) (show_constraints env b)
>     | MetavarsNotAllowedInRecordWith -> sprintf "In the top-down segment the 
> record keys need to be fully known. Please add an annotation."
>     | LayoutSetMustBeAnnotated -> sprintf "The layout type being set must be 
> annotated."
>     | ExpectedMutableLayout a -> sprintf "Expected a mutable layout type.\nGot: 
> %s" (f a)
>     | ExpectedRecord a -> sprintf "Expected a record.\nGot: %s" (f a)
>     | ExpectedRecordInsideALayout a -> sprintf "Expected a record inside a 
> layout type.\nGot: %s" (f a)
>     | ExpectedRecordAsResultOfIndex a -> sprintf "Expected a record as result of
> index.\nGot: %s" (f a)
>     | RecordIndexFailed a -> sprintf "The record does not have the key: %s" a
>     | ModuleIndexFailed a -> sprintf "The module does not have the key: %s" a
>     | ExpectedModule a -> sprintf "Expected a module.\nGot: %s" (f a)
>     | ExpectedSymbolInRecordWith a -> sprintf "Expected a symbol.\nGot: %s" (f 
> a)
>     | RealFunctionInTopDown -> sprintf "Real segment functions are forbidden in 
> the top-down segment. They can only be used in `real` expressions or .spir 
> modules."
>     | MissingRecordFieldsInPattern(a,b) -> sprintf "The record is missing the 
> following fields: %s.\nGot: %s" (String.concat ", " b) (f a)
>     | CasePatternNotFoundForType(i,n) -> sprintf "%s does not have the %s case."
> (show_nominal env i) n
>     | CasePatternNotFound n -> sprintf "Cannot find a function with the same 
> name as the %s case in the environment." n
>     | CannotInferCasePatternFromTermInEnv a -> sprintf "Cannot infer the higher 
> order type that has this case from the following type.\nGot: %s" (f a)
>     | NominalInPatternUnbox i -> sprintf "Expected an union type, but %s is a 
> nominal." (show_nominal env i)
>     | TypeInEnvIsNotNominal a -> sprintf "Expected a nominal type.\nGot: %s" (f 
> a)
>     | UnionInPatternNominal i -> sprintf "Expected a nominal type, but %s is an 
> union." (show_nominal env i)
>     | ConstraintError(a,b) -> sprintf "Constraint satisfaction error.\nGot: 
> %s\nFails to satisfy: %s" (f b) (constraint_name env a)
>     | ExpectedAnnotation -> sprintf "Recursive functions with foralls must be 
> fully annotated."
>     | ExpectedSinglePattern -> sprintf "Recursive functions with foralls must 
> not have multiple clauses in their patterns."
>     | RecursiveAnnotationHasMetavars a -> sprintf "Recursive functions with 
> foralls must not have metavars.\nGot: %s" (f a)
>     | ValueRestriction a -> sprintf "Metavars that are not part of the enclosing
> function's signature are not allowed. They need to be values.\nGot: %s" (f a)
>     | DuplicateRecInlName -> "Shadowing of functions by the members of the same 
> mutually recursive block is not allowed."
>     | DuplicateKeyInRecUnion -> "Mutually recursive unions should not have 
> overlapping keys."
>     | ExpectedConstraintInsteadOfModule -> sprintf "Expected a constraint 
> instead of module."
>     | InstanceNotFound(prot,ins) -> sprintf "The higher order type instance %s 
> does not have the prototype %s." (show_nominal env ins) 
> env.prototypes.[[prot]].name
>     | ExpectedPrototypeConstraint a -> sprintf "Expected a prototype 
> constraint.\nGot: %s" (constraint_name env a)
>     | PrototypeConstraintCannotPropagateToMetavar(a,b) -> sprintf "Cannot 
> propagate the %s prototype constraint to the applied metavariable as the kinds 
> would not match. If this is not intended to be a type var, provide a type 
> annotation to a concrete type.\nGot: %s" env.prototypes.[[a]].name (f b)
>     | PrototypeConstraintCannotPropagateToVar(a,b) -> sprintf "Cannot propagate 
> the %s prototype constraint to the applied type variable as the kinds would not 
> match.\nGot: %s" env.prototypes.[[a]].name (f b)
>     | ExpectedPrototypeInsteadOfModule -> "Expected a prototype instead of 
> module."
>     | ExpectedHigherOrder a -> sprintf "Expected a higher order type.\nGot: %s" 
> (f a)
>     | InstanceArityError(prot,ins) -> sprintf "The arity of the instance must be
> greater or equal to that of the prototype.\nInstance arity:  %i\nPrototype 
> arity: %i" ins prot
>     | InstanceCoreVarsShouldMatchTheArityDifference(num_vars,expected) -> 
> sprintf "The number of forall variables in the instance needs to be specified so
> it equals the difference between the instance arity and the prototype 
> arity.\nInstance variables specified: %i\nExpected:                     %i" 
> num_vars expected
>     | InstanceKindError(a,b) -> sprintf "The kinds of the instance foralls are 
> incompatible with those of the prototype.\nGot:      %s\nExpected: %s" 
> (show_kind a) (show_kind b)
>     | KindNotAllowedInInstanceForall -> "Kinds should not be explicitly stated 
> in instance foralls."
>     | InstanceVarShouldNotMatchAnyOfPrototypes -> "Instance forall must not have
> the same name as any of the prototype foralls."
>     | MissingBody -> "The function body is missing."
>     | MacroIsMissingAnnotation -> "The macro needs an annotation."
>     | ArrayIsMissingAnnotation -> "The array needs an annotation."
>     | ExistsIsMissingAnnotation -> "The existential type needs an annotation."
>     | ShadowedForall -> "Shadowing of foralls is not allowed in the top-down 
> segment."
>     | ShadowedExists -> "Shadowing of existential type variables is not allowed 
> in the top-down segment."
>     | UnionTypesMustHaveTheSameLayout -> "The two union types must have the same
> layout."
>     | OrphanInstance -> "The instance has to be defined in the same package as 
> either the prototype or the nominal."
>     | ShadowedInstance -> "The instance cannot be defined twice."
>     | UnusedTypeVariable [[x]] -> sprintf "The type variable %s is unused in the
> function's type signature." x
>     | UnusedTypeVariable vars -> sprintf "The type variables %s are unused in 
> the function's type signature." (vars |> String.concat ", ")
>     | CompilerError x -> x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### loc_env
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let loc_env (x : TopEnv) = {term=x.term; ty=x.ty; constraints=x.constraints}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### names_of
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let names_of vars = List.map (fun x -> x.name) vars |> Set
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### lit
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let lit = function
>     | LitUInt8 _ -> TyPrim UInt8T
>     | LitUInt16 _ -> TyPrim UInt16T
>     | LitUInt32 _ -> TyPrim UInt32T
>     | LitUInt64 _ -> TyPrim UInt64T
>     | LitInt8 _ -> TyPrim Int8T
>     | LitInt16 _ -> TyPrim Int16T
>     | LitInt32 _ -> TyPrim Int32T
>     | LitInt64 _ -> TyPrim Int64T
>     | LitFloat32 _ -> TyPrim Float32T
>     | LitFloat64 _ -> TyPrim Float64T
>     | LitBool _ -> TyPrim BoolT
>     | LitString _ -> TyPrim StringT
>     | LitChar _ -> TyPrim CharT
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### autogen_name_in_fun
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let autogen_name_in_fun (i : int) = let x = char i + 'a' in if 'z' < x then 
> sprintf "'%i" i else sprintf "'%c" x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### autogen_name_in_typecase
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let autogen_name_in_typecase (i : int) = let x = char i + 'a' in if 'z' < x then
> sprintf "'t%i" i else sprintf "'t%c" x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### trim_kind
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let trim_kind = function KindFun(_,k) -> k | _ -> failwith "impossible"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### FilledTop
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // Similar to BundleTop except with type annotations and type application filled
> in.
> type FilledTop =
>     | FType of VSCRange * RString * HoVar list * RawTExpr
>     | FNominal of VSCRange * RString * HoVar list * RawTExpr
>     | FNominalRec of (VSCRange * RString * HoVar list * RawTExpr) list
>     | FInl of VSCRange * RString * RawExpr
>     | FRecInl of (VSCRange * RString * RawExpr) list
>     | FPrototype of VSCRange * RString * RString * TypeVar list * RawTExpr
>     | FInstance of VSCRange * RGlobalId * RGlobalId * RawExpr
>     | FOpen of VSCRange * RString * RString list
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### 'a AdditionType
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type 'a AdditionType =
>     | AOpen of 'a
>     | AInclude of 'a
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### InferScope
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type InferScope = int
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### InferResult
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type [[<ReferenceEquality>]] InferResult = {
>     filled_top : FilledTop Hopac.Promise
>     top_env_additions : TopEnv AdditionType
>     offset : int
>     hovers : RString [[]]
>     errors : RString list
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### dispose_gadt_links
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let dispose_gadt_links gadt_links = Seq.iter (fun (x : ref<option<'a>>) -> 
> x.Value <- None) gadt_links
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### assert_foralls_used'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let assert_foralls_used' (errors : (VSCRange * TypeError) ResizeArray) 
> outside_foralls r x =
>     let h = HashSet()
>     let rec f x =
>         match visit_t x with
>         | TyVar (v,_) -> Set.singleton v.name
>         | TyExists(v,a) ->
>             List.fold (fun a v -> 
>                 if Set.contains v.name a = false then h.Add(v.name) |> ignore; a
>                 else Set.remove v.name a
>                 ) (f a) v
>         | TyForall(v,a) ->
>             let a = f a
>             if Set.contains v.name a = false then h.Add(v.name) |> ignore; a
>             else Set.remove v.name a
>         | TyUnion _ | TyModule _ | TyMetavar _ | TyNominal _ | TyB | TyLit _ | 
> TyPrim _ | TySymbol _ -> Set.empty
>         | TyPair(a,b) | TyApply(a,b,_) | TyFun(a,b,_) -> f a + f b
>         | TyRecord a -> Map.fold (fun s _ x -> Set.union s (f x)) Set.empty a
>         | TyComment(_,a) | TyLayout(a,_) | TyInl(_,a) | TyArray a -> f a
>         | TyMacro a -> 
>             List.fold (fun s x ->
>                 match x with
>                 | TMLitVar a | TMVar a -> f a 
>                 | TMText _ -> Set.empty
>                 ) Set.empty a
>     let used_vars = f x
>     Seq.iter (h.Add >> ignore) (outside_foralls - used_vars)
>     if 0 < h.Count then
>         errors.Add(r, UnusedTypeVariable (Seq.toList h))
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### assert_foralls_used
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let assert_foralls_used errors r x = assert_foralls_used' errors Set.empty r x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### validate_nominal
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let validate_nominal (errors : _ ResizeArray) global_id body v =
>     // Stack union types and regular nominals must not be recursive.
>     // Unlike in the previous version of Spiral which simply didn't put the 
> nominal type in the environment
>     // this one has to do it becaus the GADT constructors need access to it.
>     let rec assert_nominal_non_recursive v =
>         let f = assert_nominal_non_recursive
>         match visit_t v with
>         | TyNominal global_id' -> if global_id = global_id' then 
> errors.Add(range_of_texpr_gadt_body body, IncorrectRecursiveNominal)
>         | TyMetavar _ | TyVar _ | TyModule _ | TyUnion _ | TyB | TyLit _ | 
> TyPrim _ | TySymbol _ -> ()
>         | TyPair(a,b) | TyApply(a,b,_) | TyFun(a,b,_) -> f a; f b
>         | TyRecord a -> Map.iter (fun _ -> f) a
>         | TyExists(_,a) | TyComment(_,a) | TyLayout(a,_) | TyForall(_,a) | 
> TyInl(_,a) | TyArray a -> f a
>         | TyMacro a -> List.iter (function TMLitVar a | TMVar a -> f a | TMText 
> _ -> ()) a
>     match v with // Validates the union type.
>     | TyUnion(a,b) ->
>         a |> Map.iter (fun name (is_gadt, v) -> 
>             let body =
>                 match body with
>                 | RawTUnion(_,a,_,_) -> Map.find name a |> snd
>                 | _ -> failwith "Compiler error: Expected an union."
>             let is_stack = b = UStack
> 
>             // Makes sure that the GADT constructor is resulting in its own 
> type.
>             // Also make sure that it's not using an instance of itself in its 
> constructor other than in first position.
>             let rec assert_gadt_has_proper_specialized_constructor = function
>                 | TyNominal global_id' -> if global_id <> global_id' then 
> errors.Add(range_of_texpr_gadt_constructor body, IncorrectGADTConstructorType)
>                 | TyApply(a,b,_) -> 
>                     assert_gadt_has_proper_specialized_constructor a
>                     if is_stack then assert_nominal_non_recursive b
>                 | _ -> errors.Add(range_of_texpr_gadt_constructor body, 
> IncorrectGADTConstructorType)
> 
>             let assert_gadt_is_valid v =
>                 let rec find_gadt_constructor outside_foralls = function
>                     | TyForall(n,t) -> find_gadt_constructor (Set.add n.name 
> outside_foralls) t
>                     | TyFun(a,b,_) -> 
>                         if is_stack then assert_nominal_non_recursive a
>                         assert_gadt_has_proper_specialized_constructor b
>                         assert_foralls_used errors (range_of_texpr_gadt_body 
> body) a
>                         assert_foralls_used' errors outside_foralls 
> (range_of_texpr_gadt_constructor body) b
>                     | b ->
>                         assert_gadt_has_proper_specialized_constructor b
>                         assert_foralls_used' errors outside_foralls 
> (range_of_texpr_gadt_constructor body) b
>                         
>                 find_gadt_constructor Set.empty v
>                     
>             if is_gadt then assert_gadt_is_valid v
>             else
>                 if is_stack then assert_nominal_non_recursive v
>                 assert_foralls_used errors (range_of_texpr body) v // We need to
> assert that the foralls in regular union bodies are checked.
>             )
>     | _ ->
>         assert_nominal_non_recursive v
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### kind_to_rawkind
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec kind_to_rawkind (x : TT) : RawKindExpr =
>     match visit_tt x with
>     | KindMetavar _ | KindType -> RawKindStar
>     | KindFun(a,b) -> RawKindFun(kind_to_rawkind a, kind_to_rawkind b)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### var_to_hovar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let var_to_hovar r (x : Var) : HoVar = r,(x.name,kind_to_rawkind x.kind)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### var_to_typevar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let var_to_typevar r (x : Var) : TypeVar = var_to_hovar r x, [[]] // In the 
> bottom up segment the constrains aren't checked anywhere so we'll put an empty 
> list here.
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### infer
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let infer package_id module_id (top_env' : TopEnv) expr =
>     let at_tag i = {package_id=package_id; module_id=module_id; tag=i}
>     let mutable top_env = top_env' // Is mutated only in two places at the top 
> level. During actual inference can otherwise be thought of as immutable.
>     let errors = ResizeArray()
>     let generalized_statements = Dictionary(HashIdentity.Reference)
>     let type_apply_args = Dictionary(HashIdentity.Reference)
>     let module_type_apply_args = Dictionary(HashIdentity.Reference)
>     let annotations = Dictionary<obj,_>(HashIdentity.Reference)
>     let exists_vars = Dictionary<obj,_>(HashIdentity.Reference)
>     let gadt_typecases = Dictionary<obj,_>(HashIdentity.Reference)
>     let mutable autogened_forallvar_count_in_typecase = 0
>     let mutable autogened_forallvar_count_in_funs = 0
>     let hover_types = HoverTypes()
> 
>     /// Fills in the type applies and annotations, and generalizes statements. 
> Also strips annotations from terms and patterns.
>     /// Dealing with recursive statement type applies requires some special 
> consideration.
>     let fill r rec_term expr =
>         assert (0 = errors.Count)
>         let t_to_rawtexpr r vars_to_metavars expr =
>             let rec f x =
>                 match visit_t x with
>                 | TyUnion _ | TyMetavar _  | TyInl _  | TyModule _ as x -> 
> failwithf "Compiler error: These cases should not appear in fill.\nGot: %A" x
>                 | TyForall(a,b) -> RawTForall(r,var_to_typevar r a,f b)
>                 | TyComment(_,x) -> f x
>                 | TyB -> RawTB r
>                 | TyLit x -> RawTLit(r,x)
>                 | TyPrim x -> RawTPrim(r,x)
>                 | TySymbol x -> RawTSymbol(r,x)
>                 | TyPair(a,b) -> RawTPair(r,f a,f b)
>                 | TyRecord l -> RawTRecord(r,Map.map (fun _ -> f) l)
>                 | TyFun(a,b,t) -> RawTFun(r,f a,f b,t)
>                 | TyExists(a,b) -> RawTExists(r,a |> List.map (fun n -> 
> (r,(n.name,RawKindWildcard)),[[]]), f b)
>                 | TyArray a -> RawTArray(r,f a)
>                 | TyNominal i -> RawTFilledNominal(r,i)
>                 | TyApply(a,b,_) -> RawTApply(r,f a,f b)
>                 | TyVar (a,_) -> 
>                     let is_typecase_metavar = List.tryFind (function TyVar(b,_) 
> -> a = b | _ -> failwith "Compiler error: Expected a TyVar.") vars_to_metavars 
> |> Option.isSome
>                     if is_typecase_metavar then RawTMetaVar(r,a.name) else 
> RawTVar(r,a.name)
>                 | TyMacro l -> l |> List.map (function TMText x -> 
> RawMacroText(r,x) | TMVar x -> RawMacroType(r,f x) | TMLitVar x -> 
> RawMacroTypeLit(r,f x)) |> fun l -> RawTMacro(r,l)
>                 | TyLayout(a,b) -> RawTLayout(r,f a,b)
>             f expr
>         let annot r x = t_to_rawtexpr r [[]] (snd annotations.[[x]])
>         let rec fill_typecases rec_term x =
>             match gadt_typecases.TryGetValue(x) with
>             | true, typecase_data ->
>                 Seq.foldBack (fun 
> (typecase_cond,forall_vars,typecase_constructor) typecase_body ->
>                     let r = range_of_expr typecase_body
>                     RawTypecase(r, t_to_rawtexpr r [[]] typecase_cond, 
> [[t_to_rawtexpr r forall_vars typecase_constructor, typecase_body]])
>                     ) typecase_data (term rec_term x)
>             | _ ->
>                 term rec_term x
>         and fill_foralls r rec_term body = 
>             let _,body = foralls_get body
>             let l,_ = foralls_ty_get generalized_statements.[[body]]
>             List.foldBack (fun (x : Var) s -> RawFilledForall(r,x.name,s)) l 
> (term rec_term body)
>         and term rec_term x =
>             let f = term rec_term
>             let clauses l = 
>                 List.map (fun (a, b) -> 
>                     let rec_term,a = pattern rec_term a 
>                     a,fill_typecases rec_term b
>                     ) l
>             match x with
>             | RawFilledForall _ | RawMissingBody _ | RawType _ as x -> failwithf
> "Compiler error: These cases should not appear in fill. It is intended to be 
> called on top level statements only.\nGot: %A" x
>             | RawTypecase _
>             | RawSymbol _ | RawB _ | RawLit _ | RawOp _ -> x
>             | RawReal(_,x) -> x
>             | RawV(r,n,false) -> x
>             | RawV(r,n,true) ->
>                 match type_apply_args.TryGetValue(n) with
>                 | true, type_apply_args ->
>                     match Map.tryFind n rec_term with
>                     | None -> fst type_apply_args
>                     | Some t -> t |> snd type_apply_args
>                     |> List.fold (fun s x -> 
> RawApply(r,s,RawType(r,t_to_rawtexpr r [[]] x))) x
>                 | _ -> x
>             | RawDefaultLit(r,_) -> RawAnnot(r,x,annot r x)
>             | RawForall(r,a,b) -> RawForall(r,a,f b)
>             | RawMatch(r'',(RawForall _ | RawFun _) & body,[[PatVar(r,name), 
> on_succ]]) ->
>                 let _,body = foralls_get body
>                 RawMatch(r'',fill_foralls r rec_term body,[[PatVar(r,name), 
> fill_typecases (Map.remove name rec_term) on_succ]])
>             | RawMatch(r,a,b) -> RawMatch(r,f a,clauses b)
>             | RawFun(r,a) -> RawAnnot(r,RawFun(r,clauses a),annot r x)
>             | RawExists(r,(r',a),b) -> RawExists(r,(r',Some(Option.defaultWith 
> (fun () -> List.map (t_to_rawtexpr r [[]]) exists_vars.[[x]]) a)),f b)
>             | RawRecBlock(r,l,on_succ) ->
>                 let has_foralls = List.exists (function (_,RawForall _) -> true 
> | _ -> false) l
>                 if has_foralls then RawRecBlock(r,List.map (fun (a,b) -> a, f b)
> l,f on_succ)
>                 else
>                     let rec_term = List.fold (fun s ((_,name),b) -> Map.add name
> generalized_statements.[[foralls_get b |> snd]] s) rec_term l
>                     let l = List.map (fun (a,b) -> a, fill_foralls (fst a) 
> rec_term b) l
>                     RawRecBlock(r,l,f on_succ)
>             | RawRecordWith(r,a,b,c) ->
>                 let b = b |> List.map (function
>                     | RawRecordWithSymbol(a,b) -> RawRecordWithSymbol(a,f b)
>                     | RawRecordWithSymbolModify(a,b) -> 
> RawRecordWithSymbolModify(a,f b)
>                     | RawRecordWithInjectVar(a,b) -> RawRecordWithInjectVar(a,f 
> b)
>                     | RawRecordWithInjectVarModify(a,b) -> 
> RawRecordWithInjectVarModify(a,f b)
>                     )
>                 RawRecordWith(r,List.map f a,b,c)
>             | RawJoinPoint(r,q,a,b) -> RawAnnot(r,RawJoinPoint(r,q,f a,b),annot 
> r x)
>             | RawAnnot(r,a,_) -> f a
>             | RawOpen(r,a,b,c) ->
>                 let f = function TyModule s -> s | _ -> failwith "Compiler 
> error: Module open should always succeed in fill."
>                 List.fold (fun s x -> (f s).[[snd x]]) top_env.term.[[snd a]] b 
> |> f
>                 |> Map.fold (fun s k _ -> Map.remove k s) rec_term
>                 |> fun rec_term -> RawOpen(r,a,b,term rec_term c)
>             | RawApply(r,a,b) ->
>                 let q = RawApply(r,f a,f b)
>                 match module_type_apply_args.TryGetValue(x) with
>                 | true, typevars -> List.fold (fun a b -> 
> RawApply(r,a,RawType(r,t_to_rawtexpr r [[]] b))) q typevars
>                 | _ -> q
>             | RawIfThenElse(r,a,b,c) -> RawIfThenElse(r,f a,f b,f c)
>             | RawIfThen(r,a,b) -> RawIfThen(r,f a,f b)
>             | RawPair(r,a,b) -> RawPair(r,f a,f b)
>             | RawSeq(r,a,b) -> RawSeq(r,f a,f b)
>             | RawHeapMutableSet(r,a,b,c) -> RawHeapMutableSet(r,f a,List.map f 
> b,f c)
>             | RawMacro(r,l) ->
>                 let l = l |> List.map (function RawMacroTerm(r,x) -> 
> RawMacroTerm(r,f x) | x -> x )
>                 RawAnnot(r,RawMacro(r,l),annot r x)
>             | RawArray(r,a) -> RawAnnot(r,RawArray(r,List.map f a),annot r x)
>         and pattern rec_term x' =
>             let mutable rec_term = rec_term
>             let rec f = function
>                 | PatFilledDefaultValue _ -> failwith "Compiler error: 
> PatDefaultValueFilled should not appear in fill."
>                 | PatValue _ | PatSymbol _ | PatE _ | PatB _ as x -> x
>                 | PatVar(r,name) as x -> rec_term <- Map.remove name rec_term; x
>                 | PatDyn(r,a) -> PatDyn(r,f a)
>                 | PatUnbox(r,q,a) -> PatUnbox(r,q,f a)
>                 | PatExists(r,q,a) -> PatExists(r,q,f a)
>                 | PatAnnot(_,a,_) -> f a
>                 | PatPair(r,a,b) -> PatPair(r,f a,f b)
>                 | PatRecordMembers(r,a) ->
>                     let a = a |> List.map (function
>                         | PatRecordMembersSymbol(a,b) -> 
> PatRecordMembersSymbol(a,f b)
>                         | PatRecordMembersInjectVar(a,b) -> 
> PatRecordMembersInjectVar(a,f b)
>                         )
>                     PatRecordMembers(r,a)
>                 | PatOr(r,a,b) -> PatOr(r,f a,f b)
>                 | PatAnd(r,a,b) -> PatAnd(r,f a,f b)
>                 | PatDefaultValue(r,a) as x -> PatFilledDefaultValue(r,a,annot r
> x)
>                 | PatWhen(r,a,b) -> PatWhen(r,f a,term rec_term b)
>                 | PatNominal(r,a,b,c) -> PatNominal(r,a,b,f c)
>                 | PatArray(r,a) -> PatArray(r,List.map f a)
>             rec_term, f x'
> 
>         let x = fill_foralls r rec_term expr
>         assert (0 = errors.Count)
>         x
> 
>     let fresh_kind () = KindMetavar {contents'=None}
>     let fresh_var'' x = TyMetavar (x, ref None)
>     let fresh_var' scope kind = fresh_var'' {scope=scope; constraints=Set.empty;
> kind=kind}
>     let fresh_subst_var scope cons kind = fresh_var'' {scope=scope; 
> constraints=cons; kind=kind}
>     let forall_subst_all scope x =
>         let rec loop m x =
>             match visit_t x with
>             | TyForall(a,b) ->
>                 let v = fresh_subst_var scope a.constraints a.kind
>                 let type_apply_args,b = loop ((a, v) :: m) b
>                 v :: type_apply_args, b
>             | x -> [[]], subst m x
>         loop [[]] x
> 
>     let exists_subst_term scope (l : Var list, body) =
>         let vars = l |> List.map (fun a -> fresh_subst_var scope a.constraints 
> a.kind)
>         vars, subst (List.zip l vars) body
> 
>     let assert_exists_hasnt_metavars r vars =
>         if List.exists has_metavars vars then errors.Add(r, 
> ExistsShouldntHaveMetavars vars)
> 
>     let generalize r scope (forall_vars : Var list) (body : T) =
>         let h = HashSet(HashIdentity.Reference)
>         List.iter (h.Add >> ignore) forall_vars
>         let generalized_metavars = ResizeArray()
>         let rec replace_metavars x =
>             let f = replace_metavars
>             match x with
>             | TyVar (_,{contents=Some x})
>             | TyMetavar(_,{contents=Some x}) -> f x
>             | TyMetavar(x, link) when scope = x.scope ->
>                 let v = tyvar {scope=x.scope; constraints=x.constraints; 
> kind=kind_force x.kind; name=autogen_name_in_fun 
> autogened_forallvar_count_in_funs}
>                 autogened_forallvar_count_in_funs <- 
> autogened_forallvar_count_in_funs+1
>                 link.Value <- Some v
>                 replace_metavars v
>             // This scheme with the HashSet is so generalize works for mutually 
> recursive statements.
>             | TyVar (v,_) -> if scope = v.scope && h.Add(v) then 
> generalized_metavars.Add(v)
>             | TyMetavar _ | TyNominal _ | TyB | TyLit _ | TyPrim _ | TySymbol _ 
> -> ()
>             | TyPair(a,b) | TyApply(a,b,_) | TyFun(a,b,_) -> f a; f b
>             | TyUnion(a,_) -> Map.iter (fun _ -> snd >> f) a
>             | TyRecord a -> Map.iter (fun _ -> f) a
>             | TyExists(v,a) -> List.iter (h.Add >> ignore) v; f a
>             | TyForall(v,a) -> (h.Add >> ignore) v; f a
>             | TyComment(_,a) | TyLayout(a,_) | TyArray a -> f a
>             | TyMacro a -> List.iter (function TMLitVar a | TMVar a -> f a | 
> TMText _ -> ()) a
>             | TyModule _ | TyInl _ -> ()
> 
>         let f x s = TyForall(x,s)
>         replace_metavars body
>         let x = Seq.foldBack f generalized_metavars body |> List.foldBack f 
> forall_vars |> term_subst
>         if List.isEmpty forall_vars = false then assert_foralls_used errors r x
>         x
> 
>     let gadt_extract scope (v : T) =
>         let forall_subst_all_gadt x =
>             let rec loop m x = 
>                 match visit_t x with
>                 | TyForall(a,b) ->
>                     let v = tyvar {a with name=autogen_name_in_typecase 
> autogened_forallvar_count_in_typecase; scope=scope}
>                     autogened_forallvar_count_in_typecase <- 
> autogened_forallvar_count_in_typecase+1
>                     let type_apply_args,b = loop ((a, v) :: m) b
>                     v :: type_apply_args, b
>                 | x -> [[]], subst m x
>             loop [[]] x
>         let forall_vars,v = forall_subst_all_gadt v
>         match v with
>         | TyFun(a,b,_) -> forall_vars,a,b
>         | b -> forall_vars,TyB,b
> 
>     let inline unify_kind' er r got expected =
>         let rec loop (a'',b'') =
>             match visit_tt a'', visit_tt b'' with
>             | KindType, KindType -> ()
>             | KindFun(a,a'), KindFun(b,b') -> loop (a,b); loop (a',b')
>             | KindMetavar a, KindMetavar b & b' -> if a <> b then a.contents' <-
> Some b'
>             | KindMetavar link, b | b, KindMetavar link -> link.contents' <- 
> Some b
>             | _ -> raise (InferTypeErrorException [[r, er (got, expected)]])
>         loop (got, expected)
>     let unify_kind r got expected = try unify_kind' KindError r got expected 
> with :? InferTypeErrorException as e -> errors.AddRange e.Data0
>     let unify_gadt (gadt_links : T option ref ResizeArray option) (r : VSCRange)
> (got : T) (expected : T) : unit =
>         let unify_kind got expected = unify_kind' KindError r got expected
>         let er () = raise (InferTypeErrorException [[r, TermError(got, 
> expected)]])
> 
>         let rec constraint_process (con : Constraint Set) b =
>             let unify_kind got expected = unify_kind' KindErrorInConstraint r 
> got expected
>             let body = function
>                 | CUInt, TyPrim (UInt8T | UInt16T | UInt32T | UInt64T)
>                 | CSInt, TyPrim (Int8T | Int16T | Int32T | Int64T)
>                 | CInt, TyPrim (UInt8T | UInt16T | UInt32T | UInt64T | Int8T | 
> Int16T | Int32T | Int64T)
>                 | CFloat, TyPrim (Float32T | Float64T)
>                 | CNumber, TyPrim (UInt8T | UInt16T | UInt32T | UInt64T | Int8T 
> | Int16T | Int32T | Int64T | Float32T | Float64T)
>                 | CPrim, TyPrim _
>                 | CSymbol, TySymbol _
>                 | CRecord, TyRecord _ -> [[]]
>                 | con, TyMetavar(x,_) -> x.constraints <- Set.add con 
> x.constraints; [[]]
>                 | CPrototype prot & con, x ->
>                     match type_apply_split x with
>                     | TyNominal ins, x' ->
>                         match Map.tryFind (prot,ins) 
> top_env.prototypes_instances with
>                         | Some cons ->
>                             try List.fold2 (fun ers con x -> List.append 
> (constraint_process con (visit_t x)) ers) [[]] cons x'
>                             with :? System.ArgumentException -> [[]] // This 
> case can occur due when kind application overflows in a previous expression.
>                         | None -> [[InstanceNotFound(prot,ins)]]
>                     | TyMetavar _ & x, _ -> 
> [[PrototypeConstraintCannotPropagateToMetavar(prot,x)]]
>                     | TyVar _ & x, _ -> 
> [[PrototypeConstraintCannotPropagateToVar(prot,x)]]
>                     | _ -> [[ConstraintError(con,x)]]
>                 | con, x -> [[ConstraintError(con,x)]]
> 
>             match b with
>             | TyVar (_,{contents=Some x}) -> constraint_process con x
>             | TyVar (b,_) -> if con.IsSubsetOf b.constraints = false then 
> [[ForallVarConstraintError(b.name,con,b.constraints)]] else [[]]
>             | b ->
>                 let b_kind = tt top_env b
>                 Set.fold (fun ers con ->
>                     unify_kind b_kind (constraint_kind top_env con)
>                     List.append (body (con,b)) ers
>                     ) [[]] con
> 
>         // Does occurs checking for recursive metavariables.
>         // Does scope checking in forall vars.
>         let validate_mvar_unification i x =
>             let nested_tvars = HashSet(HashIdentity.Reference)
>             let rec f x =
>                 match visit_t x with
>                 | TyModule _ | TyNominal _ | TyB | TyLit _ | TyPrim _ | TySymbol
> _ -> ()
>                 | TyMacro a -> a |> List.iter (function TMText _ -> () | 
> TMLitVar a | TMVar a -> f a)
>                 | TyForall(v,a) | TyInl(v,a) ->
>                     let _ = nested_tvars.Add(v)
>                     f a
>                     let _ = nested_tvars.Remove(v)
>                     ()
>                 | TyExists(v,a) ->
>                     v |> List.iter (nested_tvars.Add >> ignore)
>                     f a
>                     v |> List.iter (nested_tvars.Remove >> ignore)
>                 | TyComment(_,a) | TyArray a -> f a
>                 | TyApply(a,b,_) | TyFun(a,b,_) | TyPair(a,b) -> f a; f b
>                 | TyUnion(l,_) -> Map.iter (fun _ -> snd >> f) l
>                 | TyRecord l -> Map.iter (fun _ -> f) l
>                 | TyVar(b,_) -> if nested_tvars.Contains b = false && i.scope < 
> b.scope then raise (InferTypeErrorException 
> [[r,TypeVarScopeError(b.name,got,expected)]])
>                 | TyMetavar(x,_) -> if i = x then raise (InferTypeErrorException
> [[r,RecursiveMetavarsNotAllowed(got,expected)]]) elif i.scope < x.scope then 
> x.scope <- i.scope
>                 | TyLayout(a,_) -> f a
>             f x
> 
>         // Does occurs checking for recursive type variables.
>         let rec validate_tvar_unification i x =
>             let f = validate_tvar_unification i
>             match visit_t x with
>             | TyMetavar _ | TyModule _ | TyNominal _ | TyB | TyLit _ | TyPrim _ 
> | TySymbol _ -> ()
>             | TyMacro a -> a |> List.iter (function TMText _ -> () | TMLitVar a 
> | TMVar a -> f a)
>             | TyExists(_,a) | TyComment(_,a) | TyForall(_,a) | TyInl(_,a) | 
> TyArray a -> f a
>             | TyApply(a,b,_) | TyFun(a,b,_) | TyPair(a,b) -> f a; f b
>             | TyUnion(l,_) -> Map.iter (fun _ -> snd >> f) l
>             | TyRecord l -> Map.iter (fun _ -> f) l
>             | TyVar(x,_) -> if i = x then raise (InferTypeErrorException 
> [[r,RecursiveTypevarsNotAllowed(got,expected)]])
>             | TyLayout(a,_) -> f a
> 
>         let rec loop (a'',b'') = 
>             match visit_t a'', visit_t b'' with
>             | TyComment(_,a), b | a, TyComment(_,b) -> loop (a,b)
>             | TyMetavar(a,link), TyMetavar(b,_) & b' ->
>                 if a <> b then
>                     unify_kind a.kind b.kind
>                     b.scope <- min a.scope b.scope
>                     b.constraints <- a.constraints + b.constraints
>                     link.Value <- Some b'
>             | TyMetavar(a,link), b | b, TyMetavar(a,link) ->
>                 validate_mvar_unification a b
>                 unify_kind a.kind (tt top_env b)
>                 match constraint_process a.constraints b with
>                 | [[]] -> link.Value <- Some b
>                 | constraint_errors -> raise (InferTypeErrorException (List.map 
> (fun x -> r,x) constraint_errors))
>             | TyVar (a,_), TyVar (b,_) when a = b -> ()
>             | TyVar (a,link), b | b, TyVar (a,link) when gadt_links.IsSome ->
>                 validate_tvar_unification a b
>                 unify_kind a.kind (tt top_env b)
>                 match constraint_process a.constraints b with
>                 | [[]] -> link.Value <- Some b; gadt_links.Value.Add(link)
>                 | constraint_errors -> raise (InferTypeErrorException (List.map 
> (fun x -> r,x) constraint_errors))
>             | TyFun(a,a',ta), TyFun(b,b',tb) when ta = tb -> loop (a,b); loop 
> (a',b')
>             | TyPair(a,a'), TyPair(b,b') -> loop (a,b); loop (a',b')
>             | TyApply(a,a',_), TyApply(b,b',_) -> loop (a',b'); loop (a,b)
>             | TyUnion(l,q), TyUnion(l',q') -> 
>                 if q = q' then
>                     let a,b = Map.toArray l, Map.toArray l'
>                     if a.Length <> b.Length then er ()
>                     else Array.iter2 (fun (ka,a) (kb,b) -> if ka = kb && fst a =
> fst b then loop (snd a,snd b) else er()) a b
>                 else raise (InferTypeErrorException 
> [[r,UnionTypesMustHaveTheSameLayout]])
>             | TyRecord l, TyRecord l' -> 
>                 let a,b = Map.toArray l, Map.toArray l'
>                 if a.Length <> b.Length then er ()
>                 else
>                     let a = a |> Array.sortBy (fun ((_,k),_) -> k)
>                     let b = b |> Array.sortBy (fun ((_,k),_) -> k)
>                     Array.iter2 (fun (ka,a) (kb,b) ->
>                         if (ka |> snd) = (kb |> snd)
>                         then loop (a,b)
>                         else er()
>                     ) a b
>             | TyNominal i, TyNominal i' when i = i' -> ()
>             | TyB, TyB -> ()
>             | TyPrim x, TyPrim x' when x = x' -> ()
>             | TyLit a, TyLit b when a = b -> ()
>             | TySymbol x, TySymbol x' when x = x' -> ()
>             | TyArray a, TyArray b -> loop (a,b)
>             // Note: Unifying these 3 only makes sense if the `expected` is 
> fully inferred already.
>             | TyExists(a,b), TyExists(a',b') when 
>                     List.length a = List.length a'
>                     && List.forall2 (fun (a : Var) (a' : Var) -> a.kind = 
> a'.kind && a.constraints = a'.constraints) a a' -> 
>                 loop (b, subst (List.map2 (fun a a' -> a', tyvar a) a a') b')
>             | TyForall(a,b), TyForall(a',b') 
>             | TyInl(a,b), TyInl(a',b') when a.kind = a'.kind && a.constraints = 
> a'.constraints -> loop (b, subst [[a',tyvar a]] b')
>             | TyMacro a, TyMacro b ->
>                 List.iter2 (fun a b ->
>                     match a,b with
>                     | TMText a, TMText b when System.Object.ReferenceEquals(a,b)
> || a = b -> ()
>                     | TMVar a, TMVar b -> loop(a,b)
>                     | _ -> er ()
>                     ) a b
>             | TyLayout(a,a'), TyLayout(b,b') when a' = b' -> loop (a,b)
>             | _ -> er ()
> 
>         try loop (got, expected)
>         with :? InferTypeErrorException as e -> errors.AddRange e.Data0
> 
>     let unify range got expected = unify_gadt None range got expected
> 
>     let apply_record r s l x =
>         match visit_t x with
>         | TySymbol x ->
>             match l |> Map.tryPick (fun (_, k) v -> if k = x then Some v else 
> None) with
>             | Some x ->
>                 let com = match x with TyComment(com,_) -> com | _ -> ""
>                 unify r s x
>                 hover_types.AddHover (r,(x,com))
>             | None -> errors.Add(r,RecordIndexFailed x)
>         | x -> errors.Add(r,ExpectedSymbolAsRecordKey x)
> 
>     let assert_bound_vars env a =
>         let keys_of m = Map.fold (fun s k _ -> Set.add k s) Set.empty m
>         validate_bound_vars (loc_env top_env) env.constraints (keys_of env.term)
> (keys_of env.ty) (Choice1Of2 a) |> errors.AddRange
> 
>     let fresh_var scope = fresh_var' scope KindType
> 
>     let v_cons env a = Map.tryFind a env |> Option.orElseWith (fun () -> 
> Map.tryFind a top_env.constraints)
>     let v env top_env a = Map.tryFind a env |> Option.orElseWith (fun () -> 
> Map.tryFind a top_env)
>     let v_term env a = v env.term top_env.term a |> Option.map (function 
> TyComment(com,x) -> com, visit_t x | x -> "", visit_t x)
>     let v_ty env a = v env.ty top_env.ty a
> 
>     let typevar_to_var scope cons (((_,(name,kind)),constraints) : TypeVar) : 
> Var =
>         let rec typevar = function
>             | RawKindWildcard -> fresh_kind()
>             | RawKindStar -> KindType
>             | RawKindFun(a,b) -> KindFun(typevar a, typevar b)
>         let kind = typevar kind
>         let cons =
>             constraints |> List.choose (fun (r,x) ->
>                 match v_cons cons x with
>                 | Some (M _) -> errors.Add(r,ExpectedConstraintInsteadOfModule);
> None
>                 | Some (C x) -> unify_kind r kind (constraint_kind top_env x); 
> Some x
>                 | None -> errors.Add(r,UnboundVariable x); None
>                 ) |> Set.ofList
> 
>         {scope=scope; constraints=cons; kind=kind_force kind; name=name}
> 
>     let typevars scope env (l : TypeVar list) =
>         List.mapFold (fun s x ->
>             let v = typevar_to_var scope env.constraints x
>             v, Map.add v.name (tyvar v) s
>             ) env.ty l
> 
>     let rec term scope env s x = term' scope false env s x
>     and term' scope is_in_left_apply (env : InferEnv) s x =
>         let f = term scope env
>         let f' x = let v = fresh_var scope in f v x; visit_t v
>         let f'' x = let v = fresh_var scope in term' scope true env v x; visit_t
> v
>         let inline rawv (r,name,is_tvar_applied) =
>             match v_term env name with
>             | None -> errors.Add(r,UnboundVariable name)
>             | Some (_,TySymbol "<real>") -> errors.Add(r,RealFunctionInTopDown)
>             | Some (com,TyModule _ & m) when is_in_left_apply = false ->
>                 hover_types.AddHover(r,(m,com))
>                 errors.Add(r,ModuleMustBeImmediatelyApplied)
>             | Some (com,a) ->
>                 if is_tvar_applied then
>                     match a with TyForall _ -> annotations.Add(x,(r,s)) | _ -> 
> ()
>                     let f a = let l,v = forall_subst_all scope a in unify r s v;
> l
>                     let l = f a
>                     hover_types.AddHover(r,(s,com))
>                     type_apply_args.Add(name,(l,f))
>                 else
>                     unify r s a
>                     hover_types.AddHover(r,(s,com))
>         let match_clause (q,w) (a,b) =
>             let gadt_links, gadt_typecases', (scope, env) = pattern scope env q 
> a
>             term scope env w b
>             dispose_gadt_links gadt_links
>             gadt_typecases.Add(b,gadt_typecases')
>         match x with
>         | RawB r -> unify r s TyB
>         | RawV(r,a,is_tvar_applied) -> rawv (r,a,is_tvar_applied)
>         | RawDefaultLit(r,_) -> unify r s (fresh_subst_var scope (Set.singleton 
> CNumber) KindType); hover_types.AddHover(r,(s,"")); annotations.Add(x,(r,s))
>         | RawLit(r,a) -> unify r s (lit a)
>         | RawSymbol(r,x) -> unify r s (TySymbol x)
>         | RawIfThenElse(_,cond,tr,fl) -> f (TyPrim BoolT) cond; f s tr; f s fl
>         | RawIfThen(r,cond,tr) -> f (TyPrim BoolT) cond; unify r s TyB; f TyB tr
>         | RawPair(r,a,b) ->
>             let q,w = fresh_var scope, fresh_var scope
>             unify r s (TyPair(q, w))
>             f q a; f w b
>         | RawSeq(_,a,b) -> f TyB a; f s b
>         | RawReal(_,a) -> assert_bound_vars env a
>         | RawOp(_,_,l) -> List.iter (assert_bound_vars env) l
>         | RawJoinPoint(r,None,a,_) -> annotations.Add(x,(r,s)); f s a
>         | RawJoinPoint(r,Some _,a,_) ->
>             unify r s (TyPair(TyPrim Int32T, TySymbol "tuple_of_free_vars"))
>             let s = fresh_var scope
>             annotations.Add(x,(r,s))
>             f s a
>         | RawApply(r,a',b) ->
>             let rec loop = function
>                 | TyNominal _ | TyApply _ as a ->
>                     match type_apply_split a with
>                     | TyNominal i, l ->
>                         let n = top_env.nominals.[[i]]
>                         match n.body with
>                         | TyUnion _ -> errors.Add(r,UnionsCannotBeApplied)
>                         | _ ->
>                             match list_try_zip n.vars l with
>                             | Some l -> loop (subst l n.body)
>                             | None -> errors.Add(r,MalformedNominal)
>                     | _ -> errors.Add(r,ExpectedNominalInApply a)
>                 | TyLayout(a,_) ->
>                     match visit_t a with
>                     | TyRecord l -> apply_record r s l (f' b)
>                     | a -> errors.Add(r,ExpectedRecordInsideALayout a)
>                 | TyRecord l -> apply_record r s l (f' b)
>                 | TyModule l ->
>                     match f' b with
>                     | TySymbol n ->
>                         match Map.tryFind n l with
>                         | Some (TyModule _ as a) ->
>                             if is_in_left_apply then 
>                                 match b with RawSymbol(r,_) -> 
> hover_types.AddHover(r,(a,"")) | _ -> ()
>                                 unify r s a
>                             else errors.Add(r,ModuleMustBeImmediatelyApplied)
>                         | Some a' ->
>                             let typevars,a = forall_subst_all scope a'
>                             if List.isEmpty typevars = false then
>                                 annotations.Add(x,(r,s))
>                                 module_type_apply_args.Add(x,typevars)
>                             unify r s a
>                             match b with 
>                             | RawSymbol(r,_) -> 
>                                 let com = match a' with TyComment(com,_) -> com 
> | _ -> ""
>                                 hover_types.AddHover(r,(a,com))
>                             | _ -> ()
>                         | None -> errors.Add(r,ModuleIndexFailed n)
>                     | b -> errors.Add(r,ExpectedSymbolAsModuleKey b)
>                 | TyFun(domain,range,_) -> unify (range_of_expr a') range s; f 
> domain b
>                 | a -> let v = fresh_var scope in unify (range_of_expr a') a 
> (TyFun(v,s,FT_Vanilla)); f v b
>             loop (f'' a')
>         | RawAnnot(r,a,b) ->  ty_init scope env s b; f s a
>         | RawOpen(_,(r,a),l,on_succ) ->
>             match module_openInfer (Some hover_types) (loc_env top_env) env.ty r
> a l with
>             | Result.Ok x ->
>                 let combine big small = Map.foldBack Map.add small big
>                 term scope {term = combine env.term x.term; ty = combine env.ty 
> x.ty; constraints = combine env.constraints x.constraints} s on_succ
>             | Result.Error e -> errors.Add(e)
>         | RawRecordWith(r,l,withs,withouts) ->
>             let i = errors.Count
>             let withouts,fields =
>                 List.foldBack (fun x (l,s as state) ->
>                     match x with
>                     | RawRecordWithoutSymbol(r,a) -> {|range=r; symbol = a|} :: 
> l, Set.add a s
>                     | RawRecordWithoutInjectVar(r,a) ->
>                         match v_term env a with
>                         | Some (com, TySymbol a & x) -> 
> hover_types.AddHover(r,(x,com)); {|range=r; symbol = a|} :: l, Set.add a s
>                         | Some (_,x) -> errors.Add(r, ExpectedSymbolAsRecordKey 
> x); state
>                         | None -> errors.Add(r, UnboundVariable a); state
>                     ) withouts ([[]],Set.empty)
>             let withs,_ =
>                 List.foldBack (fun x (l,s as state) ->
>                     let with_symbol ((r,a),b) = {|range=r; symbol = a; 
> is_blocked=Set.contains a s; is_modify=false; var=fresh_var scope; body=b|} :: 
> l, Set.add a s
>                     let with_symbol_modify ((r,a),b) = {|range=r; symbol = a; 
> is_blocked=Set.contains a s; is_modify=true; var=TyFun(fresh_var scope,fresh_var
> scope,FT_Vanilla); body=b|} :: l, Set.add a s
>                     let inline with_inject next ((r,a),b) =
>                         match v_term env a with
>                         | Some (com, TySymbol a & x) -> 
> hover_types.AddHover(r,(x,com)); next ((r,a),b)
>                         | Some (_, x) -> errors.Add(r, ExpectedSymbolAsRecordKey
> x); f' b |> ignore; state
>                         | None -> errors.Add(r, UnboundVariable a); f' b |> 
> ignore; state
>                     match x with
>                     | RawRecordWithSymbol(a,b) -> with_symbol (a,b)
>                     | RawRecordWithSymbolModify(a,b) -> with_symbol_modify (a,b)
>                     | RawRecordWithInjectVar(a,b) -> with_inject with_symbol 
> (a,b)
>                     | RawRecordWithInjectVarModify(a,b) -> with_inject 
> with_symbol_modify (a,b)
>                     ) withs ([[]],fields)
> 
>             let eval m =
>                 let m = (m,withs) ||> List.fold (fun m x ->
>                     if x.is_modify then
>                         let i, q =
>                             match m |> Map.tryPick (fun (i, k) v -> if k = 
> x.symbol then Some (i, v) else None) with
>                             | Some q -> q
>                             | None -> errors.Add(x.range,RecordIndexFailed 
> x.symbol); m.Count, fresh_var scope
>                         let w = fresh_var scope
>                         unify x.range (TyFun(q,w,FT_Vanilla)) x.var
>                         f x.var x.body
>                         Map.add (i, x.symbol) w m
>                     else
>                         f x.var x.body
>                         let i =
>                             m
>                             |> Map.tryPick (fun (i, k) v -> if k = x.symbol then
> Some i else None)
>                             |> Option.defaultValue m.Count
>                         Map.add (i, x.symbol) x.var m
>                     )
>                 withouts |> List.fold (fun m x -> m |> Map.filter (fun (_, k) _ 
> -> k <> x.symbol)) m
> 
>             let bind s = withs |> List.iter (fun x ->
>                 if x.is_blocked = false then
>                     if x.is_modify then
>                         s
>                         |> Map.tryPick (fun (i, k') v -> if k' = x.symbol then 
> Some (i, v) else None)
>                         |> Option.iter (fun (_, k) -> unify x.range x.var 
> (TyFun(fresh_var scope,k,FT_Vanilla)))
>                     else
>                         s
>                         |> Map.tryPick (fun (i, k') v -> if k' = x.symbol then 
> Some (i, v) else None)
>                         |> Option.iter (fun (_, k) -> k |> unify x.range x.var)
>                 )
> 
>             let rec tail' m = function
>                 | x :: xs ->
>                     match f' x with
>                     | TySymbol k ->
>                         match m |> Map.tryPick (fun (i, k') v -> if k' = k then 
> Some (i, v) else None) with
>                         | Some (i, m) ->
>                             match visit_t m with
>                             | TyRecord m -> tail' m xs
>                             | m -> errors.Add(range_of_expr x, 
> ExpectedRecordAsResultOfIndex m); eval Map.empty
>                         | _ -> errors.Add(range_of_expr x, RecordIndexFailed k);
> eval Map.empty
>                         |> fun v ->
>                             let i = m |> Map.tryPick (fun (i, k') v -> if k' = k
> then Some (i, v) else None)
>                             match i with
>                             | Some (i, _) -> Map.add (i, k) (TyRecord v) m
>                             | None -> Map.add (m.Count, k) (TyRecord v) m
>                     | TyMetavar _ -> errors.Add(range_of_expr x, 
> MetavarsNotAllowedInRecordWith); eval Map.empty
>                     | a -> errors.Add(range_of_expr x, 
> ExpectedSymbolInRecordWith a); eval Map.empty
>                 | [[]] -> eval m
> 
>             let rec tail (m,s) = function
>                 | x :: xs ->
>                     match f' x with
>                     | TySymbol k ->
>                         match
>                             m |> Map.tryPick (fun (i, k') v -> if k' = k then 
> Some (i, v) else None),
>                             s |> Map.tryPick (fun (i, k') v -> if k' = k then 
> Some (i, v) else None)
>                         with
>                         | Some (i,m), Some (_i',s) ->
>                             match visit_t m, visit_t s with
>                             | TyRecord m, TyRecord s -> i, tail (m,s) xs
>                             | TyRecord m, _ -> i, tail' m xs
>                             | m, _ -> errors.Add(range_of_expr x, 
> ExpectedRecordAsResultOfIndex m); i, eval Map.empty
>                         | Some (i,m), None ->
>                             match visit_t m with
>                             | TyRecord m -> i, tail' m xs
>                             | m -> errors.Add(range_of_expr x, 
> ExpectedRecordAsResultOfIndex m); i, eval Map.empty
>                         | _ -> errors.Add(range_of_expr x, RecordIndexFailed k);
> i, eval Map.empty
>                         |> fun (i,v) -> Map.add (i,k) (TyRecord v) m
>                     | TyMetavar _ -> errors.Add(range_of_expr x, 
> MetavarsNotAllowedInRecordWith); eval Map.empty
>                     | a -> errors.Add(range_of_expr x, 
> ExpectedSymbolInRecordWith a); eval Map.empty
>                 | [[]] -> bind s; eval m
> 
>             match l with
>             | [[]] ->
>                 match visit_t s with TyRecord s -> bind s | _ -> ()
>                 eval Map.empty
>             | m :: l ->
>                 match f' m, visit_t s with
>                 | TyRecord m, TyRecord s -> tail (m,s) l
>                 | TyRecord m, _ -> tail' m l
>                 | TyMetavar _, _ -> errors.Add(range_of_expr x, 
> MetavarsNotAllowedInRecordWith); eval Map.empty
>                 | a,_ -> errors.Add(range_of_expr x, ExpectedRecord a); eval 
> Map.empty
>             |> fun v -> if errors.Count = i then unify r (TyRecord v) s
>         | RawExists(r,(r',l),body) ->
>             match visit_t s with
>             | TyExists(type_vars,type_body) ->
>                 let vars, s = exists_subst_term scope (type_vars,type_body)
>                 l |> Option.iter (fun l ->
>                     let l1,l2 = vars.Length, l.Length
>                     if l1 = l2 then List.iter2 (ty_init scope env) vars l
>                     else errors.Add(r', 
> UnexpectedNumberOfArgumentsInExistsBody(l1,l2))
>                     )
>                 term scope env s body
>                 assert_exists_hasnt_metavars (range_of_expr x) vars
>                 exists_vars.Add(x,vars)
>             | s -> errors.Add(r, ExpectedExistentialInTerm s); f (fresh_var 
> scope) body
>         | RawFun(r,l) ->
>             annotations.Add(x,(r,s))
>             let q,w = fresh_var scope, fresh_var scope
>             unify r s (TyFun(q,w,FT_Vanilla))
>             List.iter (match_clause (q,w)) l
>         | RawForall _ -> failwith "Compiler error: Should be handled in let 
> statements."
>         | RawMatch(_,(RawForall _ | RawFun _) & body,[[PatVar(r,name), 
> on_succ]]) -> term scope (inl scope env ((r, name), body)) s on_succ
>         | RawRecBlock(_,l',on_succ) -> term scope (rec_block scope env l') s 
> on_succ
>         | RawMatch(_,body,l) ->
>             let body_var = fresh_var scope
>             f body_var body
>             List.iter (match_clause (body_var,s)) l
>         | RawMissingBody r -> errors.Add(r,MissingBody)
>         | RawMacro(r,a) ->
>             annotations.Add(x,(r,s))
>             List.iter (function
>                 | RawMacroText _ -> ()
>                 | RawMacroTerm(_,a) -> term scope env (fresh_var scope) a
>                 | RawMacroType(_,a) | RawMacroTypeLit(_,a) -> ty_init scope env 
> (fresh_var scope) a
>                 ) a
>         | RawHeapMutableSet(r,a,b,c) ->
>             unify r s TyB
>             try let v = fresh_var scope
>                 let i = errors.Count
>                 f v a
>                 match visit_t v with
>                 | TyMetavar _ -> raise (InferTypeErrorException [[r, 
> LayoutSetMustBeAnnotated]])
>                 | TyLayout(v,lay) ->
>                     match lay with
>                     | HeapMutable | StackMutable ->
>                         if i <> errors.Count then raise (InferTypeErrorException
> [[]])
>                         let b = List.map (fun x -> range_of_expr x, f' x) b
>                         List.fold (fun (r,a') (r',b') ->
>                             match visit_t a' with
>                             | TyRecord a ->
>                                 match b' with
>                                 | TySymbol b ->
>                                     match a |> Map.tryPick (fun (_, k) v -> if k
> = b then Some v else None) with
>                                     | Some x -> r', x
>                                     | _ -> raise (InferTypeErrorException [[r, 
> RecordIndexFailed b]])
>                                 | b -> raise (InferTypeErrorException [[r', 
> ExpectedSymbol' b]])
>                             | a -> raise (InferTypeErrorException [[r, 
> ExpectedRecord a]])
>                             ) (range_of_expr a, v) b |> snd
>                     | Heap -> raise (InferTypeErrorException [[r, 
> ExpectedMutableLayout v]])
>                 | v -> raise (InferTypeErrorException [[r, ExpectedMutableLayout
> v]])
>             with :? InferTypeErrorException as e -> errors.AddRange e.Data0; 
> fresh_var scope
>             |> fun v -> f v c
>         | RawArray(r,a) ->
>             annotations.Add(x,(r,s))
>             let v = fresh_var scope
>             unify r s (TyArray v)
>             List.iter (f v) a
>         | RawFilledForall _ -> failwith "Compiler error: Should not manifest 
> during type inference."
>         | RawType _ -> failwith "Compiler error: RawType should not appear in 
> the top down segment."
>         | RawTypecase _ -> failwith "Compiler error: `typecase` should not 
> appear in the top down segment."
>     and inl scope env ((r, name), body) =
>         let scope = scope + 1
>         let vars,body = foralls_get body
>         vars |> List.iter (fun ((r,(name,_)),_) -> if Map.containsKey name 
> env.ty then errors.Add(r,ShadowedForall))
>         let vars,env_ty = typevars scope env vars
>         let body_var = fresh_var scope
>         term scope {env with ty = env_ty} body_var body
>         let t = generalize r scope vars body_var
>         generalized_statements.Add(body,t)
>         hover_types.AddHover(r,(t,""))
>         {env with term = Map.add name t env.term }
>     and rec_block scope env l' =
>         let rec term_annotations scope env x =
>             let f t = 
>                 let i = errors.Count
>                 let v = fresh_var scope
>                 ty_init scope env v t
>                 if i = errors.Count && has_metavars v then 
> errors.Add(range_of_texpr t, RecursiveAnnotationHasMetavars v)
>                 v
>             match x with
>             | RawFun(_,[[(PatAnnot(_,_,t) | PatDyn(_,PatAnnot(_,_,t))),body]]) 
> -> TyFun(f t, term_annotations scope env body,FT_Vanilla)
>             | RawFun(_,[[pat,body]]) -> errors.Add(range_of_pattern pat, 
> ExpectedAnnotation); TyFun(fresh_var scope, term_annotations scope env 
> body,FT_Vanilla)
>             | RawFun(r,_) -> errors.Add(r, ExpectedSinglePattern); 
> TyFun(fresh_var scope, fresh_var scope, FT_Vanilla)
>             | RawJoinPoint(_,_,RawAnnot(_,_,t),_) | RawAnnot(_,_,t) -> f t
>             | x -> errors.Add(range_of_expr x,ExpectedAnnotation); fresh_var 
> scope
>         let scope = scope + 1
>         let has_foralls = List.exists (function (_,RawForall _) -> true | _ -> 
> false) l'
>         let l,m =
>             if has_foralls then
>                 List.mapFold (fun s ((r,name),body) ->
>                     let vars,body = foralls_get body
>                     vars |> List.iter (fun x -> if Map.containsKey (typevar_name
> x) env.ty then errors.Add(range_of_typevar x,ShadowedForall))
>                     let vars, env_ty = typevars scope env vars
>                     let body_var = term_annotations scope {env with ty = env_ty}
> body
>                     let term env = term scope {env with ty = env_ty} body_var 
> body
>                     let gen env : InferEnv =
>                         let t = generalize r scope vars body_var
>                         generalized_statements.Add(body,t)
>                         hover_types.AddHover(r,(t,""))
>                         {env with term = Map.add name t env.term}
>                     let ty = List.foldBack (fun x s -> TyForall(x,s)) vars 
> body_var |> term_subst
>                     (term, gen), Map.add name ty s
>                     ) env.term l'
>             else
>                 List.mapFold (fun s ((r,name),body) ->
>                     let body_var = fresh_var scope
>                     let term env = term scope env body_var body
>                     let gen env : InferEnv =
>                         let t = generalize r scope [[]] body_var
>                         generalized_statements.Add(body,t)
>                         hover_types.AddHover(r,(t,""))
>                         {env with term = Map.add name t env.term}
>                     (term, gen), Map.add name body_var s
>                     ) env.term l'
>         let _ =
>             let env = {env with term = m}
>             List.iter (fun (term, _) -> term env) l
>         List.fold (fun env (_, gen) -> gen env) env l
>     and ty_init scope env s x = 
>         ty scope env s x
>         assert_foralls_used errors (range_of_texpr x) s
>     and ty scope env s x = ty' scope false env s x
>     and ty' scope is_in_left_apply (env : InferEnv) s x =
>         let f s x = ty scope env s x
>         match x with
>         | RawTTypecase _ -> failwith "Compiler error: Type level typecase should
> not appear in the top down segment."
>         | RawTWildcard r -> hover_types.AddHover(r,(s,""))
>         | RawTArray(r,a) ->
>             let v = fresh_var scope
>             unify r s (TyArray v)
>             f v a
>         | RawTVar(r,x) ->
>             match v_ty env x with
>             | Some (TyModule _ & m) when is_in_left_apply = false -> 
> hover_types.AddHover(r,(m,"")); errors.Add(r,ModuleMustBeImmediatelyApplied)
>             | Some x -> unify r s x; hover_types.AddHover(r,(x,""))
>             | None -> errors.Add(r, UnboundVariable x)
>         | RawTB r -> unify r s TyB
>         | RawTLit(r,x) -> unify r s (TyLit x)
>         | RawTSymbol(r,x) -> unify r s (TySymbol x)
>         | RawTPrim(r,x) -> unify r s (TyPrim x)
>         | RawTPair(r,a,b) ->
>             let q,w = fresh_var scope, fresh_var scope
>             unify r s (TyPair(q,w))
>             f q a; f w b
>         | RawTFun(r,a,b,t) ->
>             let q,w = fresh_var scope, fresh_var scope
>             unify r s (TyFun(q,w,t))
>             f q a; f w b
>         | RawTRecord(r,l) ->
>             let l' = Map.map (fun _ _ -> fresh_var scope) l
>             unify r s (TyRecord l')
>             Map.iter (fun k s -> f s l.[[k]]) l'
>         | RawTUnion(r,l,lay,_) ->
>             let l' = Map.map (fun _ (is_gadt,_) -> is_gadt, fresh_var scope) l
>             unify r s (TyUnion(l',lay))
>             Map.iter (fun k (is_gadt,s) -> let x = snd l.[[k]] in if is_gadt 
> then ty scope {env with ty = Map.empty} s x else f s x) l'
>         | RawTExists(r,a,b) ->
>             let a = List.map (typevar_to_var scope env.constraints) a
>             let body_var = fresh_var scope
>             ty scope {env with ty = List.fold (fun s a -> Map.add a.name (tyvar 
> a) s) env.ty a} body_var b
>             unify r s (TyExists(a, body_var))
>         | RawTForall(r,a,b) ->
>             let a = typevar_to_var scope env.constraints a
>             let body_var = fresh_var scope
>             ty scope {env with ty = Map.add a.name (tyvar a) env.ty} body_var b
>             unify r s (TyForall(a, body_var))
>         | RawTApply(r,a',b) ->
>             let f' b k x = let v = fresh_var' scope k in ty' scope b env v x; 
> visit_t v
>             match f' true (fresh_kind ()) a' with
>             | TyModule l ->
>                 match f' false KindType b with
>                 | TySymbol x ->
>                     match Map.tryFind x l with
>                     | Some (TyModule _ as a) ->
>                         if is_in_left_apply then 
>                             unify r s a
>                             match b with RawTSymbol(r,_) -> 
> hover_types.AddHover(r,(a,"")) | _ -> ()
>                         else errors.Add(r,ModuleMustBeImmediatelyApplied)
>                     | Some a -> 
>                         unify r s a
>                         match b with
>                         | RawTSymbol(r,_) ->
>                             let com = match a with TyComment(com,_) -> com | _ 
> -> ""
>                             hover_types.AddHover(r,(a,com))
>                         | _ -> ()
>                     | None -> errors.Add(r,ModuleIndexFailed x)
>                 | b -> errors.Add(r,ExpectedSymbolAsRecordKey b)
>             | TyInl(a,body) -> let v = fresh_var' scope a.kind in f v b; unify r
> s (subst [[a,v]] body)
>             | a ->
>                 let q,w = fresh_kind(), fresh_kind()
>                 unify_kind (range_of_texpr a') (tt top_env a) (KindFun(q,w))
>                 let x = fresh_var' scope q
>                 f x b
>                 unify r s (TyApply(a,x,w))
>         | RawTTerm(r,a) -> assert_bound_vars env a; unify r s (TySymbol 
> "<term>")
>         | RawTMacro(r,a) ->
>             List.map (function
>                 | RawMacroText(_,a) -> TMText a
>                 | RawMacroTerm _ -> failwith "Compiler error: Term vars should 
> never appear at the type level."
>                 | RawMacroType(r,a) | RawMacroTypeLit(r,a) -> let v = fresh_var 
> scope in f v a; TMVar v
>                 ) a
>             |> TyMacro |> unify r s
>         | RawTLayout(r,a,b) ->
>             let v = fresh_var scope
>             unify r s (TyLayout(v,b))
>             f v a
>         | RawTFilledNominal _ -> failwith "Compiler error: RawTNominal should be
> filled in by the inferencer."
>         | RawTMetaVar _ -> failwith "Compiler error: This particular metavar is 
> only for typecase's clauses. This happens during the bottom-up segment."
>     and pattern (scope : InferScope) (env : InferEnv) s a : T option ref 
> ResizeArray * (T * T list * T) ResizeArray * (InferScope * InferEnv) = 
>         let gadt_links = ResizeArray()
>         let gadt_typecases = ResizeArray()
>         let term_vars = Dictionary(HashIdentity.Structural)
>         let ty_vars = Dictionary(HashIdentity.Structural)
>         let mutable scope = scope
>         let update_env () =
>             scope,
>             {env with
>                 ty = (env.ty,ty_vars) ||> Seq.fold (fun s x -> Map.add x.Key 
> x.Value s)
>                 term = (env.term,term_vars) ||> Seq.fold (fun s x -> Map.add 
> x.Key x.Value s)
>                 }
>         let ho_make (i : GlobalId) (l : Var list) =
>             let h = TyNominal i
>             let l' = List.map (fun (x : Var) -> x, fresh_subst_var scope 
> x.constraints x.kind) l
>             List.fold (fun s (_,x) -> match tt top_env s with KindFun(_,k) -> 
> TyApply(s,x,k) | _ -> failwith "impossible") h l', l'
>         let rec ho_index x =
>             match visit_t x with
>             | TyApply(a,_,_) -> ho_index a 
>             | TyNominal i -> ValueSome i
>             | _ -> ValueNone
>         let rec ho_fun x = 
>             match visit_t x with
>             | TyFun(_,a,_) | TyForall(_,a) -> ho_fun a
>             | a -> ho_index a
>         let rec loop s x : unit =
>             let f = loop
>             match x with
>             | PatFilledDefaultValue _ -> failwith "Compiler error: 
> PatDefaultValueFilled should not appear during inference."
>             | PatB r -> unify r s TyB
>             | PatE r -> hover_types.AddHover(r,(s,""))
>             | PatVar(r,a) ->
>                 match term_vars.TryGetValue(a) with
>                 | true, v -> unify r s v
>                 | _ -> term_vars.Add(a,s)
>                 hover_types.AddHover(r,(s,""))
>             | PatDyn(_,a) -> f s a
>             | PatAnnot(_,a,b) -> ty_init scope env s b; f s a
>             | PatWhen(_,a,b) -> 
>                 f s a
>                 let scope,env = update_env()
>                 term scope env (TyPrim BoolT) b
>             | PatPair(r,a,b) ->
>                 let q,w = fresh_var scope, fresh_var scope
>                 unify r s (TyPair(q,w))
>                 loop q a; loop w b
>             | PatSymbol(r,a) -> unify r s (TySymbol a)
>             | PatOr(_,a,b) | PatAnd(_,a,b) -> loop s a; loop s b
>             | PatValue(r,a) -> unify r s (lit a)
>             | PatDefaultValue(r,_) -> 
>                 annotations.Add(x,(r,s))
>                 unify r s (fresh_subst_var scope (Set.singleton CNumber) 
> KindType)
>                 hover_types.AddHover(r,(s,""))
>             | PatRecordMembers(r,l) ->
>                 let l =
>                     List.choose (function
>                         | PatRecordMembersSymbol((r,a),b) -> Some (a,b)
>                         | PatRecordMembersInjectVar((r,a),b) ->
>                             match v_term env a with
>                             | Some (com,TySymbol a & x) -> 
> hover_types.AddHover(r,(x,com)); Some (a,b)
>                             | Some (_,x) -> errors.Add(r, 
> ExpectedSymbolAsRecordKey x); None
>                             | None -> errors.Add(r, UnboundVariable a); None
>                         ) l
>                 match visit_t s with
>                 | TyRecord l' as s ->
>                     let l, missing =
>                         List.mapFoldBack (fun (a,b) missing ->
>                             match l' |> Map.tryPick (fun (i, k) v -> if k = a 
> then Some (i, v) else None) with
>                             | Some (_,x) -> (x,b), missing
>                             | None -> (fresh_var scope,b), a :: missing
>                             ) l [[]]
>                     if List.isEmpty missing = false then errors.Add(r, 
> MissingRecordFieldsInPattern(s, missing))
>                     List.iter (fun (a,b) -> loop a b) l
>                 | s ->
>                     let l =
>                         List.mapi (fun i (a,b) -> 
>                             let v = fresh_var scope
>                             loop v b
>                             (i, a), v
>                             ) l
>                     unify r s (l |> Map |> TyRecord)
>             | PatExists(r,l,p) ->
>                 l |> List.iter (fun (r,name) -> if Map.containsKey name env.ty 
> then errors.Add(r,ShadowedExists))
>                 match visit_t s with
>                 | TyExists(type_var_list,type_body) ->
>                     if l.Length = type_var_list.Length then
>                         scope <- scope + 1
>                         let vars = (l, type_var_list) ||> List.map2 (fun 
> (_,name) l -> 
>                             memoize ty_vars (fun name -> tyvar {l with 
> scope=scope; name=name}) name
>                             )
>                         loop (subst (List.zip type_var_list vars) type_body) p
>                     else
>                     errors.Add(r, 
> UnexpectedNumberOfArgumentsInExistsPattern(l.Length,type_var_list.Length))
>                 | s -> errors.Add(r, ExpectedExistentialInPattern s)
>             | PatUnbox(r,name,a) ->
>                 let assume i =
>                     let n = top_env.nominals.[[i]]
>                     match n.body with
>                     | TyUnion(cases,_) ->
>                         let x,m = ho_make i n.vars
>                         unify r s x
>                         match Map.tryPick (fun (_, name') v -> if name = name' 
> then Some v else None) cases with
>                         | Some (is_gadt, v) -> 
>                             if is_gadt then 
>                                 scope <- scope + 1
>                                 let forall_vars,body,specialized_constructor = 
> gadt_extract scope v
>                                 gadt_typecases.Add(s, forall_vars, 
> specialized_constructor)
>                                 match a with PatE r' when r = r' -> () | _ -> 
> loop body a // This check for PatE is so the hovers for it don't overwrite the 
> main pattern.
>                                 unify_gadt (Some gadt_links) r s 
> specialized_constructor
>                             else
>                                 match a with PatE r' when r = r' -> () | _ -> f 
> (subst m v) a
>                             hover_types.AddHover(r,(s,""))
>                         | None -> 
> errors.Add(r,CasePatternNotFoundForType(i,name)); f (fresh_var scope) a
>                     | _ -> errors.Add(r,NominalInPatternUnbox i); f (fresh_var 
> scope) a
>                 match ho_index s with
>                 | ValueSome i -> assume i
>                 | ValueNone ->
>                     match v_term env name with
>                     | Some (_,x) ->
>                         match ho_fun x with
>                         | ValueSome i -> assume i
>                         | ValueNone -> 
> errors.Add(r,CannotInferCasePatternFromTermInEnv x); f (fresh_var scope) a
>                     | None -> errors.Add(r,CasePatternNotFound name); f 
> (fresh_var scope) a
>             | PatNominal(_,(r,name),l,a) ->
>                 match v_ty env name with
>                 | Some x ->
>                     let rec loop r x = function
>                         | (r,name) :: l ->
>                             match x with
>                             | TyModule x ->
>                                 match Map.tryFind name x with
>                                 | Some x -> loop r x l
>                                 | None -> errors.Add(r,ModuleIndexFailed name); 
> f (fresh_var scope) a
>                             | _ ->
>                                 errors.Add(r,ExpectedModule x); f (fresh_var 
> scope) a
>                         | [[]] ->
>                             match ho_index x with
>                             | ValueSome i ->
>                                 let n = top_env.nominals.[[i]]
>                                 match n.body with
>                                 | TyUnion _ -> 
> errors.Add(r,UnionInPatternNominal i); f (fresh_var scope) a
>                                 | _ -> let x,m = ho_make i n.vars in unify r s 
> x; f (subst m n.body) a
>                             | ValueNone -> errors.Add(r,TypeInEnvIsNotNominal 
> x); f (fresh_var scope) a
>                     loop r x l
>                 | _ -> errors.Add(r,UnboundVariable name); f (fresh_var scope) a
>             | PatArray(r,a) ->
>                 let v = fresh_var scope
>                 unify r s (TyArray v)
>                 List.iter (fun x -> loop v x) a
>         loop s a
>         gadt_links, gadt_typecases, update_env()
> 
>     let nominal_term global_id tt name vars v =
>         let constructor body =
>             let t,_ = List.fold (fun (a,k) b -> let k = trim_kind k in 
> TyApply(a,tyvar b,k),k) (TyNominal global_id,tt) vars
>             let x = match body with TyB -> t | _ -> TyFun(body,t,FT_Vanilla)
>             List.foldBack (fun var ty -> TyForall(var,ty)) vars x
>         match v with
>         | TyUnion(l,_) -> Map.fold (fun s (_,name) (is_gadt,v) -> Map.add name 
> (if is_gadt then v else constructor v) s) Map.empty l
>         | _ -> Map.add name (constructor v) Map.empty
> 
>     let psucc = Hopac.Job.thunk >> Hopac.Hopac.memo
>     let pfail = Hopac.Promise.Now.withFailure (System.Exception "Compiler error:
> Tried to read from a FilledTop that has errors.")
> 
>     let top_env_nominal top_env (global_id : GlobalId) tt name vars v : TopEnv =
>         { top_env with
>             nominals_next_tag = max top_env.nominals_next_tag global_id.tag + 1
>             nominals_aux = Map.add global_id {|kind=tt; name=name|} 
> top_env.nominals_aux
>             nominals = Map.add global_id {|vars=vars; body=v|} top_env.nominals
>             term = Map.foldBack Map.add (nominal_term global_id tt name vars v) 
> top_env.term
>             ty = Map.add name (TyNominal global_id) top_env.ty
>             }
> 
>     let rec typevar = function
>         | RawKindWildcard | RawKindStar -> KindType
>         | RawKindFun(a,b) -> KindFun(typevar a, typevar b)
>     let hovars (x : HoVar list) =
>         List.mapFold (fun s (_,(n,t)) ->
>             let v = {scope=0; kind=typevar t; name=n; constraints=Set.empty}
>             v, Map.add n (tyvar v) s
>             ) Map.empty x
> 
>     let scope = 0
>     let bundle_nominal_rec l' =
>         let l,_ =
>             List.mapFold (fun i (_,name,vars,body) ->
>                 let l,env = hovars vars
>                 let tt = List.foldBack (fun (x : Var) s -> KindFun(x.kind,s)) l 
> KindType
>                 (at_tag i,name,l,env,tt,body), i+1
>                 ) top_env.nominals_next_tag l'
> 
>         top_env <-
>             {top_env with 
>                 nominals_aux = (top_env.nominals_aux, l) ||> List.fold (fun s 
> (i,(_,name),_,_,tt,_) -> Map.add i {|name=name; kind=tt|} s)
>                 ty = (top_env.ty, l) ||> List.fold (fun s (i,(_,name),_,_,_,_) 
> -> Map.add name (TyNominal i) s) 
>                 }
>         
>         List.fold (fun top_env (global_id,(r,name),vars,env_ty,tt,body) ->
>             let v = fresh_var scope
>             ty_init scope {term=Map.empty; ty=env_ty; constraints=Map.empty} v 
> body
>             let v = term_subst v
>             validate_nominal errors global_id body v
>             top_env_nominal top_env global_id tt name vars v
>             ) top_env_emptyInfer l
> 
>     match expr with
>     | BundleType(q,(r,name),vars',expr) ->
>         let vars,env_ty = hovars vars'
>         let v = fresh_var scope
>         ty_init scope {term=Map.empty; ty=env_ty; constraints=Map.empty} v expr
>         let t = List.foldBack (fun x s -> TyInl(x,s)) vars (term_subst v)
>         hover_types.AddHover(r,(t,""))
>         if 0 = errors.Count then psucc (fun () -> FType(q,(r,name),vars',expr)),
> AInclude {top_env_emptyInfer with ty = Map.add name t Map.empty}
>         else pfail, AInclude top_env_emptyInfer
>     | BundleNominal(q,(r,name),vars',expr) ->
>         let x = bundle_nominal_rec [[q,(r,name),vars',expr]]
>         if 0 = errors.Count then psucc (fun () -> 
> FNominal(q,(r,name),vars',expr)), AInclude x
>         else pfail, AInclude top_env_emptyInfer
>     | BundleNominalRec l ->
>         let _ = // Checks that mutually recursive unions do not have duplicates.
>             let h = HashSet()
>             l |> List.iter (fun (_,_,_,x) ->
>                 match x with
>                 | RawTUnion(_,l,_,_) -> l |> Map.iter (fun k v -> if h.Add k = 
> false then errors.Add(range_of_texpr (snd v),DuplicateKeyInRecUnion))
>                 | _ -> ()
>                 )
>         let x = bundle_nominal_rec l
>         if 0 = errors.Count then psucc (fun () -> FNominalRec l), AInclude x
>         else pfail, AInclude top_env_emptyInfer
>     | BundlePrototype(com,r,(r',name),(w,var_init),vars',expr) ->
>         let i = at_tag top_env'.prototypes_next_tag
>         let cons = CPrototype i
>         let scope = 0
>         let vars,env_ty = typevars scope {term=Map.empty; constraints=Map.empty;
> ty=Map.empty} vars'
>         let kind = List.foldBack (fun (k : Var) s -> KindFun(k.kind,s)) vars 
> KindType
>         let v' = {scope=scope; constraints=Set.singleton cons; name=var_init; 
> kind=kind}
>         let env_ty = Map.add var_init (tyvar v') env_ty
>         let vars = v' :: vars
>         let v = fresh_var scope
>         ty_init scope {term=Map.empty; ty=env_ty; constraints=Map.empty} v expr
>         let body = List.foldBack (fun a b -> TyForall(a,b)) vars (term_subst v)
>         if 0 = errors.Count && (assert_foralls_used errors r' body; 0 = 
> errors.Count) then
>             let x =
>                 { top_env_emptyInfer with
>                     prototypes_next_tag = i.tag + 1
>                     prototypes = Map.add i {|name=name; signature=body; 
> kind=v'.kind|} Map.empty
>                     term = Map.add name (if com <> "" then TyComment(com,body) 
> else body) Map.empty
>                     constraints = Map.add name (C cons) Map.empty
>                     }
>             psucc (fun () -> FPrototype(r,(r',name),(w,var_init),vars',expr)), 
> AInclude x
>         else pfail, AInclude top_env_emptyInfer
>     | BundleInl(com,q,(_,name as w),a,true) ->
>         let env = inl scope {term=Map.empty; ty=Map.empty; 
> constraints=Map.empty} (w,a)
>         let term =
>             let x = env.term.[[name]]
>             if com <> "" then TyComment(com, x) else x
>         (if 0 = errors.Count then psucc (fun () -> FInl(q,w,fill q Map.empty a))
> else pfail),
>         AInclude { top_env_emptyInfer with term = Map.add name term Map.empty}
>     | BundleInl(com,q,(_,name as w),a,false) ->
>         assert_bound_vars {term=Map.empty; ty=Map.empty; constraints=Map.empty} 
> a
>         (if 0 = errors.Count then psucc (fun () -> FInl(q,w,a)) else pfail),
>         AInclude { top_env_emptyInfer with term = Map.add name (TySymbol 
> "<real>") Map.empty }
>     | BundleRecInl(l,is_top_down) ->
>         let _ =
>             let h = HashSet()
>             List.iter (fun (_,_,(r,n),_) -> if h.Add n = false then 
> errors.Add(r,DuplicateRecInlName)) l
>         let env_term =
>             if is_top_down then
>                 let l = List.map (fun (com,_,a,b) -> a,b) l
>                 (rec_block scope {term=Map.empty; ty=Map.empty; 
> constraints=Map.empty} l).term
>             else
>                 let env_term = List.fold (fun s (com,_,(_,a),_) -> Map.add a 
> (TySymbol "<real>") s) Map.empty l
>                 l |> List.iter (fun (com,_,_,x) -> assert_bound_vars {term = 
> env_term; ty = Map.empty; constraints=Map.empty} x)
>                 env_term
>         let filled_top =
>             if 0 = errors.Count then
>                 if is_top_down then psucc (fun () -> FRecInl(List.map (fun 
> (_,a,b,c) -> a,b,fill a env_term c) l))
>                 else psucc (fun () -> FRecInl(List.map (fun (_,a,b,c) -> a,b,c) 
> l))
>             else pfail
>         let env_term =
>             List.fold (fun env_term (com,_,(_,n),_) ->
>                 if com <> "" then Map.add n (TyComment(com, Map.find n 
> env_term)) env_term else env_term
>                 ) env_term l
>         filled_top, AInclude (Map.fold (fun s k v -> {s with term = Map.add k v 
> s.term}) top_env_emptyInfer env_term)
>     | BundleInstance(r,prot,ins,vars,body) ->
>         let fail = pfail,AInclude top_env_emptyInfer
>         let assert_no_kind x = x |> List.iter (fun ((r,(_,k)),_) -> match k with
> RawKindWildcard -> () | _ -> errors.Add(r,KindNotAllowedInInstanceForall))
>         let assert_vars_count vars_count vars_expected = if vars_count <> 
> vars_expected then 
> errors.Add(r,InstanceCoreVarsShouldMatchTheArityDifference(vars_count,vars_expec
> ted))
>         let assert_kind_compatibility got expected =
>             try unify_kind' InstanceKindError r got expected
>             with :? InferTypeErrorException as e -> errors.AddRange e.Data0
>         let assert_kind_arity prot_kind_arity ins_kind_arity = if ins_kind_arity
> < prot_kind_arity then 
> errors.Add(r,InstanceArityError(prot_kind_arity,ins_kind_arity))
>         let assert_instance_forall_does_not_shadow_prototype_forall 
> prot_forall_name = List.iter (fun ((r,(a,_)),_) -> if a = prot_forall_name then 
> errors.Add(r,InstanceVarShouldNotMatchAnyOfPrototypes)) vars
>         let assert_orphan_shadow_check (prot_id : GlobalId) (ins_id : GlobalId) 
> =
>             // if Map.containsKey (prot_id, ins_id) top_env.prototypes_instances
>             // then errors.Add(r,ShadowedInstance)
>             ()
>         let assert_orphan_instance_check (prot_id : GlobalId) (ins_id : 
> GlobalId) =
>             // if (prot_id.package_id = package_id || ins_id.package_id = 
> package_id) = false then errors.Add(r,OrphanInstance)
>             ()
>         let body prot_id ins_id =
>             let ins_kind' = top_env.nominals_aux.[[ins_id]].kind
>             let guard next = if 0 = errors.Count then next () else fail
>             let ins_kind = kind_get ins_kind'
>             let prototype = top_env.prototypes.[[prot_id]]
>             hover_types.AddHover(fst prot, (prototype.signature,"")) // TODO: 
> Add the hover for the instance signature.
>             let prototype_init_forall_kind = prototype_init_forall_kind 
> prototype.signature
>             let prot_kind = kind_get prototype_init_forall_kind
>             assert_kind_arity prot_kind.arity ins_kind.arity
>             guard <| fun () ->
>             let vars_expected = ins_kind.arity - prot_kind.arity
>             assert_kind_compatibility (List.skip vars_expected ins_kind.args |> 
> List.reduceBack (fun a b -> KindFun(a,b))) prototype_init_forall_kind
>             guard <| fun () ->
>             assert_vars_count (List.length vars) vars_expected
>             guard <| fun () ->
>             assert_no_kind vars
>             guard <| fun () ->
>             let ins_vars, env_ty =
>                 List.mapFold (fun s (((r,_),_) & x,k) ->
>                     let v = {typevar_to_var scope Map.empty x with kind = k}
>                     let x = tyvar v
>                     hover_types.AddHover(r,(x,""))
>                     x, Map.add v.name x s
>                     ) Map.empty (List.zip vars (List.take vars_expected 
> ins_kind.args))
>             let ins_constraints = ins_vars |> List.map (visit_t >> function 
> TyVar (x,_) -> x.constraints | _ -> failwith "impossible")
>             let ins_core, _ = List.fold (fun (a,k) (b : T) -> let k = trim_kind 
> k in TyApply(a,b,k),k) (TyNominal ins_id,ins_kind') ins_vars
>             let env_ty, prot_body =
>                 match foralls_ty_get prototype.signature with
>                 | (prot_core :: prot_foralls), prot_body ->
>                     List.fold (fun ty x ->
>                         assert_instance_forall_does_not_shadow_prototype_forall 
> x.name
>                         Map.add x.name (tyvar x) ty) env_ty prot_foralls,
>                     let prot_body = subst [[prot_core, ins_core]] prot_body
>                     let _ =
>                         List.foldBack (fun x s -> TyForall(x,s)) prot_foralls 
> prot_body
>                         |> List.foldBack (fun x s -> match visit_t x with 
> TyVar(x,_) -> TyForall(x,s) | _ -> failwith "impossible") ins_vars
>                         |> fun x -> generalized_statements.Add(body,x)
>                     prot_body
>                 | _ -> failwith "impossible"
>             assert_orphan_shadow_check prot_id ins_id
>             assert_orphan_instance_check prot_id ins_id
>             guard <| fun () ->
>             top_env <- {top_env with prototypes_instances = Map.add 
> (prot_id,ins_id) ins_constraints top_env.prototypes_instances}
>             term scope {term=Map.empty; ty=env_ty; constraints=Map.empty} 
> prot_body body
>             (if 0 = errors.Count then psucc (fun () -> FInstance(r,(fst prot, 
> prot_id),(fst ins, ins_id),fill r Map.empty body)) else pfail),
>             AInclude {top_env_emptyInfer with prototypes_instances = Map.add 
> (prot_id,ins_id) ins_constraints Map.empty}
> 
>         let fake _ = fail
>         let check_ins on_succ =
>             match Map.tryFind (snd ins) top_env.ty with
>             | None -> errors.Add(fst ins, UnboundVariable (snd ins)); fail
>             | Some(TyNominal i') -> on_succ i'
>             | Some x -> errors.Add(fst ins, ExpectedHigherOrder x); fail
>         match Map.tryFind (snd prot) top_env.constraints with
>         | None -> errors.Add(fst prot, UnboundVariable (snd prot)); check_ins 
> fake
>         | Some(C (CPrototype i)) -> check_ins (body i)
>         | Some(C x) -> errors.Add(fst prot, ExpectedPrototypeConstraint x); 
> check_ins fake
>         | Some(M _) -> errors.Add(fst prot, ExpectedPrototypeInsteadOfModule); 
> check_ins fake
>     | BundleOpen(q,(r,a),b) ->
>         match module_openInfer (Some hover_types) (loc_env top_env) Map.empty r 
> a b with
>         | Result.Ok x -> psucc (fun () -> FOpen(q,(r,a),b)), AOpen 
> {top_env_emptyInfer with term=x.term; ty=x.ty; constraints=x.constraints}
>         | Result.Error er -> errors.Add(er); pfail, AOpen top_env_emptyInfer
>     |> fun (filled_top, top_env_additions) ->
>         if 0 = errors.Count then
>             annotations |> Seq.iter (fun (KeyValue(_,(r,x))) -> if has_metavars 
> x then errors.Add(r, ValueRestriction x))
>         {
>         filled_top = filled_top
>         top_env_additions = top_env_additions
>         offset = bundle_range expr |> fst |> fun x -> x.line
>         hovers = hover_types.ToArray() |> Array.map (fun ((a:VSCRange),(b,(com :
> string))) -> a, let b = show_t top_env b in if com <> "" then sprintf 
> "%s\n---\n%s" b com else b)
>         errors = errors |> Seq.toList |> List.map (fun (a,b) -> a, 
> show_type_error top_env b)
>         }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### base_types
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let base_types (default_env : DefaultEnv) =
>     let var name = {scope=0; kind=KindType; constraints=Set.empty; name=name} 
>     let inline inl f = let x = var "x" in TyInl(x,f x)
>     let inline inl2 f = let x,y = var "x", var "y" in TyInl(x,TyInl(y,f x y))
>     [[
>     "i8", TyPrim Int8T
>     "i16", TyPrim Int16T
>     "i32", TyPrim Int32T
>     "i64", TyPrim Int64T
>     "u8", TyPrim UInt8T
>     "u16", TyPrim UInt16T
>     "u32", TyPrim UInt32T
>     "u64", TyPrim UInt64T
>     "f32", TyPrim Float32T
>     "f64", TyPrim Float64T
>     "string", TyPrim StringT
>     "bool", TyPrim BoolT
>     "char", TyPrim CharT
>     "array_base", inl (fun x -> TyArray(tyvar x))
>     "heap", inl (fun x -> TyLayout(tyvar x,Layout.Heap))
>     "mut", inl (fun x -> TyLayout(tyvar x,Layout.HeapMutable))
>     "stack_mut", inl (fun x -> TyLayout(tyvar x,Layout.StackMutable))
>     "fptr", inl2 (fun x y -> TyFun(tyvar x,tyvar y,FT_Pointer))
>     "closure", inl2 (fun x y -> TyFun(tyvar x,tyvar y,FT_Closure))
>     "int", TyPrim default_env.default_int
>     "uint", TyPrim default_env.default_uint
>     "float", TyPrim default_env.default_float
>     ]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### top_env_defaultInfer
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let top_env_defaultInfer default_env : TopEnv =
>     // Note: `top_env_default` should have no nominals, prototypes or terms.
>     {top_env_emptyInfer with
>         ty = Map.ofList (base_types default_env)
>         constraints =
>             [[
>             "uint", CUInt
>             "sint", CSInt
>             "int", CInt
>             "float", CFloat
>             "number", CNumber
>             "prim", CPrim
>             "record", CRecord
>             "symbol", CSymbol
>             ]] |> Map.ofList |> Map.map (fun _ -> C)
>         }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## PartEvalPrepass
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Id
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Id = int32
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ScopeEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ScopeEnv = {|free_vars : int [[]]; stack_size : int|}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Scope
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Scope = {term : ScopeEnv; ty : ScopeEnv}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Range
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Range = {path : string; range : VSCRange}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Macro
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Macro =
>     | MText of string
>     | MTerm of E
>     | MType of TPrepass
>     | MLitType of TPrepass
> and TypeMacro =
>     | TMText of string
>     | TMType of TPrepass
>     | TMLitType of TPrepass
> and RecordWith =
>     | RSymbol of (Range * string) * E
>     | RSymbolModify of (Range * string) * E
>     | RVar of (Range * E) * E
>     | RVarModify of (Range * E) * E
> and RecordWithout =
>     | WSymbol of Range * string
>     | WVar of Range * E
> and PatRecordMemberPrepass =
>     | Symbol of (Range * string) * Id
>     | Var of (Range * E) * Id
> and [[<ReferenceEquality>]] E =
>     | EFun of Range * Id * E * TPrepass option
>     | EFun' of Range * Scope * Id * E * TPrepass option
>     | EForall of Range * Id * E
>     | EForall' of Range * Scope * Id * E
>     | ERecursiveFun' of Range * Scope * Id * E ref * TPrepass option
>     | ERecursiveForall' of Range * Scope * Id * E ref
>     | ERecursive of E ref // For global mutually recursive functions
>     | EPatternRef of E ref
>     | EJoinPoint of Range * E * TPrepass option * backend: (Range * string) 
> option * name: string option
>     | EJoinPoint' of Range * Scope * E * TPrepass option * backend: (Range * 
> string) option * name: string option
>     | EB of Range
>     | EV of Id
>     | ELit of Range * Literal
>     | EDefaultLit of Range * string * TPrepass
>     | ESymbol of Range * string
>     | EType of Range * TPrepass
>     | EApply of Range * E * E
>     | EArray of Range * E list * TPrepass
>     | ETypeApply of Range * E * TPrepass
>     | ERecBlock of Range * (Id * E) list * on_succ: E
>     | ERecordWith of Range * (Range * E) list * RecordWith list * RecordWithout 
> list
>     | EModule of Map<string, E>
>     | EOp of Range * Op * E list
>     | EPatternMiss of E
>     | ETypePatternMiss of TPrepass
>     | EAnnot of Range * E * TPrepass
>     | EIfThenElse of Range * E * E * E
>     | EIfThen of Range * E * E
>     | EPair of Range * E * E
>     | ESeq of Range * E * E
>     | EMutableSet of Range * E * (Range * E) list * E
>     | EReal of Range * E
>     | EExists of Range * TPrepass list * E
>     | EMacro of Range * Macro list * TPrepass
>     | EPrototypeApply of Range * prototype_id: GlobalId * TPrepass
>     | EPatternMemo of E
>     | ENominal of Range * E * TPrepass
>     // Regular pattern matching
>     | ELet of Range * Id * E * E
>     | EUnbox of Range * symbol: string * Id * body: E * on_succ: E * on_fail: E
>     | EExistsTest of Range * bind: Id * pat_type: Id [[]] * pat: Id * on_succ: E
> * on_fail: E
>     | EPairTest of Range * bind: Id * pat1: Id * pat2: Id * on_succ: E * 
> on_fail: E
>     | ESymbolTest of Range * string * bind: Id * on_succ: E * on_fail: E
>     | ERecordTest of Range * PatRecordMemberPrepass list * bind: Id * on_succ: E
> * on_fail: E
>     | EAnnotTest of Range * TPrepass * bind: Id * on_succ: E * on_fail: E
>     | EUnitTest of Range * bind: Id * on_succ: E * on_fail: E
>     | ENominalTest of Range * TPrepass * bind: Id * pat: Id * on_succ: E * 
> on_fail: E
>     | ELitTest of Range * Literal * bind: Id * on_succ: E * on_fail: E
>     | EDefaultLitTest of Range * string * TPrepass * bind: Id * on_succ: E * 
> on_fail: E
>     | ETypecase of Range * TPrepass * (TPrepass * E) list
> and [[<ReferenceEquality>]] TPrepass =
>     | TForall' of Range * Scope * Id * TPrepass
>     | TForall of Range * Id * TPrepass
>     | TArrow' of Scope * Id * TPrepass
>     | TArrow of Id * TPrepass
>     | TExists
>     | TJoinPoint' of Range * Scope * TPrepass
>     | TJoinPoint of Range * TPrepass
>     | TPatternRef of TPrepass ref
>     | TB of Range
>     | TLit of Range * Literal
>     | TV of Id
>     | TPair of Range * TPrepass * TPrepass
>     | TFun of TPrepass * TPrepass * FunType
>     | TRecord of Range * Map<int * string,TPrepass>
>     | TModule of Map<string,TPrepass>
>     | TUnion of Range * (Map<int * string,TPrepass * TPrepass option> * 
> UnionLayout)
>     | TSymbol of Range * string
>     | TApply of Range * TPrepass * TPrepass
>     | TPrim of PrimitiveType
>     | TTerm of Range * E
>     | TMacro of Range * TypeMacro list
>     | TNominal of GlobalId
>     | TArray of TPrepass
>     | TLayout of TPrepass * Layout
>     | TMetaV of Id
>     | TTypecase of Range * TPrepass * (TPrepass * TPrepass) list
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Printable
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> module Printable =
>     type PMacro =
>         | MText of string
>         | MTerm of PE
>         | MType of PT
>         | MLitType of PT
>     and PTypeMacro =
>         | TMText of string
>         | TMType of PT
>         | TMLitType of PT
>     and PRecordWith =
>         | RSymbol of string * PE
>         | RSymbolModify of string * PE
>         | RVar of PE * PE
>         | RVarModify of PE * PE
>     and PRecordWithout =
>         | WSymbol of string
>         | WVar of PE
>     and PPatRecordMember =
>         | Symbol of string * Id
>         | Var of PE * Id
>     and [[<ReferenceEquality>]] PE =
>         | EFun' of Scope * Id * PE * PT option
>         | EForall' of Scope * Id * PE
>         | ERecursiveFun' of Scope * Id * PE * PT option
>         | ERecursiveForall' of Scope * Id * PE
>         | ERecursive of PE
>         | EJoinPoint of PE * PT option * string option
>         | EJoinPoint' of Scope * PE * PT option * string option
>         | EArray of PE list * PT
>         | EFun of Id * PE * PT option
>         | EForall of Id * PE
>         | EB
>         | EV of Id
>         | ELit of Literal
>         | EDefaultLit of string * PT
>         | ESymbol of string
>         | EType of PT
>         | EApply of PE * PE
>         | ETypeApply of PE * PT
>         | ERecBlock of (Id * PE) list * on_succ: PE
>         | ERecordWith of PE list * PRecordWith list * PRecordWithout list
>         | EModule of Map<string, PE>
>         | EOp of Op * PE list
>         | EPatternMiss of PE
>         | ETypePatternMiss of PT
>         | EAnnot of PE * PT
>         | EIfThenElse of PE * PE * PE
>         | EIfThen of PE * PE
>         | EPair of PE * PE
>         | ESeq of PE * PE
>         | EHeapMutableSet of PE * PE list * PE
>         | EReal of PE
>         | EExists of PT list * PE
>         | EMacro of PMacro list * PT
>         | EPrototypeApply of prototype_id: GlobalId * PT
>         | EPatternMemo of PE
>         | ENominal of PE * PT
>         // Regular pattern matching
>         | ELet of Id * PE * PE
>         | EUnbox of Id * string * PE * PE * PE
>         | EExistsTest of bind: Id * pat_type: Id [[]] * pat: Id * on_succ: PE * 
> on_fail: PE
>         | EPairTest of bind: Id * pat1: Id * pat2: Id * on_succ: PE * on_fail: 
> PE
>         | ESymbolTest of string * bind: Id * on_succ: PE * on_fail: PE
>         | ERecordTest of PPatRecordMember list * bind: Id * on_succ: PE * 
> on_fail: PE
>         | EAnnotTest of PT * bind: Id * on_succ: PE * on_fail: PE
>         | EUnitTest of bind: Id * on_succ: PE * on_fail: PE
>         | ENominalTest of PT * bind: Id * pat: Id * on_succ: PE * on_fail: PE
>         | ELitTest of Literal * bind: Id * on_succ: PE * on_fail: PE
>         | EDefaultLitTest of string * PT * bind: Id * on_succ: PE * on_fail: PE
>         | ETypecase of PT * (PT * PE) list
>         | EOmmitedRecursive
>     and [[<ReferenceEquality>]] PT =
>         | TTypecase of PT * (PT * PT) list
>         | TForall' of Scope * Id * PT
>         | TForall of Id * PT
>         | TArrow' of Scope * Id * PT
>         | TArrow of Id * PT
>         | TExists
>         | TJoinPoint' of Scope * PT
>         | TJoinPoint of PT
>         | TB
>         | TLit of Literal
>         | TV of Id
>         | TMetaV of Id
>         | TPair of PT * PT
>         | TFun of PT * PT * FunType
>         | TFunPtr of PT * PT
>         | TRecord of Map<int * string,PT>
>         | TModule of Map<string,PT>
>         | TUnion of Map<int * string,PT> * UnionLayout
>         | TSymbol of string
>         | TApply of PT * PT
>         | TPrim of PrimitiveType
>         | TTerm of PE
>         | TMacro of PTypeMacro list
>         | TNominal of GlobalId
>         | TArray of PT
>         | TLayout of PT * Layout
> 
>     let eval x =
>         let recs = System.Collections.Generic.HashSet(HashIdentity.Reference)
>         let rec term = function
>             | E.ETypecase(r,a,b) -> ETypecase(ty a,b |> List.map (fun (a,b) -> 
> ty a, term b))
>             | E.EPatternRef a -> term a.Value
>             | E.EFun'(_,a,b,c,d) -> EFun'(a,b,term c,Option.map ty d)
>             | E.EForall'(_,a,b,c) -> EForall'(a,b,term c)
>             | E.EArray(_,a,b) -> EArray(List.map term a,ty b)
>             | E.ERecursiveFun'(_,a,b,c,d) -> 
>                 let r = c.Value
>                 let r = if recs.Add(r) then term r else EOmmitedRecursive
>                 ERecursiveFun'(a,b,r,Option.map ty d)
>             | E.ERecursiveForall'(_,a,b,c) -> 
>                 let r = c.Value
>                 let r = if recs.Add(r) then term r else EOmmitedRecursive
>                 ERecursiveForall'(a,b,r)
>             | E.ERecursive a -> 
>                 let r = a.Value
>                 if isNull (box r) then EOmmitedRecursive
>                 else
>                     let r = if recs.Add(r) then term r else EOmmitedRecursive
>                     ERecursive r
>             | E.EJoinPoint(_,a,b,d,_) -> EJoinPoint(term a,Option.map ty 
> b,Option.map snd d)
>             | E.EJoinPoint'(_,a,b,c,d,_) -> EJoinPoint'(a,term b,Option.map ty 
> c,Option.map snd d)
>             | E.EFun(_,a,b,c) -> EFun(a,term b,Option.map ty c)
>             | E.EForall(_,a,b) -> EForall(a,term b)
>             | E.EB _ -> EB
>             | E.EV i -> EV i
>             | E.ELit(_,a) -> ELit(a)
>             | E.EDefaultLit(_,a,b) -> EDefaultLit(a,ty b)
>             | E.ESymbol(_,a) -> ESymbol a
>             | E.EType(_,a) -> EType(ty a)
>             | E.EApply(_,a,b) -> EApply(term a,term b)
>             | E.ETypeApply(_,a,b) -> ETypeApply(term a,ty b)
>             | E.ERecBlock(_,a,b) -> ERecBlock(List.map (fun (a,b) -> a, term b) 
> a,term b)
>             | E.ERecordWith(_,a,b,c) ->
>                 let a = a |> List.map (fun (_,a) -> term a)
>                 let b = b |> List.map (function
>                     | RecordWith.RSymbol((_,a),b) -> RSymbol(a,term b)
>                     | RecordWith.RSymbolModify((_,a),b) -> RSymbolModify(a,term 
> b)
>                     | RecordWith.RVar((_,a),b) -> RVar(term a,term b)
>                     | RecordWith.RVarModify((_,a),b) -> RVarModify(term a,term 
> b)
>                     )
>                 let c = c |> List.map (function
>                     | RecordWithout.WSymbol(_,a) -> WSymbol a
>                     | RecordWithout.WVar(_,a) -> WVar(term a)
>                     )
>                 ERecordWith(a,b,c)
>             | E.EModule a -> EModule(Map.map (fun _ -> term) a)
>             | E.EOp(_,a,b) -> EOp(a,List.map term b)
>             | E.EPatternMiss a -> EPatternMiss(term a)
>             | E.ETypePatternMiss a -> ETypePatternMiss(ty a)
>             | E.EAnnot(_,a,b) -> EAnnot(term a,ty b)
>             | E.EIfThenElse(_,a,b,c) -> EIfThenElse(term a,term b,term c)
>             | E.EIfThen(_,a,b) -> EIfThen(term a,term b)
>             | E.EPair(_,a,b) -> EPair(term a,term b)
>             | E.ESeq(_,a,b) -> ESeq(term a,term b)
>             | E.EMutableSet(_,a,b,c) -> EHeapMutableSet(term a,List.map (snd >> 
> term) b,term c)
>             | E.EReal(_, a) -> EReal(term a)
>             | E.EExists(_, a, b) -> EExists(List.map ty a, term b)
>             | E.EMacro(_,a,b) ->
>                 let a = a |> List.map (function
>                     | Macro.MText a -> MText a
>                     | Macro.MTerm a -> MTerm(term a)
>                     | Macro.MType a -> MType(ty a)
>                     | Macro.MLitType a -> MLitType(ty a)
>                     )
>                 EMacro(a,ty b)
>             | E.EPrototypeApply(_,a,b) -> EPrototypeApply(a,ty b)
>             | E.EPatternMemo a -> EPatternMemo(term a)
>             | E.ENominal(_,a,b) -> ENominal(term a,ty b)
>             // Regular pattern matching
>             | E.ELet(_,a,b,c) -> ELet(a,term b,term c)
>             | E.EUnbox(_,q,a,b,c,d) -> EUnbox(a,q,term b,term c,term d)
>             | E.EExistsTest(_,a,l,q,d,e) -> EExistsTest(a,l,q,term d,term e)
>             | E.EPairTest(_,a,b,c,d,e) -> EPairTest(a,b,c,term d,term e)
>             | E.ESymbolTest(_,a,b,c,d) -> ESymbolTest(a,b,term c,term d)
>             | E.ERecordTest(_,a,b,c,d) ->
>                 let a = a |> List.map (function
>                     | PatRecordMemberPrepass.Symbol((_,a),b) -> Symbol(a,b)
>                     | PatRecordMemberPrepass.Var((_,a),b) -> Var(term a,b)
>                     )
>                 ERecordTest(a,b,term c,term d)
>             | E.EAnnotTest(_,a,b,c,d) -> EAnnotTest(ty a,b,term c,term d)
>             | E.EUnitTest(_,a,b,c) -> EUnitTest(a,term b,term c)
>             | E.ENominalTest(_,a,b,c,d,e) -> ENominalTest(ty a,b,c,term d,term 
> e)
>             | E.ELitTest(_,a,b,c,d) -> ELitTest(a,b,term c,term d)
>             | E.EDefaultLitTest(_,a,b,c,d,e) -> EDefaultLitTest(a,ty b,c,term 
> d,term e)
>         and ty = function
>             | TPrepass.TTypecase(_,a,b) -> TTypecase(ty a,List.map (fun (a,b) ->
> ty a, ty b) b)
>             | TPrepass.TPatternRef a -> ty a.Value
>             | TPrepass.TForall'(_,a,b,c) -> TForall'(a,b,ty c)
>             | TPrepass.TForall(_,a,b) -> TForall(a,ty b)
>             | TPrepass.TArrow'(a,b,c) -> TArrow'(a,b,ty c)
>             | TPrepass.TArrow(a,b) -> TArrow(a,ty b)
>             | TPrepass.TExists -> TExists
>             | TPrepass.TJoinPoint'(_,a,b) -> TJoinPoint'(a,ty b)
>             | TPrepass.TJoinPoint(_,a) -> TJoinPoint(ty a)
>             | TPrepass.TB _ -> TB
>             | TPrepass.TLit(_,x) -> TLit x
>             | TPrepass.TV a -> TV a
>             | TPrepass.TMetaV a -> TMetaV a
>             | TPrepass.TPair(_,a,b) -> TPair(ty a,ty b)
>             | TPrepass.TFun(a,b,t) -> TFun(ty a,ty b,t)
>             | TPrepass.TRecord(_,a) -> TRecord(Map.map (fun _ -> ty) a)
>             | TPrepass.TModule a -> TModule(Map.map (fun _ -> ty) a)
>             | TPrepass.TUnion(_,(a,b)) -> TUnion(Map.map (fun _ x -> ty (fst x))
> a,b)
>             | TPrepass.TSymbol(_,a) -> TSymbol a
>             | TPrepass.TApply(_,a,b) -> TApply(ty a, ty b)
>             | TPrepass.TPrim a -> TPrim a
>             | TPrepass.TTerm(_,a) -> TTerm(term a)
>             | TPrepass.TMacro(_,a) -> 
>                 let a = a |> List.map (function
>                     | TypeMacro.TMText a -> TMText a
>                     | TypeMacro.TMType a -> TMType(ty a)
>                     | TypeMacro.TMLitType a -> TMLitType(ty a)
>                     )
>                 TMacro(a)
>             | TPrepass.TNominal a -> TNominal a
>             | TPrepass.TArray a -> TArray(ty a)
>             | TPrepass.TLayout(a,b) -> TLayout(ty a,b)
> 
>         match x with
>         | Choice1Of2(x,ret) -> ret (term x)
>         | Choice2Of2(x,ret) -> ret (ty x)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### PrepassTopEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type PrepassTopEnv = {
>     prototypes_next_tag : int
>     prototypes_instances : Map<GlobalId * GlobalId,E>
>     nominals_next_tag : int
>     nominals : Map<GlobalId,{|body : TPrepass; name : string|}>
>     term : Map<string,E>
>     ty : Map<string,TPrepass>
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### top_env_emptyPrepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let top_env_emptyPrepass = {
>     prototypes_next_tag = 0
>     prototypes_instances = Map.empty
>     nominals_next_tag = 0
>     nominals = Map.empty
>     term = Map.empty
>     ty = Map.empty
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### unionPrepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let unionPrepass small big = {
>     prototypes_next_tag = max small.prototypes_next_tag big.prototypes_next_tag
>     prototypes_instances = Map.foldBack Map.add small.prototypes_instances 
> big.prototypes_instances
>     nominals_next_tag = max small.nominals_next_tag big.nominals_next_tag
>     nominals = Map.foldBack Map.add small.nominals big.nominals
>     term =
>         Map.foldBack (fun k v s ->
>             let v =
>                 match v, s |> Map.tryFind k with
>                 | EModule x, Some (EModule x') -> Map.foldBack Map.add x x' |> 
> EModule
>                 | _ -> v
>             s |> Map.add k v
>         ) small.term big.term
>     ty =
>         Map.foldBack (fun k v s ->
>             let v =
>                 match v, s |> Map.tryFind k with
>                 | TModule x, Some (TModule x') -> Map.foldBack Map.add x x' |> 
> TModule
>                 | _ -> v
>             s |> Map.add k v
>         ) small.ty big.ty
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### in_modulePrepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let in_modulePrepass m (a : PrepassTopEnv) =
>     {a with 
>         ty = Map.add m (TModule a.ty) Map.empty
>         term = Map.add m (EModule a.term) Map.empty
>         }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### PropagatedVarsEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type PropagatedVarsEnv = {|vars : Set<int>; range : (int * int) option|}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### PropagatedVars
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type PropagatedVars = {term : PropagatedVarsEnv; ty : PropagatedVarsEnv}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### propagate
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // Attaches scopes to all the nodes.
> let propagate x =
>     let dict = Dictionary(HashIdentity.Reference)
>     let (+*) a b = 
>         match a,b with
>         | Some(min',max'), Some(min'',max'') -> Some(min min' min'', max max' 
> max'')
>         | Some(a,b), _ | _, Some(a,b) -> Some(a,b)
>         | None, None -> None
>     let (+) (a : PropagatedVars) (b : PropagatedVars) : PropagatedVars = {
>         term = {|vars = Set.union a.term.vars b.term.vars; range = a.term.range 
> +* b.term.range |} 
>         ty = {|vars = Set.union a.ty.vars b.ty.vars; range = a.ty.range +* 
> b.ty.range |} 
>         }
>     let (-*) a i =
>         if 0 <= i then 
>             match a with 
>             | Some(min',max') -> Some(min min' i, max max' i)
>             | None -> Some(i,i)
>         else a // Recursive vars are negative and get inlined so they should be 
> ignored when calculating the range of a scope.
>     let (-) (a : PropagatedVars) i = {a with term = {|vars = Set.remove i 
> a.term.vars; range = a.term.range -* i |} }
>     let (-.) (a : PropagatedVars) i = {a with ty = {|vars = Set.remove i 
> a.ty.vars; range = a.ty.range -* i |} }
>     let empty' term ty = let f x = {|vars = x; range=None|} in {term = f term; 
> ty = f ty}
>     let empty = empty' Set.empty Set.empty
>     let singleton_term i = empty' (Set.singleton i) Set.empty
>     let singleton_ty i = empty' Set.empty (Set.singleton i)
> 
>     let scope_dict = Dictionary<obj,_>(HashIdentity.Reference)
>     let scope x (v : PropagatedVars) = scope_dict.Add(x,v); empty' v.term.vars 
> v.ty.vars
>     let rec term x =
>         match x with
>         | EFun' _ | EForall' _ | ERecursiveFun' _ | ERecursiveForall' _ | 
> ERecursive _ | EJoinPoint' _ | EModule _ | ESymbol _ | ELit _ | EB _ -> empty
>         | EPatternRef a -> term a.Value
>         | EV i -> singleton_term i
>         | EPrototypeApply(_,_,a) | EType(_,a) | ETypePatternMiss a | 
> EDefaultLit(_,_,a) -> ty a
>         | ESeq(_,a,b) | EPair(_,a,b) | EIfThen(_,a,b) | EApply(_,a,b) -> term a 
> + term b
>         | EArray(_,a,b) -> List.fold (fun s x -> s + term x) (ty b) a
>         | ENominal(_,a,b) | EAnnot(_,a,b) | ETypeApply(_,a,b) -> term a + ty b
>         | EForall(_,i,a) -> scope x (term a -. i)
>         | EJoinPoint(_,a,t,_,_) -> scope x (match t with Some t -> term a + ty t
> | None -> term a)
>         | EFun(_,i,a,t) -> scope x (match t with Some t -> term a - i + ty t | 
> None -> term a - i)
>         | ERecBlock(_,l,on_succ) ->
>             let s = List.fold (fun s (_,body) -> s + term body) (term on_succ) l
>             List.fold (fun s (id,_) -> s - id) s l
>         | ERecordWith(_,a,b,c) ->
>             let fold f a b = List.fold f b a
>             List.fold (fun s (_,a) -> s + term a) empty a
>             |> fold (fun s -> function
>                     | RSymbolModify(_,a) | RSymbol(_,a) -> s + term a
>                     | RVar((_,a),b) | RVarModify((_,a),b) -> s + term a + term b
>                     ) b
>             |> fold (fun s -> function
>                 | WSymbol _ -> s
>                 | WVar(_,a) -> s + term a
>                 ) c
>         | EOp(_,_,a) -> List.fold (fun s a -> s + term a) empty a
>         | EMutableSet(_,a,b,c) -> term a + List.fold (fun s (_,a) -> s + term a)
> empty b + term c
>         | EIfThenElse(_,a,b,c) -> term a + term b + term c
>         | EExists(_,a,b) -> List.fold (fun s a -> s + ty a) (term b) a
>         | EPatternMiss a | EReal(_,a) -> term a
>         | EMacro(_,a,b) -> List.fold (fun s -> function MLitType x | MType x -> 
> s + ty x | MTerm x -> s + term x | MText _ -> s) (ty b) a
>         | EPatternMemo a -> memoize dict term a
>         // Regular pattern matching
>         | ELet(_,bind,body,on_succ) -> term on_succ - bind + term body
>         | EUnbox(_,_,bind,body,on_succ,on_fail) -> term on_succ - bind + term 
> body + term on_fail
>         | EExistsTest(_,bind,pat_type,pat,on_succ,on_fail) -> singleton_term 
> bind + (Array.fold (-.) (term on_succ) pat_type - pat) + term on_fail
>         | EPairTest(_,bind,pat1,pat2,on_succ,on_fail) -> singleton_term bind + 
> (term on_succ - pat1 - pat2) + term on_fail
>         | ESymbolTest(_,_,bind,on_succ,on_fail) 
>         | EUnitTest(_,bind,on_succ,on_fail) 
>         | ELitTest(_,_,bind,on_succ,on_fail) -> singleton_term bind + term 
> on_succ + term on_fail
>         | ERecordTest(_,a,bind,on_succ,on_fail) ->
>             let on_succ_and_injects =
>                 let on_succ = List.fold (fun s (Symbol(_,a) | Var(_,a)) -> s - 
> a) (term on_succ) a
>                 List.fold (fun s -> function Var((_,a),_) -> s + term a | Symbol
> _ -> s) on_succ a // Though it is less efficient, I am using two passes here to 
> guard against future changes to pattern compilation breaking this part by 
> accident.
>             singleton_term bind + term on_fail + on_succ_and_injects
>         | EDefaultLitTest(_,_,t,bind,on_succ,on_fail)
>         | EAnnotTest(_,t,bind,on_succ,on_fail) -> singleton_term bind + ty t + 
> term on_succ + term on_fail
>         | ENominalTest(_,t,bind,pat,on_succ,on_fail) -> singleton_term bind + ty
> t + (term on_succ - pat) + term on_fail
>         | ETypecase(_,a,b) -> 
>             List.fold (fun s (a,b) -> 
>                 let a = ty a
>                 let mutable b = term b
>                 match a.ty.range with
>                 | Some(a,a') -> for i=a to a' do b <- b -. i
>                 | None -> ()
>                 s + a + b
>                 ) (ty a) b
>     and ty = function
>         | TExists | TJoinPoint' _ | TForall' _ | TArrow' _ | TSymbol _ | TPrim _
> | TNominal _ | TLit _ | TB _ -> empty
>         | TTypecase(_,a,b) -> 
>             List.fold (fun s (a,b) -> 
>                 let a = ty a
>                 let mutable b = ty b
>                 match a.ty.range with
>                 | Some(a,a') -> for i=a to a' do b <- b -. i
>                 | None -> ()
>                 s + a + b
>                 ) (ty a) b
>         | TPatternRef a -> ty a.Value
>         | TV i -> singleton_ty i
>         | TMetaV i -> {empty with ty = {|empty.ty with range = Some(i,i)|} }
>         | TApply(_,a,b) | TPair(_,a,b) | TFun(a,b,_) -> ty a + ty b
>         | TUnion(_,(a,_)) -> a |> Map.fold (fun s k (a,b) -> s + ty a + 
> (Option.map ty b |> Option.defaultValue empty)) empty
>         | TRecord(_,a) -> Map.fold (fun s k v -> s + ty v) empty a
>         | TModule a -> Map.fold (fun s k v -> s + ty v) empty a
>         | TTerm(_,a) -> term a
>         | TMacro(_,a) -> a |> List.fold (fun s -> function TMText _ -> s | 
> TMLitType x | TMType x -> s + ty x) empty
>         | TForall(_,i,a) | TArrow(i,a) as x -> scope x (ty a -. i)
>         | TJoinPoint(_,a) as x -> scope x (ty a)
>         | TArray(a) | TLayout(a,_) -> ty a
>     
>     let _ = match x with Choice1Of2 x -> term x | Choice2Of2 x -> ty x
>     scope_dict
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ResolveEnvValue
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ResolveEnvValue = {|term : Set<Id>; ty : Set<Id> |}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ResolveEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ResolveEnv = Map<int, ResolveEnvValue>
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### resolve_recursive_free_vars
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let resolve_recursive_free_vars env =
>     Map.fold (fun (env : ResolveEnv) k v ->
>         let has_visited = HashSet()
>         let rec f (s : ResolveEnvValue) k v = 
>             if has_visited.Add(k) then 
>                 let s = Set.fold (fun s k -> if k < 0 then f s k env.[[k]] else 
> {|s with term = Set.add k s.term|}) s v.term
>                 Set.fold (fun s k -> {|s with ty = Set.add k s.ty|}) s v.ty
>             else s
>         Map.add k (f {|term=Set.empty; ty=Set.empty|} k v) env
>         ) env env
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### resolve
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let resolve (scope : Dictionary<obj,PropagatedVars>) x =
>     let dict = Dictionary(HashIdentity.Reference)
>     let subst' (env : ResolveEnv) (x : PropagatedVars) : PropagatedVars = 
>         let f (s : ResolveEnvValue) x = 
>             if x < 0 then 
>                 match Map.tryFind x env with 
>                 | Some x -> {|term=Set.union s.term x.term; ty=Set.union s.ty 
> x.ty|}
>                 | None -> {|s with term=Set.add x s.term|}
>             else {|s with term=Set.add x s.term|}
>         let fv = Set.fold f {|term=Set.empty; ty=Set.empty|} x.term.vars
>         {term = {|x.term with vars = fv.term|}; ty = {|x.ty with vars = 
> Set.union fv.ty x.ty.vars|} }
>     let subst env (x : obj) = match scope.TryGetValue(x) with true, v -> 
> scope.[[x]] <- subst' env v | _ -> ()
>     let rec term (env : ResolveEnv) x =
>         let f = term env
>         match x with
>         | EForall' _ | EFun' _ | ERecursiveForall' _ | ERecursiveFun' _ | 
> ERecursive _ | EJoinPoint' _ | EModule _ | EV _ | ESymbol _ | ELit _ | EB _ -> 
> ()
>         | EPatternRef a -> f a.Value
>         | EDefaultLit(_,_,a) | EPrototypeApply(_,_,a) | EType(_,a) | 
> ETypePatternMiss a -> ty env a
>         | EJoinPoint(_,a,b,_,_) | EFun(_,_,a,b) -> subst env x; f a; Option.iter
> (ty env) b
>         | EForall(_,_,a) -> subst env x; f a
>         | ERecBlock(r,a,b) ->
>             // Goes over all the functions in a recursive block, resolving them.
>             // The reason why this is sound is because the outer blocks are 
> progressively resolved as they go in.
>             let env = 
>                 let l =
>                     List.fold (fun s (id,body) ->
>                         let x = subst' env scope.[[body]]
>                         Map.add id {|term=x.term.vars; ty=x.ty.vars|} s
>                         ) Map.empty a
>                     |> resolve_recursive_free_vars
>                 Map.foldBack Map.add l env
>             a |> List.iter (fun (id,body) ->
>                 scope.[[body]] <- 
>                     let x = env.[[id]]
>                     let v = scope.[[body]]
>                     {term = {|v.term with vars = x.term |}; ty = {|v.ty with 
> vars=x.ty|} }
>                 term env body
>                 )
>             term env b
>         | ERecordWith(_,a,b,c) ->
>             List.iter (snd >> f) a
>             b |> List.iter (function
>                 | RSymbolModify(_,a) | RSymbol(_,a) -> f a
>                 | RVarModify((_,a),b) | RVar((_,a),b) -> f a; f b)
>             c |> List.iter (function 
>                 | WSymbol _ -> ()
>                 | WVar(_,a) -> f a)
>         | ENominal(_,a,b) | ETypeApply(_,a,b) | EAnnot(_,a,b) -> f a; ty env b
>         | EOp(_,_,a) -> List.iter f a
>         | EExists(_,a,b) -> List.iter (ty env) a; f b 
>         | EPatternMiss a | EReal(_,a) -> f a
>         | EArray(_,a,b) -> List.iter f a; ty env b
>         | EExistsTest(_,_,_,_,a,b)
>         | EUnitTest(_,_,a,b) | ESymbolTest(_,_,_,a,b) | EPairTest(_,_,_,_,a,b) |
> ELitTest(_,_,_,a,b)
>         | ELet(_,_,a,b) | EIfThen(_,a,b) | EPair(_,a,b) | ESeq(_,a,b) | 
> EApply(_,a,b) -> f a; f b
>         | EMutableSet(_,a,b,c) -> f a; List.iter (snd >> f) b; f c
>         | EUnbox(_,_,_,a,b,c) | EIfThenElse(_,a,b,c) -> f a; f b; f c
>         | EMacro(_,a,b) ->
>             a |> List.iter (function MLitType a | MType a -> ty env a | MTerm a 
> -> f a | MText _ -> ())
>             ty env b
>         | EPatternMemo a -> memoize dict f a
>         | ERecordTest(_,l,_,a,b) -> 
>             l |> List.iter (function Symbol _ -> () | Var((_,a),_) -> f a)
>             f a; f b
>         | EDefaultLitTest(_,_,t,_,a,b) | ENominalTest(_,t,_,_,a,b) | 
> EAnnotTest(_,t,_,a,b) -> ty env t; f a; f b
>         | ETypecase(_,a,b) -> ty env a; b |> List.iter (fun (a,b) -> ty env a; 
> term env b)
> 
>     and ty (env : ResolveEnv) x = 
>         let f = ty env
>         match x with
>         | TExists | TJoinPoint' _ | TForall' _ | TArrow' _ | TNominal _ | TPrim 
> _ | TSymbol _ | TV _ | TMetaV _ | TLit _ | TB _ -> ()
>         | TTypecase(_,a,b) -> ty env a; b |> List.iter (fun (a,b) -> ty env a; 
> ty env b)
>         | TPatternRef a -> f a.Value
>         | TForall(_,_,a)
>         | TArrow(_,a) -> subst env x; f a
>         | TApply(_,a,b) | TFun(a,b,_) | TPair(_,a,b) -> f a; f b
>         | TUnion(_,(a,_)) -> a |> Map.iter (fun _ (a,b) -> f a; Option.iter f b)
>         | TRecord(_,a) -> Map.iter (fun _ -> f) a
>         | TModule a -> Map.iter (fun _ -> f) a
>         | TTerm(_,a) -> term env a
>         | TMacro(_,a) -> a |> List.iter (function TMText _ -> () | TMLitType a |
> TMType a -> f a)
>         | TJoinPoint(_,a) | TLayout(a,_) | TArray(a) -> f a
> 
>     match x with
>     | Choice1Of2 x -> term Map.empty x
>     | Choice2Of2 x -> ty Map.empty x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### LowerSubEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type LowerSubEnv = {|var : Map<int,int>; adj : int|}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### LowerEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type LowerEnv = {term : LowerSubEnv; ty : LowerSubEnv }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### LowerEnvRec
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type LowerEnvRec = Map<int,LowerEnv -> E>
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### lower
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let lower (scope : Dictionary<obj,PropagatedVars>) x =
>     let dict = Dictionary(HashIdentity.Reference)
>     let scope (env : LowerEnv) x =
>         let v = scope.[[x]]
>         let fv v env = v |> Set.toArray |> Array.map (fun i -> Map.find i env)
>         let sz = function Some(min',max') -> max' - min' + 1 | None -> 0
>         let scope : Scope = {
>             term = {|free_vars = fv v.term.vars env.term.var; stack_size = sz 
> v.term.range|}
>             ty = {|free_vars = fv v.ty.vars env.ty.var; stack_size = sz 
> v.ty.range|}
>             }
> 
>         let vars v = Set.fold (fun (s,i) x -> Map.add x i s,i+1) (Map.empty, 0) 
> v |> fst
>         let adj len = function Some(min',_) -> len - min' | None -> 0
>         let env : LowerEnv = {
>             term = {|var = vars v.term.vars; adj = adj 
> scope.term.free_vars.Length v.term.range|}
>             ty = {|var = vars v.ty.vars; adj = adj scope.ty.free_vars.Length 
> v.ty.range|}
>             }
> 
>         scope, env
> 
>     let adj_term (env : LowerEnv) i = 
>         let i' = i + env.term.adj
>         i', {env with term = {|env.term with var = Map.add i i' env.term.var|}}
>     let adj_ty (env : LowerEnv) i =
>         let i' = i + env.ty.adj
>         i', {env with ty = {|env.ty with var = Map.add i i' env.ty.var|}}
> 
>     let rec term (env_rec : LowerEnvRec) (env : LowerEnv) x = 
>         let f = term env_rec env
>         let g = ty env_rec
>         match x with
>         | EForall' _ | EJoinPoint' _ | EFun' _ | ERecursiveForall' _ | 
> ERecursiveFun' _ | ERecursive _ | EModule _ | ESymbol _ | ELit _ | EB _ -> x
>         | EPatternRef a -> f a.Value
>         | EFun(r,pat,body,t) -> 
>             let scope, env = scope env x 
>             let pat, env = adj_term env pat
>             assert (scope.term.free_vars.Length = pat)
>             EFun'(r,scope,pat,term env_rec env body,Option.map (g env) t)
>         | EForall(r,pat,body) ->
>             let scope, env = scope env x 
>             let pat, env = adj_ty env pat
>             assert (scope.ty.free_vars.Length = pat)
>             EForall'(r,scope,pat,term env_rec env body)
>         | EJoinPoint(r,body,t,q,name) ->
>             let scope, env = scope env x 
>             EJoinPoint'(r,scope,term env_rec env body,Option.map (g env) 
> t,q,name)
>         | EV i when 0 <= i -> EV env.term.var.[[i]]
>         | EV i -> env_rec.[[i]] env
>         | EDefaultLit(r,a,b) -> EDefaultLit(r,a,g env b)
>         | EType(r,a) -> EType(r,g env a)
>         | ETypePatternMiss a -> ETypePatternMiss(g env a)
>         | EApply(r,a,b) -> EApply(r,f a,f b)
>         | ETypeApply(r,a,b) -> ETypeApply(r,f a,g env b)
>         | ENominal(r,a,b) -> ENominal(r,f a,g env b)
>         | ERecBlock(r,a,b) ->
>             let l,env_rec =
>                 List.mapFold (fun (env_rec : LowerEnvRec) (i,body) ->
>                     let re = ref Unchecked.defaultof<_>
>                     let eval env_rec = 
>                         let _,env = scope env body
>                         re.Value <-
>                             match body with
>                             | EFun(_,i,body,_) ->
>                                 let _,env = adj_term env i
>                                 term env_rec env body
>                             | EForall(_,i,body) -> 
>                                 let _,env = adj_ty env i
>                                 term env_rec env body
>                             | _ -> failwith "Compiler error: Expected a fun or a
> forall."
>                     let body env =
>                         let scope,env = scope env body
>                         match body with
>                         | EFun(r,i,_,d) -> 
>                             let i,_ = adj_term env i
>                             ERecursiveFun'(r,scope,i,re,d)
>                         | EForall(r,i,_) -> 
>                             let i,_ = adj_ty env i
>                             ERecursiveForall'(r,scope,i,re)
>                         | _ -> failwith "Compiler error: Expected a fun or a 
> forall."
>                     eval,Map.add i body env_rec
>                     ) env_rec a
>             List.iter (fun eval -> eval env_rec) l
>             term env_rec env b
>         | ERecordWith(r,a,b,c) ->
>             let a = List.map (fun (r,a) -> r, f a) a
>             let b = b |> List.map (function
>                 | RSymbol(a,b) -> RSymbol(a,f b)
>                 | RSymbolModify(a,b) -> RSymbolModify(a,f b)
>                 | RVar((r,a),b) -> RVar((r,f a),f b)
>                 | RVarModify((r,a),b) -> RVarModify((r,f a),f b)
>                 )
>             let c = c |> List.map (function
>                 | WSymbol _ as x -> x
>                 | WVar(r,a) -> WVar(r,f a)
>                 )
>             ERecordWith(r,a,b,c)
>         | EOp(r,a,b) -> EOp(r,a,List.map f b)
>         | EAnnot(r,a,b) -> EAnnot(r,f a,g env b)
>         | EIfThenElse(r,a,b,c) -> EIfThenElse(r,f a,f b,f c)
>         | EIfThen(r,a,b) -> EIfThen(r,f a,f b)
>         | EArray(r,a,b) -> EArray(r,List.map f a, g env b)
>         | EPair(r,a,b) -> EPair(r,f a,f b)
>         | ESeq(r,a,b) -> ESeq(r,f a,f b)
>         | EMutableSet(r,a,b,c) -> EMutableSet(r,f a,List.map (fun (a,b) -> a, f 
> b) b,f c)
>         | EPatternMiss a -> EPatternMiss(f a)
>         | EReal(r,a) -> EReal(r,f a)
>         | EExists(r,a,b) -> EExists(r,List.map (g env) a,f b)
>         | EMacro(r,a,b) -> 
>             let a = a |> List.map (function
>                 | MText _ as x -> x
>                 | MLitType a -> MLitType(g env a)
>                 | MType a -> MType(g env a)
>                 | MTerm a -> MTerm(f a)
>                 )
>             EMacro(r,a,g env b)
>         | EPrototypeApply(r,a,b) -> EPrototypeApply(r,a,g env b)
>         | EPatternMemo x -> memoize dict f x
>         // Regular pattern matching
>         | ELet(r,pat,body,on_succ) -> 
>             let body = term env_rec env body
>             let pat,env = adj_term env pat
>             let on_succ = term env_rec env on_succ
>             ELet(r,pat,body,on_succ)
>         | EUnbox(r,q,pat,body,on_succ,on_fail) ->
>             let body = term env_rec env body
>             let on_fail = term env_rec env on_fail
>             let pat,env = adj_term env pat
>             let on_succ = term env_rec env on_succ
>             EUnbox(r,q,pat,body,on_succ,on_fail)
>         | EPairTest(r,i,pat1,pat2,on_succ,on_fail) -> 
>             let on_fail = term env_rec env on_fail
>             let i = env.term.var.[[i]]
>             let pat1,env = adj_term env pat1
>             let pat2,env = adj_term env pat2
>             let on_succ = term env_rec env on_succ
>             EPairTest(r,i,pat1,pat2,on_succ,on_fail)
>         | EExistsTest(r,i,pat_type,pat,on_succ,on_fail) -> 
>             let on_fail = term env_rec env on_fail
>             let i = env.term.var.[[i]]
>             let pat,env = adj_term env pat
>             let pat_type,env = Array.mapFold adj_ty env pat_type
>             let on_succ = term env_rec env on_succ
>             EExistsTest(r,i,pat_type,pat,on_succ,on_fail)
>         | ESymbolTest(r,a,i,on_succ,on_fail) -> 
>             let on_fail = term env_rec env on_fail
>             let i = env.term.var.[[i]]
>             let on_succ = term env_rec env on_succ
>             ESymbolTest(r,a,i,on_succ,on_fail)
>         | ERecordTest(r,a,i,on_succ,on_fail) ->
>             let on_fail = term env_rec env on_fail
>             let b = env.term.var.[[i]]
>             let a, env = 
>                 List.mapFold (fun env x ->
>                     match x with
>                     | Symbol(a,b) -> let b,env = adj_term env b in Symbol(a,b), 
> env
>                     | Var((r,a),b) -> let b,env = adj_term env b in Var((r,f 
> a),b), env
>                     ) env a
>             ERecordTest(r,a,b,term env_rec env on_succ,on_fail)
>         | EAnnotTest(r,a,i,on_succ,on_fail) -> EAnnotTest(r,g env 
> a,env.term.var.[[i]],f on_succ,f on_fail)
>         | ELitTest(r,a,i,on_succ,on_fail) -> ELitTest(r,a,env.term.var.[[i]],f 
> on_succ,f on_fail)
>         | EUnitTest(r,i,on_succ,on_fail) -> EUnitTest(r,env.term.var.[[i]],f 
> on_succ,f on_fail)
>         | ENominalTest(r,a,i,pat,on_succ,on_fail) ->
>             let on_fail = term env_rec env on_fail
>             let i = env.term.var.[[i]]
>             let pat, env = adj_term env pat
>             let on_succ = term env_rec env on_succ
>             ENominalTest(r,g env a,i,pat,on_succ,on_fail)
>         | EDefaultLitTest(r,a,b,i,on_succ,on_fail) -> EDefaultLitTest(r,a,g env 
> b,env.term.var.[[i]],f on_succ,f on_fail)
>         | ETypecase(r,a,b) -> 
>             let b = b |> List.map (fun (a,b) -> 
>                 let metavars = Dictionary()
>                 let mutable env_case = env
>                 let a = 
>                     ty' (memoize metavars (fun i ->
>                         let i, env = adj_ty env_case i
>                         env_case <- env
>                         TMetaV i
>                         )) env_rec env_case a
>                 a, term env_rec env_case b
>                 )
>             ETypecase(r,g env a,b)
>     and ty env_rec env x = ty' (fun _ -> failwith "Compiler error: TMetaV should
> not appear here.") env_rec env x
>     and ty' case_tmetav env_rec env x =
>         let f = ty' case_tmetav env_rec env
>         match x with
>         | TMetaV i -> case_tmetav i
>         | TExists | TJoinPoint' _ | TForall' _ | TArrow' _ | TNominal  _ | TPrim
> _ | TSymbol _ | TLit _ | TB _ as x -> x
>         | TTypecase(r,a,b) -> 
>             let b = b |> List.map (fun (a,b) -> 
>                 let metavars = Dictionary()
>                 let mutable env_case = env
>                 let a = 
>                     ty' (memoize metavars (fun i ->
>                         let i, env = adj_ty env_case i
>                         env_case <- env
>                         TMetaV i
>                         )) env_rec env_case a
>                 a, ty env_rec env_case b
>                 )
>             TTypecase(r,ty env_rec env a,b)
>         | TPatternRef a -> f a.Value
>         | TJoinPoint(r,a) as x ->
>             let scope, env = scope env x
>             TJoinPoint'(r,scope,ty env_rec env a)
>         | TForall(r,a,b) as x ->  
>             let scope, env = scope env x
>             let a, env = adj_ty env a
>             TForall'(r,scope,a,ty env_rec env b)
>         | TArrow(a,b) as x ->  
>             let scope, env = scope env x
>             let a, env = adj_ty env a
>             TArrow'(scope,a,ty env_rec env b)
>         | TV i -> TV(env.ty.var.[[i]])
>         | TPair(r,a,b) -> TPair(r,f a,f b)
>         | TFun(a,b,t) -> TFun(f a,f b,t)
>         | TRecord(r,a) -> TRecord(r,Map.map (fun _ -> f) a)
>         | TModule a -> TModule(Map.map (fun _ -> f) a)
>         | TUnion(r,(a,b)) -> TUnion(r,(Map.map (fun _ (a,b) -> f a, Option.map f
> b) a,b))
>         | TApply(r,a,b) -> TApply(r,f a,f b)
>         | TTerm(r,a) -> TTerm(r,term env_rec env a)
>         | TMacro(r,a) ->
>             let a = a |> List.map (function 
>                 | TMText _ as x -> x
>                 | TMType a -> TMType(f a)
>                 | TMLitType a -> TMLitType(f a)
>                 )
>             TMacro(r,a)
>         | TArray(a) -> TArray(f a)
>         | TLayout(a,b) -> TLayout(f a,b)
>     let env : LowerEnv = {
>         term = {|var = Map.empty; adj = 0|}
>         ty = {|var = Map.empty; adj = 0|}
>         }
>     match x with
>     | Choice1Of2(x,ret) -> ret (term Map.empty env x)
>     | Choice2Of2(x,ret) -> ret (ty Map.empty env x)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Env___
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Env___ = {
>     term : {| env : Map<string,E>; i : Id; i_rec : Id |}
>     ty : {| env : Map<string,TPrepass>; i : Id |}
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### PartEvalPrepassEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type PartEvalPrepassEnv = Env___
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_term
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_term (e : PartEvalPrepassEnv) k v = let term = e.term in {e with term = 
> {|term with i = term.i+1; env = Map.add k v term.env|} }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_term_rec
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_term_rec (e : PartEvalPrepassEnv) k v = let term = e.term in {e with 
> term = {|term with i_rec = term.i_rec-1; env = Map.add k v term.env|} }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_ty
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_ty (e : PartEvalPrepassEnv) k v = let ty = e.ty in {e with ty = {|ty 
> with i = ty.i+1; env = Map.add k v ty.env|} }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_wildcard
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_wildcard (e : PartEvalPrepassEnv) = let ty = e.ty in {e with ty = {|ty 
> with i = ty.i+1|} }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_term_var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_term_var (e : PartEvalPrepassEnv) k = e.term.i, add_term e k (EV 
> e.term.i)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### fresh_term_var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let fresh_term_var (e : PartEvalPrepassEnv) = e.term.i, (let term = e.term in {e
> with term = {|term with i = term.i+1|} })
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### fresh_ty_var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let fresh_ty_var (e : PartEvalPrepassEnv) = e.ty.i, (let ty = e.ty in {e with ty
> = {|ty with i = ty.i+1|} })
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_term_rec_var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_term_rec_var (e : PartEvalPrepassEnv) k = e.term.i_rec, add_term_rec e k
> (EV e.term.i_rec)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_ty_var
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_ty_var (e : PartEvalPrepassEnv) k = e.ty.i, add_ty e k (TV e.ty.i)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_ty_wildcard
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_ty_wildcard (e : PartEvalPrepassEnv) = e.ty.i, add_wildcard e
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### process_term
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let process_term (x : E) =
>     let scope = propagate (Choice1Of2 x)
>     resolve scope (Choice1Of2 x)
>     lower scope (Choice1Of2(x,id))
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### process_ty
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let process_ty (x : TPrepass) =
>     let scope = propagate (Choice2Of2 x)
>     resolve scope (Choice2Of2 x)
>     lower scope (Choice2Of2(x,id))
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### module_openPrepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let module_openPrepass (top_env : PrepassTopEnv) env a l =
>     let a,b = 
>         match top_env.term.[[snd a]], top_env.ty.[[snd a]] with
>         | EModule a, TModule b ->
>             List.fold (fun (a,b) (_,x) ->
>                 match Map.find x a, Map.find x b with
>                 | EModule a, TModule b -> a,b
>                 | _ -> failwith "Compiler error: Module open's symbol index 
> should have been validated."
>                 ) (a,b) l
>         | _ -> failwith "Compiler error: Module open should have been 
> validated."
>     {
>     term = {|env.term with env = Map.foldBack Map.add a env.term.env|}
>     ty = {|env.ty with env = Map.foldBack Map.add b env.ty.env|}
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### prepassPrepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let prepassPrepass package_id module_id path (top_env : PrepassTopEnv) =
>     let p r = {path=path; range=r}
>     let at_tag i = { package_id = package_id; module_id = module_id; tag = i }
>     let v_term (env : PartEvalPrepassEnv) x = Map.tryFind x env.term.env |> 
> Option.defaultWith (fun () -> top_env.term.[[x]])
>     let v_ty (env : PartEvalPrepassEnv) x = Map.tryFind x env.ty.env |> 
> Option.defaultWith (fun () -> top_env.ty.[[x]])
>     
>     // The functions in this block are basically renaming string id to int ids, 
> in addition to pattern compilation.
>     let rec compile_pattern (id : Id) (env : PartEvalPrepassEnv) (clauses : 
> (Pattern * RawExpr) list) =
>         let mutable term_var_count = env.term.i
>         let mutable ty_var_count = env.ty.i
>         let patvar () = let x = term_var_count in term_var_count <- 
> term_var_count+1; x
>         let ty_patvar () = let x = ty_var_count in ty_var_count <- 
> ty_var_count+1; x
>         let loop (pat, on_succ) on_fail =
>             let mutable dict = Map.empty
>             let mutable dict_type = Map.empty
>             let pat_refs_term = ResizeArray()
>             //let pat_ref_term x = let re = ref Unchecked.defaultof<_> in 
> pat_refs_term.Add(x,dict,re); EPatternRef re
>             let pat_ref_term' x k =
>                 let re = ref Unchecked.defaultof<_>
>                 let r = k (EPatternRef re)
>                 pat_refs_term.Add(x,(dict,dict_type),re)
>                 r
>             let pat_refs_ty = ResizeArray()
>             let pat_ref_ty x = let re = ref Unchecked.defaultof<_> in 
> pat_refs_ty.Add(x,(dict,dict_type),re); TPatternRef re
>             let rec cp id pat on_succ on_fail =
>                 let v x =
>                     match Map.tryFind x dict with
>                     | Some x -> x
>                     | None -> let v = patvar() in dict <- Map.add x v dict; v
>                 let tv x =
>                     match Map.tryFind x dict_type with
>                     | Some x -> x
>                     | None -> let v = ty_patvar() in dict_type <- Map.add x v 
> dict_type; v
>                 let step pat on_succ =
>                     match pat with
>                     | PatVar(_,x) -> v x, on_succ
>                     | _ -> let id = patvar() in id, cp id pat on_succ on_fail
>                 match pat with
>                 | PatDefaultValue _ -> failwith "Compiler error: The default 
> value should be filled."
>                 | PatE _ -> on_succ
>                 | PatB r -> EUnitTest(p r,id,on_succ,on_fail)
>                 | PatVar(r,a) -> ELet(p r,v a,EV id,on_succ)
>                 | PatAnnot(r,a,b) -> EAnnotTest(p r,pat_ref_ty b,id,cp id a 
> on_succ on_fail,on_fail)
>                 | PatPair(r,a,b) -> 
>                     // Evaling the b then a causes the call args to be rotated 
> in join points during peval. 
>                     // This is not a problem, but it might be surprising if you 
> aren't aware why that is happening.
>                     // Swapping the next two statements would fix it for pairs.
>                     let b,on_succ = step b on_succ
>                     let a,on_succ = step a on_succ
>                     EPairTest(p r,id,a,b,on_succ,on_fail)
>                 | PatExists(r,l,b) -> 
>                     let pat_type = List.map (snd >> tv) l |> List.toArray
>                     let pat,on_succ = step b on_succ
>                     EExistsTest(p r,id,pat_type,pat,on_succ,on_fail)
>                 | PatArray(r,a) ->
>                     let r = p r
>                     let ar_ids,on_succ = List.mapFoldBack step a on_succ
>                     let a_length = List.length a
>                     let on_succ,_ = 
>                         List.foldBack (fun id' (on_succ,i) -> 
>                             ELet(r,id',EOp(r,ArrayIndex,[[EV id; ELit(r,LitInt32
> i)]]),on_succ), i-1
>                             ) ar_ids (on_succ, a_length - 1)
>                     let id_length = EOp(r,ArrayLength,[[EType(r,TPrim UInt64T); 
> EV id]])
>                     let pat_length = ELit(r,LitUInt64(uint64 a_length))
>                     
> EIfThenElse(r,EOp(r,EQ,[[id_length;pat_length]]),on_succ,on_fail)
>                 | PatSymbol(r,a) -> ESymbolTest(p r,a,id,on_succ,on_fail)
>                 | PatRecordMembers(r,items) ->
>                     let inject_vars = Dictionary(HashIdentity.Reference)
>                     List.iter (function
>                         | PatRecordMembersSymbol _ -> ()
>                         | PatRecordMembersInjectVar((_,var),_) -> 
>                             match dict.TryGetValue(var) with
>                             | true, x -> inject_vars.[[var]] <- EV x
>                             | _ -> inject_vars.[[var]] <- v_term env var
>                         ) items
>                     let binds, on_succ =
>                         List.mapFoldBack (fun item on_succ ->
>                             match item with
>                             | PatRecordMembersSymbol((r,keyword),name) -> let 
> arg, on_succ = step name on_succ in Symbol((p r,keyword),arg), on_succ
>                             | PatRecordMembersInjectVar((r,var),name) -> let 
> arg, on_succ = step name on_succ in Var((p r,inject_vars.[[var]]),arg), on_succ
>                             ) items on_succ
>                     ERecordTest(p r,binds,id,on_succ,on_fail)
>                 | PatOr(r,a,b) -> let on_succ = EPatternMemo on_succ in cp id a 
> on_succ (cp id b on_succ on_fail)
>                 | PatAnd(r,a,b) -> let on_fail = EPatternMemo on_fail in cp id a
> (cp id b on_succ on_fail) on_fail
>                 | PatValue(r,x) -> ELitTest(p r,x,id,on_succ,on_fail)
>                 | PatWhen(r,p',e) -> pat_ref_term' e (fun e -> cp id p' 
> (EIfThenElse(p r, e, on_succ, on_fail)) on_fail)
>                 | PatNominal(r,(_,a),l,b) -> 
>                     let id', on_succ = step b on_succ
>                     let a = List.fold (fun s (r',x) -> TApply(p (r +. 
> r'),s,TSymbol(p r',x))) (v_ty env a) l
>                     ENominalTest(p r,a,id,id',on_succ,on_fail)
>                 | PatFilledDefaultValue(r,a,b) -> EDefaultLitTest(p 
> r,a,pat_ref_ty b,id,on_succ,on_fail)
>                 | PatDyn(r,a) -> let id' = patvar() in ELet(p r,id',EOp(p 
> r,Dyn,[[EV id]]),cp id' a on_succ on_fail)
>                 | PatUnbox(r,q,a) -> let id' = patvar() in EUnbox(p r,q,id',EV 
> id,cp id' a on_succ on_fail,on_fail)
>             (pat_refs_term, pat_refs_ty), pat_ref_term' on_succ (fun on_succ -> 
> cp id pat on_succ (EPatternMemo on_fail))
> 
>         let l, e = List.mapFoldBack loop clauses (EPatternMiss(EV id))
>         l |> List.iter (fun (terms,tys) -> // The reason I am not evaling it in 
> place is because of the var count which is mutable. I need to deal with the 
> patterns first before replacing the strings in the body.
>             let env (dict,dict_type) = 
>                 {env with 
>                     term = {|env.term with i=term_var_count; env=dict |> 
> Map.fold (fun s k v -> Map.add k (EV v) s) env.term.env|} 
>                     ty = {|env.ty with i=ty_var_count; env=dict_type |> Map.fold
> (fun s k v -> Map.add k (TV v) s) env.ty.env|} 
>                     }
>             terms |> Seq.iter (fun (a,dict,b) -> b.Value <- term (env dict) a)
>             tys |> Seq.iter (fun (a,dict,b) -> b.Value <- ty (env dict) a)
>             )
>         e
>     and pattern_match (env : PartEvalPrepassEnv) r body clauses =
>         match clauses with
>         | [[PatVar(_,x), on_succ]] ->
>             let id,env = add_term_var env x
>             ELet(r,id,body,term env on_succ)
>         | _ ->
>             let id,env = fresh_term_var env
>             ELet(r,id,body,compile_pattern id env clauses)
>     and pattern_function env r clauses annot =
>         match clauses with
>         | [[PatVar(_,x), on_succ]] ->
>             let id,env = add_term_var env x
>             EFun(r,id,term env on_succ,annot)
>         | _ ->
>             let id,env = fresh_term_var env
>             EFun(r,id,compile_pattern id env clauses,annot)
>     and ty env x = ty' (fun _ -> failwith "Compiler error: RawTMetaVar should 
> not appear here.") env x
>     and ty' case_metavar (env : PartEvalPrepassEnv) x =
>         let f = ty' case_metavar env
>         match x with
>         | RawTMetaVar(_,name) -> case_metavar (Some name)
>         | RawTWildcard _ -> case_metavar None
>         | RawTForall(r,a,b) ->
>             let id, env = add_ty_var env (typevar_name a)
>             TForall(p r,id,ty' case_metavar env b)
>         | RawTB r -> TB (p r)
>         | RawTLit (r, x) -> TLit(p r,x)
>         | RawTVar(r,a) -> v_ty env a
>         | RawTPair(r,a,b) -> TPair(p r,f a,f b)
>         | RawTFun(r,a,b,t) -> TFun(f a,f b,t)
>         | RawTExists(r,l,b) -> TExists
>         | RawTRecord(r,l) -> TRecord(p r,Map.map (fun _ -> f) l)
>         | RawTUnion(r,a,b,this) -> 
>             let rec subst_vars_with_metavars vars a =
>                 let f = subst_vars_with_metavars vars
>                 match a with
>                 | RawTTypecase _ | RawTUnion _ -> failwith "Compiler error: Not 
> expecting typecase or union here."
>                 | RawTVar(r,n) -> if List.contains n vars then RawTMetaVar(r,n) 
> else a
>                 | RawTPrim _ | RawTFilledNominal _ | RawTTerm _ | RawTSymbol _ |
> RawTLit _ | RawTMetaVar _ | RawTB _ | RawTWildcard _ -> a
>                 | RawTPair(r,a,b) -> RawTPair(r,f a,f b)
>                 | RawTFun(r,a,b,c) -> RawTFun(r,f a,f b,c)
>                 | RawTArray(r,a) -> RawTArray(r,f a)
>                 | RawTRecord(r,a) -> RawTRecord(r,Map.map (fun _ -> f) a)
>                 | RawTApply(r,a,b) -> RawTApply(r,f a,f b)
>                 | RawTForall(r,a,b) -> RawTForall(r,a,subst_vars_with_metavars 
> (List.removeAt (List.findIndex ((=) (typevar_name a)) vars) vars) b)
>                 | RawTExists(r,a,b) -> 
>                     let f vars a = List.removeAt (List.findIndex ((=) 
> (typevar_name a)) vars) vars
>                     RawTExists(r,a,subst_vars_with_metavars (List.fold f vars a)
> b)
>                 | RawTMacro(r,a) -> 
>                     let f = function (RawMacroText _ | RawMacroTerm _ | 
> RawMacroTypeLit _) as a -> a | RawMacroType(r,a) -> RawMacroType(r,f a)
>                     RawTMacro(r, List.map f a)
>                 | RawTLayout(r,a,b) -> RawTLayout(r,f a,b)
> 
>             let make_typecase x =
>                 let rec loop vars x =
>                     match x with
>                     | RawTForall(_,a,b) -> loop (typevar_name a :: vars) b
>                     | RawTFun(r,a,b,_) -> 
> RawTTypecase(r,this,[[subst_vars_with_metavars vars b,a]])
>                     | b -> let r = range_of_texpr b in 
> RawTTypecase(r,this,[[subst_vars_with_metavars vars b,RawTB r]])
>                 loop [[]] x |> f
>             TUnion(p r,(Map.map (fun _ (is_gadt,x) -> f x, if is_gadt then Some 
> (make_typecase x) else None) a,b))
>         | RawTTypecase(r,a,b) ->
>             let b = b |> List.map (fun (t,e) ->
>                 let metavars = Dictionary()
>                 let mutable env_case = env
>                 let t = 
>                     let f (id,env) = env_case <- env; TMetaV id
>                     ty' (function
>                         | None -> add_ty_wildcard env_case |> f
>                         | Some name -> memoize metavars (add_ty_var env_case >> 
> f) name
>                         ) env t
>                 t, ty env_case e
>                 )
>             TTypecase(p r,ty env a,b)
>         | RawTSymbol(r,a) -> TSymbol(p r,a)
>         | RawTApply(r,a,b) ->
>             match f a, f b with
>             | TRecord(_,a') & a, TSymbol(_,b') & b ->
> 
>                 match a' |> Map.tryPick (fun (_, k) v -> if k = b' then Some v 
> else None) with
>                 | Some x -> x
>                 | None -> TApply(p r,a,b) // TODO: Will be an error during 
> partial evaluation time. Could be substituted for an exception here, but I do 
> not want to have errors during the prepass.
>             | a,b -> TApply(p r,a,b)
>         | RawTPrim(r,a) -> TPrim(a)
>         | RawTTerm(r,a) -> TTerm(p r,term env a)
>         | RawTMacro(r,l) -> 
>             let f = function
>                 | RawMacroText(r,a) -> TMText a
>                 | RawMacroType(r,a) -> TMType(f a)
>                 | RawMacroTypeLit(r,a) -> TMLitType(f a)
>                 | RawMacroTerm _ -> failwith "Compiler error: Term vars should 
> not appear on the type level."
>             TMacro(p r,List.map f l)
>         | RawTArray(r,a) -> TArray(f a)
>         | RawTFilledNominal(r,a) -> TNominal a
>         | RawTLayout(r,a,b) -> TLayout(f a,b)
>     and term env x =
>         let f = term env
>         match x with
>         | RawDefaultLit(r,a) -> failwith "Compiler error: Default values should 
> have been annotated in `fill` by prepass time."
>         | RawAnnot(_,RawDefaultLit(r,a),b) -> EDefaultLit(p r,a,ty env b)
>         | RawAnnot(_,RawLit(r,a),b) -> EDefaultLit(p r,a.LitToString(),ty env b)
>         | RawB r -> EB(p r)
>         | RawV(r,a,_) -> v_term env a
>         | RawLit(r,a) -> ELit(p r,a)
>         | RawSymbol(r,a) -> ESymbol(p r,a)
>         | RawType(r,a) -> EType(p r,ty env a)
>         | RawMatch(r,a,b) -> pattern_match env (p r) (f a) b
>         | RawFun(r,a) -> pattern_function env (p r) a None
>         | RawAnnot(_,RawFun(r,a),t) -> pattern_function env (p r) a (Some (ty 
> env t))
>         | RawArray(r,a) -> failwith "Compiler error: The array should have been 
> annotated in `fill` by prepass time."
>         | RawAnnot(_,RawArray(r,a),b) -> EArray(p r,List.map f a,ty env b)
>         | RawTypecase(r,a,b) ->
>             let b = b |> List.map (fun (t,e) ->
>                 let metavars = Dictionary()
>                 let mutable env_case = env
>                 let t = 
>                     let f (id,env) = env_case <- env; TMetaV id
>                     ty' (function
>                         | None -> add_ty_wildcard env_case |> f
>                         | Some name -> memoize metavars (add_ty_var env_case >> 
> f) name
>                         ) env t
>                 t, term env_case e
>                 )
>             ETypecase(p r,ty env a,b)
>         | RawFilledForall(r,name,b)
>         | RawForall(r,((_,(name,_)),_),b) -> 
>             let id, env = add_ty_var env name
>             EForall(p r,id,term env b)
>         | RawRecBlock(r,l,on_succ) ->
>             let l,env = List.mapFold (fun env ((r,name),body) -> let id,env = 
> add_term_rec_var env name in (id,body), env) env l
>             ERecBlock(p r,List.map (fun (id,body) -> id, term env body) l,term 
> env on_succ)
>         | RawRecordWith(r,a,b,c) ->
>             let a = List.map (fun a -> p (range_of_expr a), f a) a
>             let b = b |> List.map (function
>                 | RawRecordWithSymbol((r,a),b) -> RSymbol((p r,a),f b)
>                 | RawRecordWithSymbolModify((r,a),b) -> RSymbolModify((p r,a),f 
> b)
>                 | RawRecordWithInjectVar((r,a),b) -> RVar((p r,v_term env a),f 
> b)
>                 | RawRecordWithInjectVarModify((r,a),b) -> RVarModify((p 
> r,v_term env a),f b))
>             let c = c |> List.map (function
>                 | RawRecordWithoutSymbol(r,a) -> WSymbol(p r,a)
>                 | RawRecordWithoutInjectVar(r,a) -> WVar(p r,v_term env a))
>             ERecordWith(p r,a,b,c)
>         | RawOp(r,a,b) -> EOp(p r,a,List.map f b)
>         | RawJoinPoint(r,q,a,name) -> EJoinPoint(p r,f a,None,Option.map (fun 
> (r',w) -> p r',w) q,name)
>         | RawAnnot(_,RawJoinPoint(r,q,a,name),b) -> EJoinPoint(p r,f a,Some (ty 
> env b),Option.map (fun (r',w) -> p r',w) q,name)
>         | RawOpen (_,a,l,on_succ) -> term (module_openPrepass top_env env a l) 
> on_succ
>         | RawApply(r,a,b) ->
>             let rec loop = function
>                 | EModule a' & a, EPair(_,ESymbol(_, b'),b'') & b ->
>                     match Map.tryFind b' a' with
>                     | Some a -> loop (a,b'')
>                     | None -> EApply(p r,a,b) // TODO: Will be an error during 
> partial evaluation time. Could be substituted for an exception here, but I do 
> not want to have errors during the prepass.
>                 | EModule a' & a, ESymbol(_,b') & b ->
>                     match Map.tryFind b' a' with
>                     | Some a -> a
>                     | None -> EApply(p r,a,b) // TODO: Ditto.
>                 | a,EType(_,b) -> ETypeApply(p r,a,b)
>                 | a,b -> EApply(p r,a,b)
>             loop (f a, f b)
>         | RawIfThenElse(r,a,b,c) -> EIfThenElse(p r,f a,f b,f c)
>         | RawIfThen(r,a,b) -> EIfThen(p r,f a,f b)
>         | RawPair(r,a,b) -> EPair(p r,f a,f b)
>         | RawSeq(r,a,b) -> ESeq(p r,f a,f b)
>         | RawHeapMutableSet(r,a,b,c) -> EMutableSet(p r,f a,List.map (fun a -> p
> (range_of_expr a), f a) b,f c)
>         | RawReal(r,a) -> f a
>         | RawExists(r,(_,Some a),b) -> EExists(p r, List.map (ty env) a, f b)
>         | RawExists(_,(_,None),_) -> failwith "Compiler error: The exists' vars 
> should have been added during `fill`."
>         | RawMacro _ -> failwith "Compiler error: The macro's annotation should 
> have been added during `fill`."
>         | RawAnnot(_,RawMacro(r,a),b) ->
>             let a = a |> List.map (function
>                 | RawMacroText(r,a) -> MText a
>                 | RawMacroTerm(r,a) -> MTerm(f a)
>                 | RawMacroType(r,a) -> MType(ty env a)
>                 | RawMacroTypeLit(r,a) -> MLitType(ty env a)
>                 )
>             EMacro(p r,a,ty env b)
>         | RawMissingBody _ -> failwith "Compiler error: The missing body cases 
> should have been validated."
>         | RawAnnot(r,a,b) -> EAnnot(p r,f a,ty env b)
> 
>     let env : PartEvalPrepassEnv =
>         {
>         term = {|env=Map.empty; i=0; i_rec= -1|}
>         ty = {|env=Map.empty; i=0|}
>         }
>         
>     let eval_type ((r,(name,kind)) : HoVar) on_succ env =
>         let id, env = add_ty_var env name
>         TArrow(id,on_succ env)
>     let eval_type' env l body = List.foldBack eval_type l body env |> process_ty
> 
>     {|
>     base_type = process_ty
>     filled_top = fun x ->
>         let nominal_rec l =
>             let env,_ = 
>                 List.fold (fun (env,i) (r,(_,name),l,body) -> 
>                     add_ty env name (TNominal (at_tag i)), i+1
>                     ) (env, top_env.nominals_next_tag) l
>             List.fold (fun (term,ty',nominals,i) (r, (_,name),l,body) -> 
>                 let r = p r
>                 let at_tag_i = at_tag i
>                 let nom = TNominal at_tag_i
>                 let bodyt = eval_type' env l (fun env -> TJoinPoint(p 
> (range_of_texpr body), ty env body))
>                 let term =
>                     match body with
>                     | RawTUnion(_,l,_,_) -> 
>                         Map.fold (fun term (_,name) (is_gadt,_) ->
>                             if is_gadt then
>                                 let rec loop_outer = function
>                                     | TArrow'(_,_,t) -> loop_outer t // GADTs 
> have the foralls in their cases' type, not here.
>                                     | TJoinPoint'(r,_,TUnion(_,(l,_))) -> 
>                                         let rec loop vars = function
>                                             | TForall'(r,scope,id,t) -> 
> EForall(r,id,loop (id :: vars) t)
>                                             | TFun(t,t',_) -> 
> EFun(r,0,ENominal(r,EPair(r,ESymbol(r,name),EV 
> 0),t'),Some(TFun(t,t',FT_Vanilla)))
>                                             | t' -> 
> ENominal(r,EPair(r,ESymbol(r,name),EB r),t')
>                                         let t = l |> Map.pick (fun (_, k) v -> 
> if k = name then Some v else None) |> fst
>                                         loop [[]] t
>                                     | _ -> failwith "Compiler error: Expected a 
> join point with a gadt union."
>                                 Map.add name (loop_outer bodyt |> process_term) 
> term
>                             else
>                                 let rec loop vars = function
>                                     | TArrow'(scope,id,t) -> EForall(r,id,loop 
> (id :: vars) t)
>                                     | TJoinPoint'(r,_,TUnion(_,(l,_))) -> 
>                                         let t = l |> Map.pick (fun (_, k) v -> 
> if k = name then Some v else None) |> fst
>                                         let t' = List.foldBack (fun id nom -> 
> TApply(r,nom,TV id)) vars nom
>                                         match t with
>                                         | TB _ -> 
> ENominal(r,EPair(r,ESymbol(r,name),EB r),t')
>                                         | _ -> 
> EFun(r,0,ENominal(r,EPair(r,ESymbol(r,name),EV 
> 0),t'),Some(TFun(t,t',FT_Vanilla)))
>                                     | _ -> failwith "Compiler error: Expected a 
> join point with an union."
>                                 Map.add name (loop [[]] bodyt |> process_term) 
> term
>                             ) term l
>                     | _ ->
>                         let rec loop vars = function
>                             | TArrow'(scope,id,t) -> EForall(r,id,loop (id :: 
> vars) t)
>                             | TJoinPoint'(r,_,t) -> 
>                                 let t' = List.foldBack (fun id nom -> 
> TApply(r,nom,TV id)) vars nom
>                                 match t with
>                                 | TB _ -> ENominal(r,EB r,t')
>                                 | _ -> EFun(r,0,ENominal(r,EV 
> 0,t'),Some(TFun(t,t',FT_Vanilla)))                                
>                             | _ -> failwith "Compiler error: Expected a join 
> point."
>                         Map.add name (loop [[]] bodyt |> process_term) term
>                 term,Map.add name nom ty', Map.add at_tag_i {|body=bodyt; 
> name=name|} nominals, i+1
>                 ) (Map.empty, Map.empty, Map.empty, top_env.nominals_next_tag) l
>         match x with
>         | FType(_,(_,name),l,body) -> AInclude {top_env_emptyPrepass with ty = 
> Map.add name (eval_type' env l (fun env -> ty env body)) Map.empty}
>         | FNominal(r,a,b,c) ->
>             let term,ty,nominals,i = nominal_rec [[r,a,b,c]]
>             AInclude {top_env_emptyPrepass with term = term; ty = ty; nominals =
> nominals; nominals_next_tag=i}
>         | FNominalRec l ->
>             let term,ty,nominals,i = nominal_rec l
>             AInclude {top_env_emptyPrepass with term = term; ty = ty; nominals =
> nominals; nominals_next_tag=i}
>         | FInl(_,(_,name),body) -> AInclude {top_env_emptyPrepass with term = 
> Map.add name (term env body |> process_term) Map.empty}
>         | FRecInl l ->
>             let l, env = 
>                 List.mapFold (fun env (_,(_,name),_ as x) -> 
>                     let r = ref Unchecked.defaultof<_>
>                     (x,r), add_term_rec env name (ERecursive r)
>                     ) env l
>             let term = 
>                 List.fold (fun top_env_term ((_,(_,name),body),(r : ref<E>)) ->
>                     r.Value <- term env body |> process_term
>                     Map.add name r.Value top_env_term
>                     ) Map.empty l
>             AInclude {top_env_emptyPrepass with term = term}
>         | FPrototype(r,(_,name),_,_,_) ->
>             let i = at_tag top_env.prototypes_next_tag
>             let r = p r
>             let x = EForall(r,0,EPrototypeApply(r,i,TV 0)) |> process_term
>             AInclude {top_env_emptyPrepass with term = Map.add name x Map.empty;
> prototypes_next_tag = i.tag+1}
>         | FInstance(_,(_,prot_id),(_,ins_id),body) ->
>             AInclude {top_env_emptyPrepass with prototypes_instances = Map.add 
> (prot_id,ins_id) (term env body |> process_term) Map.empty}
>         | FOpen(r,a,b) ->
>             let x = module_openPrepass top_env env a b
>             AOpen {top_env_emptyPrepass with term=x.term.env; ty=x.ty.env}
>     |}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### top_env_defaultPrepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let top_env_defaultPrepass default_env =
>     let convert_infer_to_prepass x = 
>         let m = Dictionary(HashIdentity.Reference)
>         let rec f = function
>             | TyVar (_,{contents=Some x}) -> f x
>             | TyVar (x,_) -> TV m.[[x.name]] 
>             | TyPrim x -> TPrim x
>             | TyArray x -> TArray (f x)
>             | TyLayout(a,b) -> TLayout(f a,b)
>             | TyInl(a,b) -> let i = m.Count in m.Add(a.name,i); TArrow(i,f b)
>             | TyFun(a,b,t) -> TFun(f a, f b, t)
>             | _ -> failwith "Compiler error: The base type in Infer is not 
> supported in the prepass yet."
>         f x
> 
>     List.fold (fun (top_env : PrepassTopEnv) (k, x) ->
>         {top_env with ty = Map.add k ((prepassPrepass -1 0 "<base_types>" 
> top_env).base_type (convert_infer_to_prepass x)) top_env.ty}
>         ) top_env_emptyPrepass (base_types default_env)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## PartEval
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // #r 
> @"../../../../../../../.nuget/packages/softcircuits.ordereddictionary/3.2.0/lib/
> net8.0/SoftCircuits.OrderedDictionary.dll"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // open System
> open System.Collections.Generic
> // open SoftCircuits.Collections
> // open Common
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Tag
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Tag = int
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### L<'a,'b when 'a: equality and 'a: comparison>
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type [[<CustomComparison;CustomEquality>]] L<'a,'b when 'a: equality and 'a: 
> comparison> = 
>     | L of 'a * 'b
> 
>     override a.Equals(b) =
>         match b with
>         | :? L<'a,'b> as b -> match a,b with L(a,_), L(b,_) -> a = b
>         | _ -> false
>     override a.GetHashCode() = match a with L(a,_) -> hash a
>     interface System.IComparable with
>         member a.CompareTo(b) =
>             match b with
>             | :? L<'a,'b> as b -> match a,b with L(a,_), L(b,_) -> compare a b
>             | _ -> raise <| System.ArgumentException "Invalid comparison for T."
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### H<'a when 'a : equality>
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type H<'a when 'a : equality>(x : 'a) = 
>     let h = hash x
> 
>     member _.Item = x
>     override _.Equals(b) =
>         match b with
>         | :? H<'a> as b -> System.Object.ReferenceEquals(x,b.Item)
>         | _ -> false
>     override _.GetHashCode() = h
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### StackSize
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type StackSize = int
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Nominal
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Nominal = {|body : TPrepass; id : GlobalId; name : string|} ConsedNode // 
> TODO: When the time comes to implement incremental compilation, make the `body` 
> field a weak reference.
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### PartEvalMacro
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type PartEvalMacro = Text of string | Type of Ty | TypeLit of Ty
> and Ty =
>     | YVoid
>     | YB
>     | YLit of Literal
>     | YSymbol of string
>     | YPair of Ty * Ty
>     | YTypeFunction of body : TPrepass * ty : Ty [[]] * term_stack_size : 
> StackSize * ty_stack_size : StackSize
>     | YExists
>     | YForall
>     | YRecord of Map<int * string, Ty>
>     | YPrim of PrimitiveType
>     | YArray of Ty
>     | YFun of Ty * Ty * FunType
>     | YMacro of PartEvalMacro list
>     | YNominal of Nominal
>     | YApply of Ty * Ty
>     | YLayout of Ty * Layout
>     | YUnion of Union
>     | YMetavar of Id
> and Data =
>     | DB
>     | DSymbol of string
>     | DTLit of Literal
>     | DPair of Data * Data
>     | DFunction of body : E * annot : TPrepass option * term : Data [[]] * ty : 
> Ty [[]] * term_stack_size : StackSize * ty_stack_size : StackSize
>     | DForall of body : E * term : Data [[]] * ty : Ty [[]] * term_stack_size : 
> StackSize * ty_stack_size : StackSize
>     | DExists of vars_type : Ty [[]] * term : Data
>     | DRecord of Map<int * string, Data>
>     | DLit of Literal
>     | DUnion of Data * Union
>     | DNominal of Data * Ty
>     | DV of TyV
>     | DHashSet of HashSet<Data>
>     | DHashMap of OrderedDictionary<Data,Data> * bool ref
> and TyV = L<Tag,Ty>
> // Unions always go through a join point which enables them to be compared via 
> ref eqaulity.
> // tags and tag_cases are straightforward mapping from cases for the sake of 
> efficiency.
> and Union = {|cases : Map<int * string, Ty>; layout : UnionLayout; tags : 
> Dictionary<string, int>; tag_cases : (string * Ty) [[]]; is_degenerate : bool|} 
> H
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TermVar
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type TermVar =
>     | WV of TyV
>     | WLit of Literal
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### RData
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type RData =
>     | ReB
>     | RePair of ConsedNode<RData * RData>
>     | ReSymbol of string
>     | ReFunction of ConsedNode<E * RData [[]] * Ty [[]]> // T option and stack 
> sizes are entirely dependent on the body. And unlike in v0.09/v0.1 there are no 
> reified join points.
>     | ReForall of ConsedNode<E * RData [[]] * Ty [[]]>
>     | ReExists of ConsedNode<Ty [[]] * RData>
>     | ReRecord of ConsedNode<Map<int * string, RData>>
>     | ReLit of Literal
>     | ReTLit of Literal
>     | ReUnion of ConsedNode<RData * Union>
>     | ReNominal of ConsedNode<RData * Ty>
>     | ReV of ConsedNode<Tag * Ty>
>     | ReHashMap of ConsedNode<(RData * RData)[[]]>
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Trace
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Trace = Range list
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### JoinPointKey
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type JoinPointKey = 
>     | JPMethod of (string ConsedNode * E) * ConsedNode<RData [[]] * Ty [[]]>
>     | JPClosure of (string ConsedNode * E) * ConsedNode<RData [[]] * Ty [[]] * 
> Ty>
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### JoinPointCall
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type JoinPointCall = JoinPointKey * TyV [[]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### CodeMacro
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type CodeMacro =
>     | CMText of string
>     | CMTerm of Data
>     | CMType of Ty
>     | CMTypeLit of Ty
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TypedBind
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type TypedBind =
>     | TyLet of Data * Trace * TypedOp
>     | TyLocalReturnOp of Trace * TypedOp * Data
>     | TyLocalReturnData of Data * Trace
> 
> and TypedOp = 
>     | TyMacro of CodeMacro list
>     | TyOp of Op * Data list
>     | TyUnionBox of string * Data * Union
>     | TyUnionUnbox of TyV list * Union * Map<string,Data list * TypedBind [[]]> 
> * TypedBind [[]] option
>     | TyIntSwitch of TyV * TypedBind [[]] [[]] * TypedBind [[]]
>     | TyToLayout of Data * Ty
>     | TyLayoutIndexAll of TyV
>     | TyLayoutIndexByKey of TyV * string
>     | TyLayoutMutableSet of TyV * string list * Data
>     | TyFailwith of Ty * Data
>     | TyApply of TyV * Data
>     | TyConv of Ty * Data
>     | TySizeOf of Ty
>     | TyArrayLiteral of Ty * Data list
>     | TyArrayCreate of Ty * Data
>     | TyArrayLength of Ty * Data
>     | TyStringLength of Ty * Data
>     | TyIf of cond: Data * tr: TypedBind [[]] * fl: TypedBind [[]]
>     | TyWhile of cond: JoinPointCall * TypedBind [[]]
>     | TyDo of TypedBind [[]]
>     | TyIndent of TypedBind [[]]
>     | TyJoinPoint of JoinPointCall
>     | TyBackend of (string ConsedNode * E) * ConsedNode<RData [[]] * Ty [[]]> * 
> Range
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### UnionRewrite
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type UnionRewrite = UnionData of string * Data | UnionBlockers of string Set
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### LangEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type LangEnv = {
>     trace : Trace
>     seq : ResizeArray<TypedBind>
>     cse : Dictionary<TypedOp, Data> list
>     unions : Map<TyV, UnionRewrite>
>     i : int ref
>     env_global_type : Ty [[]]
>     env_global_term : Data [[]]
>     env_stack_type : Ty [[]]
>     env_stack_term : Data [[]]
>     backend : string ConsedNode
>     globals : ResizeArray<string>
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### PartEvalTopEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type PartEvalTopEnv = {
>     prototypes_instances : Dictionary<GlobalId * GlobalId, E>
>     nominals : Dictionary<GlobalId, Nominal>
>     backend : string
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### PartEvalTypeError
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> exception PartEvalTypeError of Trace * string
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### raise_type_error
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let raise_type_error (d: LangEnv) x = raise (PartEvalTypeError(d.trace,x))
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### data_to_rdata
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let data_to_rdata (d: LangEnv) (hc : HashConsTable) call_data =
>     let hc x = hc.Add x
>     let m = Dictionary(HashIdentity.Reference)
>     let call_args = ResizeArray()
>     let rec f x =
>         memoize m (function
>             | DPair(a,b) -> RePair(hc(f a, f b))
>             | DSymbol a -> ReSymbol a
>             | DFunction(a,_,b,c,_,_) -> ReFunction(hc(a,Array.map f b,c))
>             | DForall(a,b,c,_,_) -> ReFunction(hc(a,Array.map f b,c))
>             | DExists(a,b) -> ReExists(hc(a,f b))
>             | DRecord l -> ReRecord(hc(Map.map (fun _ -> f) l))
>             | DV(L(_,ty) as t) -> call_args.Add t; ReV(hc 
> (call_args.Count-1,ty))
>             | DLit a -> ReLit a
>             | DTLit a -> ReTLit a
>             | DUnion(a,b) -> ReUnion(hc(f a,b))
>             | DNominal(a,b) -> ReNominal(hc(f a,b))
>             | DB -> ReB
>             | DHashMap(x,is_writable) when is_writable.Value = false -> x |> 
> Seq.map (fun kv -> f kv.Key, f kv.Value) |> Seq.toArray |> hc |> ReHashMap
>             | DHashMap _ -> raise_type_error d "The mutable compile time HashMap
> needs to be made immutable before it can be passed through a join point."
>             | DHashSet _ -> raise_type_error d "The mutable compile-time HashSet
> cannot be passed through join points."
>             ) x
>     let x = Array.map f call_data
>     call_args.ToArray(),x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### rename_global_term
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // This rename is a consideration for when I do incremental compilation.
> // In order to allow them to be cleaned by the garbage collection, I do not want
> the 
> // references to unused nodes to end up in anywhere other than join point keys 
> (which will be weak).
> let rename_global_term (s : LangEnv) =
>     let m = Dictionary(HashIdentity.Reference)
>     let rec f x =
>         memoize m (function
>             | DPair(a,b) -> DPair(f a, f b)
>             | DForall(body,a,b,c,d) -> DForall(body,Array.map f a,b,c,d)
>             | DFunction(body,annot,a,b,c,d) -> DFunction(body,annot,Array.map f 
> a,b,c,d)
>             | DExists(annot,a) -> DExists(annot, f a)
>             | DRecord l -> DRecord(Map.map (fun _ -> f) l)
>             | DV(L(_,ty)) -> let x = DV(L(s.i.Value,ty)) in s.i.Value <- 
> s.i.Value + 1; x
>             | DUnion(a,b) -> DUnion(f a,b)
>             | DNominal(a,b) -> DNominal(f a,b)
>             | DSymbol _ | DLit _ | DTLit _ | DB as x -> x
>             | DHashMap(x,is_writable) when is_writable.Value = false -> 
>                 let q = OrderedDictionary(HashIdentity.Reference)
>                 x |> Seq.iter (fun kv -> q.Add(f kv.Key, f kv.Value))
>                 DHashMap(q,is_writable)
>             | DHashMap _ -> raise_type_error s "The mutable compile time HashMap
> needs to be made immutable before it can be renamed."
>             | DHashSet _ -> raise_type_error s "The mutable compile-time 
> HashSets cannot be renamed."
>             ) x
>     {s with env_global_term = Array.map f s.env_global_term}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### data_free_vars
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let data_free_vars call_data =
>     let m = HashSet(HashIdentity.Reference)
>     let free_vars = ResizeArray()
>     let rec f x =
>         if m.Add x then
>             match x with
>             | DPair(a,b) -> f a; f b
>             | DForall(_,a,_,_,_) | DFunction(_,_,a,_,_,_) -> Array.iter f a
>             | DRecord l -> Map.iter (fun _ -> f) l
>             | DV(L _ as t) -> free_vars.Add t
>             | DExists(_,a) | DUnion(a,_) | DNominal(a,_) -> f a
>             | DSymbol _ | DLit _ | DTLit _ | DB -> ()
>             | DHashSet x -> Seq.iter f x
>             | DHashMap(x,_) -> x |> Seq.iter (fun kv -> f kv.Value)
>     f call_data
>     free_vars.ToArray()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### data_free_vars_replace
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let data_free_vars_replace s (d : Dictionary<TyV,TyV>) (x : Data) =
>     let m = Dictionary(HashIdentity.Reference)
>     let rec f x =
>         memoize m (function
>             | DPair(a,b) -> DPair(f a, f b)
>             | DForall(body,a,b,c,d) -> DForall(body,Array.map f a,b,c,d)
>             | DFunction(body,annot,a,b,c,d) -> DFunction(body,annot,Array.map f 
> a,b,c,d)
>             | DExists(annot,a) -> DExists(annot, f a)
>             | DRecord l -> DRecord(Map.map (fun _ -> f) l)
>             | DV(tyv) -> DV(d[[tyv]])
>             | DUnion(a,b) -> DUnion(f a,b)
>             | DNominal(a,b) -> DNominal(f a,b)
>             | DSymbol _ | DLit _ | DTLit _ | DB as x -> x
>             | DHashMap(x,is_writable) -> 
>                 let q = OrderedDictionary(HashIdentity.Reference)
>                 x |> Seq.iter (fun kv -> q.Add(f kv.Key, f kv.Value))
>                 DHashMap(q,ref is_writable.Value)
>             | DHashSet _ -> 
>                 raise_type_error s "The mutable compile-time HashSets cannot 
> have their free vars replaced."
>             ) x
>     f x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### (|C|)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline (|C|) (x : _ ConsedNode) = x.node
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### (|C'|)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline (|C'|) (x : _ ConsedNode) = x.node, x.tag
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### rdata_free_vars
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rdata_free_vars call_data =
>     let m = HashSet(HashIdentity.Structural)
>     let free_vars = ResizeArray()
>     let rec g = function // Note: Using the same scheme as in `data_free_vars` 
> would give wrong results here. Comparing the tags instead is a necessity.
>         | RePair(C'((a,b),tag)) -> if m.Add tag then g a; g b
>         | ReForall(C'((_,a,_),tag)) | ReFunction(C'((_,a,_),tag)) -> if m.Add 
> tag then Array.iter g a
>         | ReRecord(C'(l,tag)) -> if m.Add tag then Map.iter (fun _ -> g) l
>         | ReV(C'((a,b),tag)) -> if m.Add tag then free_vars.Add(L(a,b))
>         | ReExists(C'((_,a),tag)) | ReUnion(C'((a,_),tag)) | 
> ReNominal(C'((a,_),tag)) -> if m.Add tag then g a
>         | ReHashMap(C'(x,tag)) -> if m.Add tag then Array.iter (fun (k,v) -> g 
> k; g v) x
>         | ReSymbol _ | ReLit _ | ReTLit _ | ReB -> ()
>     Array.iter g call_data
>     free_vars.ToArray()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### data_term_vars'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let data_term_vars' call_data =
>     let term_vars = ResizeArray(64)
>     let rec f = function
>         | DPair(a,b) -> f a; f b
>         | DForall(_,a,_,_,_) | DFunction(_,_,a,_,_,_) -> Array.iter f a
>         | DRecord l -> Map.iter (fun _ -> f) l
>         | DLit _ | DV _ as x -> term_vars.Add(x)
>         | DExists(_,a) | DUnion(a,_) | DNominal(a,_) -> f a
>         | DSymbol _ | DTLit _ | DB -> ()
>         | DHashSet x -> Seq.iter f x
>         | DHashMap(x,_) -> x |> Seq.iter (fun kv -> f kv.Value)
>     f call_data
>     term_vars.ToArray()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### data_nominals
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let data_nominals call_data =
>     let term_vars = ResizeArray(64)
>     let rec f = function
>         | DPair(a,b) -> f a; f b
>         | DForall(_,a,_,_,_) | DFunction(_,_,a,_,_,_) -> Array.iter f a
>         | DRecord l -> Map.iter (fun _ -> f) l
>         | DLit _ | DV _ 
>         | DExists _ | DUnion _ | DNominal _ as x -> term_vars.Add(x)
>         | DSymbol _ | DTLit _ | DB -> ()
>         | DHashSet x -> Seq.iter f x
>         | DHashMap(x,_) -> x |> Seq.iter (fun kv -> f kv.Value)
>     f call_data
>     term_vars.ToArray()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### data_term_vars
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let data_term_vars call_data =
>     let term_vars = ResizeArray(64)
>     let rec f = function
>         | DPair(a,b) -> f a; f b
>         | DForall(_,a,_,_,_) | DFunction(_,_,a,_,_,_) -> Array.iter f a
>         | DRecord l -> Map.iter (fun _ -> f) l
>         | DLit x -> term_vars.Add(WLit x)
>         | DV x -> term_vars.Add(WV x)
>         | DExists(_,a) | DUnion(a,_) | DNominal(a,_) -> f a
>         | DSymbol _ | DTLit _ | DB -> ()
>         | DHashSet x -> Seq.iter f x
>         | DHashMap(x,_) -> x |> Seq.iter (fun kv -> f kv.Value)
>     f call_data
>     term_vars.ToArray()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### lit_to_primitive_type
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let lit_to_primitive_type = function
>     | LitUInt8 _ -> UInt8T
>     | LitUInt16 _ -> UInt16T
>     | LitUInt32 _ -> UInt32T
>     | LitUInt64 _ -> UInt64T
>     | LitInt8 _ -> Int8T
>     | LitInt16 _ -> Int16T
>     | LitInt32 _ -> Int32T
>     | LitInt64 _ -> Int64T
>     | LitFloat32 _ -> Float32T
>     | LitFloat64 _ -> Float64T   
>     | LitBool _ -> BoolT
>     | LitString _ -> StringT
>     | LitChar _ -> CharT
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### lit_to_ty
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let lit_to_ty x = lit_to_primitive_type x |> YPrim
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_tco_compatible
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_tco_compatible = function 
>     | TyApply _ | TyJoinPoint _ | TyArrayLiteral _ | TyUnionBox _ | TyToLayout _
>     | TyIf _ | TyIntSwitch _ | TyUnionUnbox _ | TyArrayCreate _ | TyFailwith _ 
> -> true 
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### seq_apply
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let seq_apply (d: LangEnv) end_dat =
>     let inline end_ () = d.seq.Add(TyLocalReturnData(end_dat,d.trace))
>     if d.seq.Count > 0 then
>         match d.seq.[[d.seq.Count-1]] with
>         | TyLet(end_dat',a,b) when 
> System.Object.ReferenceEquals(end_dat,end_dat') && is_tco_compatible b -> 
> d.seq.[[d.seq.Count-1]] <- TyLocalReturnOp(a,b,end_dat')
>         | _ -> end_()
>     else end_()
>     d.seq.ToArray()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### cse_tryfind
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let cse_tryfind (d: LangEnv) key =
>     d.cse |> List.tryPick (fun x ->
>         match x.TryGetValue key with
>         | true, v -> Some v
>         | _ -> None
>         )
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### cse_add
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let cse_add (d: LangEnv) k v = (List.head d.cse).Add(k,v)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### show_ty
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let show_ty x =
>     let rec f prec x =
>         let p = p prec
>         match x with
>         | YVoid -> "void"
>         | YB -> "()"
>         | YLit x -> show_lit x
>         | YPair(a,b) -> p 25 (sprintf "%s * %s" (f 25 a) (f 24 b))
>         | YSymbol x -> sprintf ".%s" x
>         | YTypeFunction _ -> p 0 (sprintf "? => ?")
>         | YForall -> p 0 (sprintf "forall ?. ?")
>         | YExists -> p 0 (sprintf "exists ?. ?")
>         | YRecord l -> sprintf "{%s}" (l |> Map.toList |> List.map (fun 
> ((_,k),v) -> sprintf "%s : %s" k (f -1 v)) |> String.concat "; ")
>         | YUnion l -> sprintf "{%s}" (l.Item.cases |> Map.toList |> List.map 
> (fun ((_,k),v) -> sprintf "%s : %s" k (f -1 v)) |> String.concat " | ")
>         | YPrim x -> show_primt x
>         | YArray a -> p 30 (sprintf "array_base %s" (f 30 a))
>         | YFun(a,b,FT_Vanilla) -> p 20 (sprintf "%s -> %s" (f 20 a) (f 19 b))
>         | YFun(a,b,FT_Pointer) -> p 20 (sprintf "fptr (%s -> %s)" (f 20 a) (f 19
> b))
>         | YFun(a,b,FT_Closure) -> p 20 (sprintf "closure (%s -> %s)" (f 20 a) (f
> 19 b))
>         | YMacro a -> p 30 (List.map (function TypeLit a | Type a -> f -1 a | 
> Text a -> a) a |> String.concat "")
>         | YApply(a,b) -> p 30 (sprintf "%s %s" (f 29 a) (f 30 b))
>         | YLayout(a,b) -> p 30 (sprintf "%s %s" (show_layout_type b) (f 30 a))
>         | YNominal x -> x.node.name
>         | YMetavar _ -> "?"
>     f -1 x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### show_data
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let show_data x =
>     let rec f prec x =
>         let p = p prec
>         match x with
>         | DB -> "()"
>         | DPair(a,b) -> p 25 (sprintf "%s, %s" (f 25 a) (f 24 b))
>         | DSymbol x -> sprintf ".%s" x
>         | DFunction _ -> p 20 "? -> ?"
>         | DForall _ -> p 0 "forall ?. ?"
>         | DExists(a,b) ->
>             let a = Array.map (show_ty >> sprintf "(%s)") a |> String.concat " "
>             p 0 $"exists {a}. %s{f 0 b}"
>         | DRecord l -> sprintf "{%s}" (l |> Map.toList |> List.map (fun 
> ((_,k),v) -> sprintf "%s : %s" k (f -1 v)) |> String.concat "; ")
>         | DLit a -> show_lit a
>         | DTLit a -> $"`{show_lit a}"
>         | DV(L(_,ty)) -> show_ty ty
>         | DUnion(a,_) -> f prec a
>         | DNominal(a,b) -> p 0 (sprintf "%s : %s" (f 0 a) (show_ty b))
>         | DHashSet _ -> p 0 "<HashSet>"
>         | DHashMap _ -> p 0 "<HashMap>"
> 
>     f -1 x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_lit
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_lit = function
>     | DLit _ -> true
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_numeric
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_numeric = function
>     | YPrim (UInt8T | UInt16T | UInt32T | UInt64T 
>         | Int8T | Int16T | Int32T | Int64T 
>         | Float32T | Float64T) -> true
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_signed_numeric
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_signed_numeric = function
>     | YPrim (Int8T | Int16T | Int32T | Int64T | Float32T | Float64T) -> true
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_non_float_primitive
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_non_float_primitive = function
>     | YPrim (Float32T | Float64T) -> false
>     | YPrim _ -> true
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_primitive
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_primitive = function
>     | YPrim _ -> true
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_string
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_string = function
>     | YPrim StringT -> true
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_char
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_char = function
>     | YPrim CharT -> true
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_float
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_float = function
>     | YPrim (Float32T | Float64T) -> true
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_bool
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_bool = function
>     | YPrim BoolT -> true
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_int
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_int = function
>     | YPrim (UInt32T | UInt64T | Int32T | Int64T) -> true
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_int
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_any_int = function
>     | YPrim (UInt8T | UInt16T | UInt32T | UInt64T 
>         | Int8T | Int16T | Int32T | Int64T) -> true
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_int64
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_int64 = function
>     | YPrim Int64T -> true
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_int32
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_int32 = function
>     | YPrim Int32T -> true
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_lit_zero
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_lit_zero = function
>     | DLit a ->
>         match a with
>         | LitInt8 0y | LitInt16 0s | LitInt32 0 | LitInt64 0L
>         | LitUInt8 0uy | LitUInt16 0us | LitUInt32 0u | LitUInt64 0UL
>         | LitFloat32 0.0f | LitFloat64 0.0 -> true
>         | _ -> false
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_lit_one
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_lit_one = function
>     | DLit a ->
>         match a with
>         | LitInt8 1y | LitInt16 1s | LitInt32 1 | LitInt64 1L
>         | LitUInt8 1uy | LitUInt16 1us | LitUInt32 1u | LitUInt64 1UL
>         | LitFloat32 1.0f | LitFloat64 1.0 -> true
>         | _ -> false
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_int_lit_zero
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_int_lit_zero = function
>     | DLit a ->
>         match a with
>         | LitInt8 0y | LitInt16 0s | LitInt32 0 | LitInt64 0L
>         | LitUInt8 0uy | LitUInt16 0us | LitUInt32 0u | LitUInt64 0UL -> true
>         | _ -> false
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_int_lit_one
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_int_lit_one = function
>     | DLit a ->
>         match a with
>         | LitInt8 1y | LitInt16 1s | LitInt32 1 | LitInt64 1L
>         | LitUInt8 1uy | LitUInt16 1us | LitUInt32 1u | LitUInt64 1UL -> true
>         | _ -> false
>     | _ -> false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### lit_zero
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let lit_zero = function
>     | YPrim Int8T -> LitInt8 0y
>     | YPrim Int16T -> LitInt16 0s
>     | YPrim Int32T -> LitInt32 0
>     | YPrim Int64T -> LitInt64 0L
>     | YPrim UInt8T -> LitUInt8 0uy
>     | YPrim UInt16T -> LitUInt16 0us
>     | YPrim UInt32T -> LitUInt32 0u
>     | YPrim UInt64T -> LitUInt64 0UL
>     | YPrim Float32T -> LitFloat32 0.0f
>     | YPrim Float64T -> LitFloat64 0.0
>     | _ -> failwith "Compiler error: Expected a numeric value."
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### vt
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let vt s i = if i < s.env_global_type.Length then s.env_global_type.[[i]] else 
> s.env_stack_type.[[i-s.env_global_type.Length]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### v
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let v s i = if i < s.env_global_term.Length then s.env_global_term.[[i]] else 
> s.env_stack_term.[[i-s.env_global_term.Length]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_trace
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_trace (s : LangEnv) r = {s with trace = r :: s.trace}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### store_term
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let store_term (s : LangEnv) i v = 
> s.env_stack_term.[[i-s.env_global_term.Length]] <- v
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### store_ty
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let store_ty (s : LangEnv) i v = s.env_stack_type.[[i-s.env_global_type.Length]]
> <- v
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_unify
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_unify s x =
>     let is_metavar = HashSet()
>     let rec f = function
>         | YB, YB | YExists, YExists | YForall, YForall -> true
>         | YFun(a,b,t), YFun(a',b',t') -> t = t' && f (a,a') && f (b,b')
>         | YApply(a,b), YApply(a',b')
>         | YPair(a,b), YPair(a',b') -> f (a,a') && f (b,b')
>         | YSymbol a, YSymbol b -> a = b
>         | YTypeFunction(a,b,c,d), YTypeFunction(a',b',c',d') -> a = a' && 
> Array.forall2 (fun b b' -> f (b,b')) b b' && c = c' && d = d'
>         | YRecord a, YRecord a' -> Map.forall (fun k v' -> match Map.tryFind k a
> with Some v -> f (v, v') | None -> false) a'
>         | YPrim a, YPrim a' -> a = a'
>         | YArray a, YArray a' -> f (a, a')
>         | YMacro a, YMacro a' ->
>             List.forall2 (fun a a' ->
>                 match a, a' with
>                 | Text a, Text a' -> a = a'
>                 | Type a, Type a' -> f (a,a')
>                 | _ -> false
>                 ) a a'
>         | YNominal a, YNominal a' -> a = a'
>         | YLayout(a,b), YLayout(a',b') -> f (a,a') && b = b'
>         | YUnion a, YUnion a' -> a = a'
>         | YLit a, YLit b -> a = b
>         | a, YMetavar i -> (is_metavar.Add i && (store_ty s i a; true)) || a = 
> vt s i
>         | _ -> false
>     f x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### PartEvalResult
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type PartEvalResult = {
>     join_point_method : Dictionary<string ConsedNode * 
> E,Dictionary<ConsedNode<RData [[]] * Ty [[]]>,TypedBind [[]] option * Ty option 
> * string option> * HashConsTable>
>     join_point_closure : Dictionary<string ConsedNode * 
> E,Dictionary<ConsedNode<RData [[]] * Ty [[]] * Ty>,(Data * TypedBind [[]]) 
> option> * HashConsTable>
>     ty_to_data : Ty -> Data
>     nominal_apply : Ty -> Ty
>     globals : ResizeArray<string>
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### peval
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let peval (env : PartEvalTopEnv) (x : E) =
>     let join_point_method = Dictionary(HashIdentity.Structural)
>     let join_point_closure = Dictionary(HashIdentity.Structural)
>     let join_point_type = Dictionary(HashIdentity.Structural)
>     let backend_strings = HashConsTable()
> 
>     let rec ty_to_data s x =
>         let f = ty_to_data s
>         match x with
>         | YVoid -> raise_type_error s "Compiler error: Cannot construct an 
> instance of a void type."
>         | YB -> DB
>         | YPair(a,b) -> DPair(f a, f b) 
>         | YSymbol a -> DSymbol a
>         | YRecord l -> DRecord(Map.map (fun _ -> f) l)
>         | YForall | YExists | YUnion _ | YLayout _ | YPrim _ | YArray _ | YFun _
> | YMacro _ as x -> let r = DV(L(s.i.Value,x)) in s.i.Value <- s.i.Value + 1; r
>         | YNominal _ | YApply _ as a -> DNominal(nominal_type_apply s a |> 
> ty_to_data s, a)
>         | YLit x -> DTLit x
>         | YTypeFunction _ -> raise_type_error s "Cannot turn a type function 
> into a runtime variable."
>         | YMetavar _ -> raise_type_error s "Compiler error: Cannot turn a 
> metavar into a runtime variable."
>     and assert_ty_lit s = function 
>         | YSymbol _ | YLit _ as x -> x
>         | YNominal _ | YApply _ as x -> nominal_type_apply s x |> assert_ty_lit 
> s
>         | x -> raise_type_error s <| sprintf "Expected a type literal or a 
> symbol.\nGot: %s" (show_ty x)
>     and push_typedop_no_rewrite d op ret_ty =
>         let ret = ty_to_data d ret_ty
>         d.seq.Add(TyLet(ret,d.trace,op))
>         ret
>     and push_typedop (d: LangEnv) key ret_ty =
>         match cse_tryfind d key with
>         | Some x -> x
>         | None ->
>             let x = ty_to_data d ret_ty
>             d.seq.Add(TyLet(x,d.trace,key))
>             cse_add d key x
>             x
>     and push_op_no_rewrite' (d: LangEnv) op l ret_ty = push_typedop_no_rewrite d
> (TyOp(op,l)) ret_ty
>     and push_op_no_rewrite d op a ret_ty = push_op_no_rewrite' d op [[a]] ret_ty
>     and push_binop_no_rewrite d op (a,b) ret_ty = push_op_no_rewrite' d op 
> [[a;b]] ret_ty
>     and push_triop_no_rewrite d op (a,b,c) ret_ty = push_op_no_rewrite' d op 
> [[a;b;c]] ret_ty
> 
>     and push_op' d op a ret_ty = push_typedop d (TyOp(op, a)) ret_ty
>     and push_op d op a ret_ty = push_op' d op [[a]] ret_ty
>     and push_binop d op (a,b) ret_ty = push_op' d op [[a;b]] ret_ty
>     and push_triop d op (a,b,c) ret_ty = push_op' d op [[a;b;c]] ret_ty
>     and closure_env s (body,annot,gl_term,gl_ty,sz_term,sz_ty) = {
>         trace = s.trace
>         seq = ResizeArray()
>         cse = [[Dictionary(HashIdentity.Structural)]]
>         unions = Map.empty
>         i = ref 0
>         env_global_type = gl_ty
>         env_global_term = gl_term
>         env_stack_type = Array.zeroCreate<_> sz_ty
>         env_stack_term = Array.zeroCreate<_> sz_term
>         backend = s.backend
>         globals = s.globals
>         }
>     and closure_convert s (body,annot,gl_term,gl_ty,sz_term,sz_ty as args) =
>         let join_point_key, call_args, fun_ty =
>             let s : LangEnv = closure_env s args
>             let domain, range, fun_ty = 
>                 match ty s annot with
>                 | YFun(a,b,_) as x -> a,b,x
>                 | annot -> raise_type_error s <| sprintf "Expected a function 
> type in annotation during closure conversion. Got: %s" (show_ty annot)
>             let dict, hc_table = memoize join_point_closure (fun _ -> 
> Dictionary(HashIdentity.Structural), HashConsTable()) (s.backend, body)
>             let call_args, env_global_value = data_to_rdata s hc_table gl_term
>             let join_point_key = hc_table.Add(env_global_value, 
> s.env_global_type, fun_ty)
> 
>             match fun_ty with
>             | YFun(_,_,FT_Pointer) when call_args.Length <> 0 -> 
> raise_type_error s "Function pointers shouldn't have any runtime free variables 
> in their environment."
>             | _ -> ()
> 
>             match dict.TryGetValue(join_point_key) with
>             | true, _ -> ()
>             | false, _ ->
>                 let s = rename_global_term s
>                 let domain_data = ty_to_data s domain
>                 s.env_stack_term.[[0]] <- domain_data
>                 dict.[[join_point_key]] <- None
>                 let seq,ty = term_scope'' s body (Some fun_ty)
>                 dict.[[join_point_key]] <- Some(domain_data, seq)
>                 let ty =
>                     match ty with
>                     | YRecord a ->
>                         a
>                         |> Seq.map (fun (KeyValue ((i, k), v)) ->
>                             let i =
>                                 match range with
>                                 | YRecord a ->
>                                     a |> Map.tryPick (fun (i', k') _ -> if k = 
> k' then Some i' else None)
>                                 | _ -> None
>                                 |> Option.defaultValue i
>                             (i, k), v
>                         )
>                         |> Map.ofSeq
>                         |> YRecord
>                     | _ -> ty
>                 if range <> ty then raise_type_error s <| sprintf "The 
> annotation of the function does not match its body's type.\nGot: %s\nExpected: 
> %s" (show_ty ty) (show_ty range)
>             join_point_key, call_args, fun_ty
>         push_typedop s 
> (TyJoinPoint(JPClosure((s.backend,body),join_point_key),call_args)) fun_ty, 
> fun_ty
>     and data_to_ty s x =
>         let m = Dictionary(HashIdentity.Reference)
>         let rec f x =
>             memoize m (function
>                 | DPair(a,b) -> YPair(f a, f b)
>                 | DSymbol a -> YSymbol a
>                 | DRecord l -> YRecord(Map.map (fun _ -> f) l)
>                 | DUnion(_,a) -> YUnion a
>                 | DNominal(_,a) | DV(L(_,a)) -> a
>                 | DLit x -> lit_to_ty x
>                 | DTLit x -> YLit x
>                 | DB -> YB
>                 | DFunction(body,Some annot,gl_term,gl_ty,sz_term,sz_ty) -> ty 
> (closure_env s (body,annot,gl_term,gl_ty,sz_term,sz_ty)) annot
>                 | DExists _ -> YExists
>                 | DFunction(_,None,_,_,_,_) -> raise_type_error s "Cannot 
> convert a function that is not annotated into a type."
>                 | DForall _ -> YForall
>                 | DHashSet _ -> raise_type_error s "Cannot convert a compile 
> time HashSet into a type."
>                 | DHashMap _ -> raise_type_error s "Cannot convert a compile 
> time HashMap into a type."
>                 ) x
>         f x
>     and dyn do_lit s x =
>         let m = Dictionary(HashIdentity.Reference)
>         let mutable dirty = false
>         let rec f x =
>             memoize m (function
>                 | DPair(a,b) -> DPair(f a, f b)
>                 | DB | DV _ | DTLit _ | DSymbol _ as a -> a
>                 | DRecord l -> DRecord(Map.map (fun _ -> f) l)
>                 | DNominal(DUnion(DPair(DSymbol k,v),b),b') -> dirty <- true; 
> push_typedop_no_rewrite s (TyUnionBox(k,f v,b)) b'
>                 | DUnion _ -> raise_type_error s "Compiler error: Malformed 
> union"
>                 | DNominal(a,b) -> DNominal(f a,b)
>                 | DLit (LitString _ as v) -> dirty <- true; push_op s Dyn x 
> (lit_to_ty v)
>                 | DLit v as x -> if do_lit then dirty <- true; 
> push_op_no_rewrite s Dyn x (lit_to_ty v) else x
>                 | DFunction(body,Some annot,term',ty',sz_term,sz_ty) -> dirty <-
> true; closure_convert s (body,annot,term',ty',sz_term,sz_ty) |> fst
>                 | DFunction(_,None,_,_,_,_) -> raise_type_error s "Cannot 
> convert a function that is not annotated into a runtime variable."
>                 | DExists _ -> raise_type_error s "Cannot dyn an existential 
> into a runtime var."
>                 | DForall _ -> raise_type_error s "Cannot dyn a forall into a 
> runtime var."
>                 | DHashSet _ -> raise_type_error s "Cannot dyn a compile time 
> HashSet into a runtime var."
>                 | DHashMap _ -> raise_type_error s "Cannot dyn a compile time 
> HashMap into a runtime var."
>                 ) x
>         let v = f x
>         if dirty then v else x
>     and term_real_nominal s x =
>         let s = {s with seq=ResizeArray(); 
> cse=Dictionary(HashIdentity.Structural) :: s.cse}
>         term s x |> data_to_ty s
>     and term_scope'' s x fun_ty =
>         let x = term s x |> dyn false s
>         let x =
>             match x with
>             | DRecord c ->
>                 c
>                 |> Seq.map (fun (KeyValue ((i, k), v)) ->
>                     let i =
>                         match fun_ty with
>                         | Some (YFun (YNominal _, YRecord a, _) | YRecord a) ->
>                             a |> Map.tryPick (fun (i', k') _ -> if k = k' then 
> Some i' else None)
>                         | _ -> None
>                         |> Option.defaultValue i
>                     (i, k), v
>                 )
>                 |> Map.ofSeq
>                 |> DRecord
>             | _ -> x
>         let x_ty = data_to_ty s x
>         seq_apply s x, x_ty
>     and term_scope' s cse x = term_scope'' {s with seq=ResizeArray(); cse=cse ::
> s.cse} x None
>     and term_scope s x = term_scope' s (Dictionary(HashIdentity.Structural)) x
>     and nominal_type_apply s x =
>         match x with
>         | YApply(a,b) ->
>             match nominal_type_apply s a with
>             | YTypeFunction(body,gl_ty,sz_term,sz_ty) ->
>                 let s =
>                     {s with
>                         env_global_type = gl_ty
>                         env_global_term = [[||]]
>                         env_stack_type = Array.zeroCreate<_> sz_ty
>                         env_stack_term = Array.zeroCreate<_> sz_term
>                         }
>                 s.env_stack_type.[[0]] <- b
>                 ty s body
>             | a -> raise_type_error s <| sprintf "Expected a type level function
> in nominal application.\nGot: %s" (show_ty a)
>         | YNominal a -> ty s a.node.body
>         | _ -> raise_type_error s <| sprintf "Expected a nominal or a deferred 
> type apply.\nGot: %s" (show_ty x)
>     and ty s x =
>         match x with
>         | TPatternRef _ -> failwith "Compiler error: TPatternRef should have 
> been eliminated during the prepass."
>         | TForall _ | TArrow _ | TJoinPoint _ -> failwith "Compiler error: 
> Should have been transformed during the prepass."
>         | TMetaV i -> YMetavar i
>         | TArrow'(scope,i,body) -> 
>             assert (i = scope.ty.free_vars.Length)
>             YTypeFunction(body,Array.map (vt s) 
> scope.ty.free_vars,scope.term.stack_size,scope.ty.stack_size)
>         | TForall' _ -> YForall
>         | TExists -> YExists
>         | TJoinPoint'(r,scope,body) ->
>             let env_global_type = Array.map (vt s) scope.ty.free_vars
>             let env_global_term = Array.map (v s) scope.term.free_vars
> 
>             let dict, hc_table = memoize join_point_type (fun _ -> 
> Dictionary(HashIdentity.Structural), HashConsTable()) body
>             let join_point_key = hc_table.Add(env_global_type)
>             match dict.TryGetValue(join_point_key) with
>             | true, Some ret_ty -> ret_ty
>             | true, None -> raise_type_error (add_trace s r) "Type join points 
> must not be unboxed during their definition."
>             | false, _ ->
>                 assert (0 = scope.term.free_vars.Length)
>                 let s : LangEnv = {
>                     trace = r :: s.trace
>                     seq = ResizeArray()
>                     cse = [[Dictionary(HashIdentity.Structural)]]
>                     unions = Map.empty
>                     i = ref 0
>                     env_global_type = env_global_type
>                     env_global_term = env_global_term
>                     env_stack_type = Array.zeroCreate<_> scope.ty.stack_size
>                     env_stack_term = Array.zeroCreate<_> scope.term.stack_size
>                     backend = s.backend
>                     globals = s.globals
>                     }
>                 let s = rename_global_term s
>                 dict.[[join_point_key]] <- None
>                 let ret_ty = ty s body
>                 dict.[[join_point_key]] <- Some ret_ty
>                 ret_ty
>         | TB _ -> YB
>         | TLit(_,x) -> YLit x
>         | TV i -> vt s i
>         | TPair(_,a,b) -> YPair(ty s a, ty s b)
>         | TFun(a,b,t) -> YFun(ty s a, ty s b,t)
>         | TModule a ->
>             YRecord(
>                 a
>                 |> Seq.mapi (fun i (KeyValue (k, v)) -> (i, k), (v |> ty s))
>                 |> Map.ofSeq
>             )
>         | TRecord(_,a) -> YRecord(Map.map (fun _ -> ty s) a)
>         | TUnion(_,(a,b)) ->
>             let tags = Dictionary()
>             let tag_cases = Array.zeroCreate (Map.count a)
>             let mutable is_degenerate = true
>             let cases =
>                 Map.fold (fun cases (i,k) v ->
>                     let v = Option.defaultValue (fst v) (snd v) // If the union 
> case is generalized, use the specialized destructor instead of the constructor 
> to evaluate the type.
>                     match ty s v with
>                     | YVoid -> cases
>                     | v ->
>                         is_degenerate <- is_degenerate && match v with YB -> 
> true | _ -> false
>                         tags.[[k]] <- i
>                         tag_cases.[[i]] <- (k,v)
>                         Map.add (i,k) v cases
>                     ) Map.empty a
>             YUnion(H {|cases=cases; layout=b; tags=tags; tag_cases=tag_cases; 
> is_degenerate=is_degenerate|})
>         | TTypecase(r,a,b) ->
>             let s = add_trace s r
>             let a = ty s a
>             let rec loop = function
>                 | (a',b) :: rest -> if is_unify s (a,ty s a') then Some(ty s b) 
> else loop rest
>                 | [[]] -> None
>             match loop b with
>             | Some r -> r
>             | None -> YVoid
>         | TSymbol(_,a) -> YSymbol a
>         | TApply(r,a,b) ->
>             let s = add_trace s r
>             match ty s a with
>             | YRecord a ->
>                 match ty s b with
>                 | YSymbol b ->
>                     match a |> Map.tryPick (fun (_, k) v -> if k = b then Some v
> else None) with
>                     | Some x -> x
>                     | None -> raise_type_error s <| sprintf  "Cannot find key %s
> in the record." b
>                 | b -> raise_type_error s <| sprintf "Expected a symbol in the 
> record application.\nGot: %s" (show_ty b)
>             | YMetavar _ | YNominal _ | YApply _ as a -> YApply(a,ty s b)
>             | YTypeFunction(body,gl_ty,sz_term,sz_ty) -> 
>                 let b = ty s b
>                 let s = 
>                     {s with 
>                         env_global_type = gl_ty
>                         env_global_term = [[||]]
>                         env_stack_type = Array.zeroCreate<_> sz_ty
>                         env_stack_term = Array.zeroCreate<_> sz_term
>                         }
>                 s.env_stack_type.[[0]] <- b
>                 ty s body
>             | a -> raise_type_error s <| sprintf "Expected a record, nominal or 
> a type function. Or a metavar when in typecase.\nGot: %s" (show_ty a)
>         | TPrim a -> YPrim a
>         | TTerm(_,a) -> term_real_nominal s a
>         | TMacro(r,a) -> 
>             let s = add_trace s r
>             YMacro(a |> List.map (function TMText a -> Text a | TMType a -> 
> Type(ty s a) | TMLitType a -> TypeLit(ty s a |> assert_ty_lit s)))
>         | TNominal i -> YNominal env.nominals.[[i]]
>         | TArray a -> YArray(ty s a)
>         | TLayout(a,b) -> YLayout(ty s a,b)
>     and term (s : LangEnv) x = 
> 
>         let global' =
>             let has_added = HashSet s.globals
>             fun x -> if has_added.Add(x) then s.globals.Add x
> 
>         let term2 s a b = term s a, term s b
>         let term3 s a b c = term s a, term s b, term s c
>         let type_apply s a b =
>             match a with
>             | DForall(body,gl_term,gl_ty,sz_term,sz_ty) ->
>                 let s =
>                     {s with 
>                         env_global_type = gl_ty
>                         env_global_term = gl_term
>                         env_stack_type = Array.zeroCreate<_> sz_ty
>                         env_stack_term = Array.zeroCreate<_> sz_term
>                         }
>                 s.env_stack_type.[[0]] <- b
>                 term s body
>             | DV(L(_,YForall)) -> raise_type_error s <| sprintf "Cannot apply a 
> runtime forall during the partial evaluation stage."
>             | a -> raise_type_error s <| sprintf "Expected a forall.\nGot: %s" 
> (show_data a)
> 
>         let rec apply s = function
>             | DNominal(DUnion _,_), _ -> raise_type_error s "Unions cannot be 
> applied."
>             | DNominal(a,_), b -> apply s (a,b)
>             | DRecord a, DSymbol b ->
>                 match a |> Map.tryPick (fun (_, k) v -> if k = b then Some v 
> else None) with
>                 | Some a -> a
>                 | None -> raise_type_error s <| sprintf "Cannot find the key %s 
> inside the record." b
>             | DFunction(body,_,gl_term,gl_ty,sz_term,sz_ty), b ->
>                 let s : LangEnv = 
>                     {s with
>                         env_global_type = gl_ty
>                         env_global_term = gl_term
>                         env_stack_type = Array.zeroCreate<_> sz_ty
>                         env_stack_term = Array.zeroCreate<_> sz_term
>                         }
>                 s.env_stack_term.[[0]] <- b
>                 term s body
>             | DV(L(_,YForall)), _ -> raise_type_error s "Cannot apply a runtime 
> forall, and not with a term. Foralls have to be known at compile time and 
> applied with a type."
>             | DForall _, _ -> raise_type_error s "Cannot apply a forall with a 
> term."
>             | DV(L(_,YFun(domain,range,t) & a_ty) & a), b ->
>                 let b = dyn false s b
>                 let b_ty = data_to_ty s b
>                 if domain = b_ty then push_typedop_no_rewrite s (TyApply(a,b)) 
> range
>                 else raise_type_error s <| sprintf "Cannot apply an argument of 
> type %s to a function of type: %s" (show_ty b_ty) (show_ty a_ty)
>             | DV(L(i,YLayout(ty,layout)) as tyv) as a, DSymbol b -> 
>                 let key = TyLayoutIndexByKey(tyv, b)
>                 let ret_ty = 
>                     match ty with
>                     | YRecord r ->
>                         match r |> Map.tryPick (fun (i, k) v -> if k = b then 
> Some (i,v) else None) with
>                         | Some (_i, a) -> a
>                         | None -> raise_type_error s <| sprintf "Cannot find the
> key %s inside the layout type's record." b
>                     | _ -> raise_type_error s <| sprintf "Expected a record 
> inside the layout type.\nGot: %s" (show_ty ty)
>                 match layout with
>                 | Heap | StackMutable | HeapMutable -> push_typedop_no_rewrite s
> key ret_ty
>             | DV(L(_,YLayout _)), b -> raise_type_error s <| sprintf "Expected a
> symbol as the index into the layout type.\nGot: %s" (show_data b)
>             | a,_ -> raise_type_error s <| sprintf "Expected a function, 
> closure, record or a layout type possibly inside a nominal.\nGot: %s" (show_data
> a)
> 
>         let rec if_ s cond on_succ on_fail = 
>             match cond with
>             | DLit (LitBool true) -> term s on_succ
>             | DLit (LitBool false) -> term s on_fail
>             | DV(L(_,YPrim BoolT & type_bool)) ->
>                 let lit_tr = DLit(LitBool true)
>                 match cse_tryfind s (TyOp(EQ, [[cond; lit_tr]])) with
>                 | Some cond -> if_ s cond on_succ on_fail
>                 | None ->
>                     let lit_fl = DLit(LitBool false)
>                     let add_rewrite_cases is_true = 
>                         let cse = Dictionary(HashIdentity.Structural)
>                         let tr,fl = if is_true then lit_tr, lit_fl else lit_fl, 
> lit_tr
>                         let inline op op cond' res = 
> cse.Add(TyOp(op,[[cond;cond']]),res); cse.Add(TyOp(op,[[cond';cond]]),res)
>                         op EQ lit_tr tr; op NEQ lit_tr fl; op EQ lit_fl fl; op 
> NEQ lit_fl tr
>                         cse
>                     let tr, type_tr = term_scope' s (add_rewrite_cases true) 
> on_succ
>                     let fl, type_fl = term_scope' s (add_rewrite_cases false) 
> on_fail
>                     let type_tr, type_fl =
>                         match type_tr, type_fl with
>                         | YRecord tr, YRecord fl ->
>                             let tr =
>                                 tr
>                                 |> Seq.map (fun (KeyValue ((i, k), v)) ->
>                                     let i =
>                                         fl |> Map.tryPick (fun (i', k') _ -> if 
> k = k' then Some i' else None)
>                                         |> Option.defaultValue i
>                                     (i, k), v
>                                 )
>                                 |> Map.ofSeq
>                                 |> YRecord
> 
>                             let fl =
>                                 fl
>                                 |> Seq.map (fun (KeyValue ((i, k), v)) ->
>                                     k, ((i, k), v)
>                                 )
>                                 |> Seq.distinctBy fst
>                                 |> Seq.map snd
>                                 |> Map.ofSeq
>                                 |> YRecord
> 
>                             tr, fl
> 
>                         | _ ->
>                             type_tr, type_fl
> 
>                     if type_tr = type_fl then
>                         if tr.Length = 1 && fl.Length = 1 then
>                             match tr.[[0]], fl.[[0]] with
>                             | TyLocalReturnOp(_,tr,_), TyLocalReturnOp(_,fl,_) 
> when tr = fl -> push_typedop_no_rewrite s tr type_tr
>                             | TyLocalReturnData(tr',_), TyLocalReturnData(fl',_)
> -> 
>                                 match tr', fl' with
>                                 | tr, fl when tr = fl -> tr
>                                 | DLit(LitBool false), DLit(LitBool true) -> 
> push_binop s EQ (cond,lit_fl) type_bool
>                                 | DLit(LitBool false), fl when cond = fl -> 
> lit_fl
>                                 | DLit(LitBool true), fl -> // boolean or
>                                     match fl with
>                                     | DLit (LitBool false) -> cond
>                                     | _ -> if cond = fl then cond else 
> push_binop s BoolOr (cond,fl) type_bool
>                                 | tr, DLit(LitBool false) -> // boolean and
>                                     match tr with
>                                     | DLit(LitBool true) -> cond
>                                     | _ -> if cond = tr then cond else 
> push_binop s BoolAnd (cond,tr) type_bool
>                                 | _ -> push_typedop_no_rewrite s 
> (TyIf(cond,tr,fl)) type_tr
>                             | _ -> push_typedop_no_rewrite s (TyIf(cond,tr,fl)) 
> type_tr
>                         else push_typedop_no_rewrite s (TyIf(cond,tr,fl)) 
> type_tr
>                     else raise_type_error s <| sprintf "Types in branches of If 
> do not match.\nGot: %s and %s" (show_ty type_tr) (show_ty type_fl)
>             | cond -> raise_type_error s <| sprintf "Expected a bool in 
> conditional.\nGot: %s" (show_data cond)
> 
>         let eq s a b = 
>             let inline op a b = a = b
>             match a,b with
>             | DLit a, DLit b ->
>                 match a, b with
>                 | LitInt8 a, LitInt8 b -> op a b |> LitBool |> DLit
>                 | LitInt16 a, LitInt16 b -> op a b |> LitBool |> DLit
>                 | LitInt32 a, LitInt32 b -> op a b |> LitBool |> DLit
>                 | LitInt64 a, LitInt64 b -> op a b |> LitBool |> DLit
>                 | LitUInt8 a, LitUInt8 b -> op a b |> LitBool |> DLit
>                 | LitUInt16 a, LitUInt16 b -> op a b |> LitBool |> DLit
>                 | LitUInt32 a, LitUInt32 b -> op a b |> LitBool |> DLit
>                 | LitUInt64 a, LitUInt64 b -> op a b |> LitBool |> DLit
>                 | LitFloat32 a, LitFloat32 b -> op a b |> LitBool |> DLit
>                 | LitFloat64 a, LitFloat64 b -> op a b |> LitBool |> DLit
>                 | LitString a, LitString b -> op a b |> LitBool |> DLit
>                 | LitChar a, LitChar b -> op a b |> LitBool |> DLit
>                 | LitBool a, LitBool b -> op a b |> LitBool |> DLit
>                 | a, b -> raise_type_error s <| sprintf "The two literals must 
> be equal in type.\nGot: %s and %s" (show_lit a) (show_lit b)
>             | DV(L(a,a_ty)), DV(L(b,_)) when a = b && is_non_float_primitive 
> a_ty -> LitBool true |> DLit
>             | a, b ->
>                 let a_ty, b_ty = data_to_ty s a, data_to_ty s b
>                 if a_ty = b_ty then
>                     match a, b with
>                     | DLit (LitBool true), x | x, DLit (LitBool true) -> x
>                     | _ ->
>                         if is_primitive a_ty then push_binop s EQ (a,b) (YPrim 
> BoolT)
>                         else raise_type_error s <| sprintf "The type of the two 
> arguments needs to be a primitive type.\nGot: %s" (show_ty a_ty)
>                 else
>                     raise_type_error s <| sprintf "The two sides need to have 
> the same primitive types.\nGot: %s and %s." (show_ty a_ty) (show_ty b_ty)    
>         let default_lit s (a : string) b =
>             let inline f string_to_val val_to_lit val_dsc =
>                 match string_to_val a with
>                 | true, x -> val_to_lit x
>                 | false, _ -> raise_type_error s <| sprintf "Cannot parse the 
> literal as: %s" val_dsc
>             match b with
>             | YPrim Float32T -> f System.Single.TryParse LitFloat32 "f32"
>             | YPrim Float64T -> f System.Double.TryParse LitFloat64 "f64"
>             | YPrim Int8T -> f System.SByte.TryParse LitInt8 "i8"
>             | YPrim Int16T -> f System.Int16.TryParse LitInt16 "i16"
>             | YPrim Int32T -> f System.Int32.TryParse LitInt32 "i32"
>             | YPrim Int64T -> f System.Int64.TryParse LitInt64 "i64"
>             | YPrim UInt8T -> f System.Byte.TryParse LitUInt8 "u8"
>             | YPrim UInt16T -> f System.UInt16.TryParse LitUInt16 "u16"
>             | YPrim UInt32T -> f System.UInt32.TryParse LitUInt32 "u32"
>             | YPrim UInt64T -> f System.UInt64.TryParse LitUInt64 "u64"
>             | b -> raise_type_error s <| sprintf "Expected a numberic type 
> (f32,f64,i8,i16,i32,i64,u8,u16,u32,u64) as the type of literal.\nGot: %s" 
> (show_ty b)
> 
>         let lit_test s a bind on_succ on_fail =
>             let b = v s bind
>             if lit_to_ty a = data_to_ty s b then if_ s (eq s (DLit a) b) on_succ
> on_fail
>             else term s on_fail
> 
>         let inline nan_guardf32 x = if System.Single.IsNaN x then 
> raise_type_error s "A 32-bit floating point operation resulting in a nan 
> detected at compile time." else x
>         let inline nan_guardf64 x = if System.Double.IsNaN x then 
> raise_type_error s "A 64-bit floating point operation resulting in a nan 
> detected at compile time." else x
> 
>         let eforall (free_vars : Scope,i,body) =
>             assert (free_vars.ty.free_vars.Length = i)
>             DForall(body,Array.map (v s) free_vars.term.free_vars,Array.map (vt 
> s) free_vars.ty.free_vars,free_vars.term.stack_size,free_vars.ty.stack_size)
> 
>         let efun (free_vars : Scope,i,body,annot) =
>             assert (free_vars.term.free_vars.Length = i)
>             DFunction(body,annot,Array.map (v s) 
> free_vars.term.free_vars,Array.map (vt s) 
> free_vars.ty.free_vars,free_vars.term.stack_size,free_vars.ty.stack_size)
> 
>         let enominal (r,a,b) =
>             let a = term s a
>             let b = ty s b
>             match nominal_type_apply s b with
>             | YUnion h ->
>                 match a with
>                 | DPair(DSymbol k, v) ->
>                     let v_ty = data_to_ty s v
>                     match Map.tryPick (fun (_, name') v -> if k = name' then 
> Some v else None) h.Item.cases with
>                     | Some v_ty' when v_ty = v_ty' -> DNominal(DUnion(a,h),b) 
>                     | Some v_ty' -> raise_type_error s <| sprintf "For key %s, 
> The type of the value does not match the union case.\nGot: %s\nExpected: %s" k 
> (show_ty v_ty) (show_ty v_ty')
>                     | None -> raise_type_error s <| sprintf "The union does not 
> have key %s.\nGot: %s" k (show_ty b)
>                 | _ -> raise_type_error s <| sprintf "Expected key/value 
> pair.\nGot: %s" (show_data a)
>             | b' ->
>                 let a =
>                     match a with
>                     | DRecord a ->
>                         a
>                         |> Seq.map (fun (KeyValue ((i, k), v)) ->
>                             k, ((i, k), v)
>                         )
>                         |> Seq.distinctBy fst
>                         |> Seq.map snd
>                         |> Map.ofSeq
>                         |> DRecord
>                     | _ -> a
> 
>                 let a_ty = data_to_ty s a
> 
>                 if a_ty = b' then DNominal(a,b)
>                 else raise_type_error s <| sprintf "Type error in nominal 
> constructor.\nGot: %s\nExpected: %s" (show_ty a_ty) (show_ty b')
> 
>         let ty_union s x = 
>             let x = ty s x
>             match nominal_type_apply s x with
>             | YUnion x -> x
>             | _ -> raise_type_error s <| sprintf "Expected an union.\nGot: %s" 
> (show_ty x)
> 
>         let ty_record s x =
>             match ty s x with
>             | YRecord l -> l
>             | x -> raise_type_error s <| sprintf "Expected a type record.\nGot: 
> %s" (show_ty x)
> 
>         let to_i32 x = 
>             try 
>                 match x with
>                 | LitUInt8 x -> System.Convert.ToInt32(x)
>                 | LitUInt16 x -> System.Convert.ToInt32(x)
>                 | LitUInt32 x -> System.Convert.ToInt32(x)
>                 | LitUInt64 x -> System.Convert.ToInt32(x)
>                 | LitInt8 x -> System.Convert.ToInt32(x)
>                 | LitInt16 x -> System.Convert.ToInt32(x)
>                 | LitInt32 x -> System.Convert.ToInt32(x)
>                 | LitInt64 x -> System.Convert.ToInt32(x)
>                 | x -> raise_type_error s <| sprintf "Expected an int 
> convertible to an i32.\nGot: %s" (show_lit x)
>             with :? System.OverflowException -> raise_type_error s <| sprintf 
> "The literal cannot be converted to an i32 as it is either too small or to 
> big.\nGot: %s" (show_lit x)
> 
>         let record2 (a,b) (a',b') = DRecord(Map.empty |> Map.add a b |> Map.add 
> a' b')
>         let record3 (a,b) (a',b') (a'',b'') = DRecord(Map.empty |> Map.add a b 
> |> Map.add a' b' |> Map.add a'' b'')
> 
>         match x with
>         | EPatternRef _ -> failwith "Compiler error: EPatternRef should have 
> been eliminated during the prepass."
>         | EB _ -> DB
>         | EV a -> v s a
>         | ELit(_,a) -> DLit a
>         | ESymbol(_,a) -> DSymbol a
>         | EFun _ -> failwith "Compiler error: Raw functions should be 
> transformed during the prepass."
>         | EFun'(_,free_vars,i,body,annot) -> efun (free_vars,i,body,annot)
>         | ERecursiveFun'(_,free_vars,i,body,annot) -> efun 
> (free_vars,i,body.Value,annot)
>         | EForall _ -> failwith "Compiler error: Raw foralls should be 
> transformed during the prepass."
>         | EForall'(_,free_vars,i,body) -> eforall (free_vars,i,body)
>         | ERecursiveForall'(_,free_vars,i,body) -> eforall 
> (free_vars,i,body.Value)
>         | ERecursive a -> term s a.Value
>         | ERecBlock _ -> failwith "Compiler error: Recursive blocks should be 
> inlined and eliminated during the prepass."
>         | EJoinPoint _ -> failwith "Compiler error: Raw join points should be 
> transformed during the prepass."
>         | EJoinPoint'(r,scope,body,annot,backend,jp_name) ->
>             let env_global_type = Array.map (vt s) scope.ty.free_vars
>             let env_global_term = Array.map (v s) scope.term.free_vars
> 
>             let backend' = match backend with None -> s.backend | Some 
> (_,backend) -> backend_strings.Add backend
>             let dict, hc_table = memoize join_point_method (fun _ -> 
> Dictionary(HashIdentity.Structural), HashConsTable()) (backend', body)
>             let call_args, env_global_value = data_to_rdata s hc_table 
> env_global_term
>             let join_point_key = hc_table.Add(env_global_value, env_global_type)
> 
>             let ret_ty =
>                 match dict.TryGetValue(join_point_key) with
>                 | true, (_, Some ret_ty, _) -> ret_ty
>                 | true, (_, None, _) -> raise_type_error (add_trace s r) 
> "Recursive join points must be annotated."
>                 | false, _ ->
>                     let s : LangEnv = {
>                         trace = r :: s.trace
>                         seq = ResizeArray()
>                         cse = [[Dictionary(HashIdentity.Structural)]]
>                         unions = Map.empty
>                         i = ref 0
>                         env_global_type = env_global_type
>                         env_global_term = env_global_term
>                         env_stack_type = Array.zeroCreate<_> scope.ty.stack_size
>                         env_stack_term = Array.zeroCreate<_> 
> scope.term.stack_size
>                         backend = backend'
>                         globals = s.globals
>                         }
>                     let s = rename_global_term s
>                     let annot = Option.map (ty s) annot
>                     dict.[[join_point_key]] <- (None, annot, jp_name)
>                     let seq,ty = term_scope'' s body annot
>                     dict.[[join_point_key]] <- (Some seq, Some ty, jp_name)
>                     annot |> Option.iter (fun annot -> if annot <> ty then 
> raise_type_error s <| sprintf "The annotation of the join point does not match 
> its body's type.Got: %s\nExpected: %s" (show_ty ty) (show_ty annot))
>                     ty
> 
>             match backend with
>             | None -> push_typedop_no_rewrite s 
> (TyJoinPoint(JPMethod((backend',body),join_point_key),call_args)) ret_ty
>             | Some (range,_) ->
>                 let method_name = push_typedop_no_rewrite s 
> (TyBackend((backend',body),join_point_key,range)) (YPrim Int32T)
>                 let call_args = Array.foldBack (fun v s -> DPair(DV v,s)) 
> call_args DB
>                 DPair(method_name, call_args)
>         | EDefaultLit(r,a,b) -> let s = add_trace s r in default_lit s a (ty s 
> b) |> DLit
>         | EType(r,_) -> raise_type_error (add_trace s r) "Raw types are not 
> allowed on the term level."
>         | EApply(r,a,b) -> let s = add_trace s r in apply s (term s a, term s b)
>         | ETypeApply(r,a,b) ->
>             let s = add_trace s r
>             type_apply s (term s a) (ty s b)
>         | ERecordWith(r,vars,withs,withouts) ->
>             let s = add_trace s r
>             let map x =
>                 let fold f a b = List.fold f b a
>                 let var r a = 
>                     match term s a with
>                     | DSymbol a -> a
>                     | a -> raise_type_error (add_trace s r) <| sprintf "Expected
> a symbol.\nGot: %s" (show_data a)
>                 x |> fold (fun m x -> 
>                     let sym a b =
>                         let i =
>                             m
>                             |> Map.tryPick (fun (i, k) _v -> if k = a then Some 
> i else None)
>                             |> Option.defaultValue m.Count
>                         Map.add (i, a) (term s b) m
>                     let sym_mod r a b = 
>                         match m |> Map.tryPick (fun (i, k) v -> if k = a then 
> Some (i, v) else None) with
>                         | Some (i, a') -> Map.add (i, a) (apply s (term s b, 
> a')) m
>                         | None -> raise_type_error (add_trace s r) "Cannot find 
> key %s in record." a
>                     match x with
>                     | RSymbol((_,a),b) -> sym a b
>                     | RSymbolModify((r,a),b) -> sym_mod r a b
>                     | RVar((r,a),b) -> sym (var r a) b
>                     | RVarModify((r,a),b) -> sym_mod r (var r a) b
>                     ) withs
>                 |> fold (fun m -> function
>                     | WSymbol(r,a) ->
>                         m |> Map.filter (fun (_, k) _ -> k <> a)
>                     | WVar(r,a) ->
>                         m |> Map.filter (fun (_, k) _ -> k <> var r a)
>                     ) withouts
>             
>             let rec dive m = function
>                 | (r,x) :: xs ->
>                     let s = add_trace s r
>                     match term s x with
>                     | DSymbol b -> 
>                         let v =
>                             m |> Map.tryPick (fun (i, k) v -> if k = b then Some
> (i, v) else None)
>                         match v with
>                         | Some (i, DRecord a) -> Map.add (i, b) (DRecord (dive a
> xs)) m
>                         | Some a -> raise_type_error s <| sprintf "Expected a 
> record as the result of indexing.\nGot: %s" (show_data (a |> snd))
>                         // match Map.tryFind b m with
>                         // | Some (DRecord a) -> Map.add b (DRecord (dive a xs))
> m
>                         // | Some a -> raise_type_error s <| sprintf "Expected a
> record as the result of indexing.\nGot: %s" (show_data a)
>                         | None -> raise_type_error s <| sprintf "Cannot find the
> key %s in a record." b
>                     | b -> raise_type_error s <| sprintf "Expected a 
> symbol.\nGot: %s" (show_data b)
>                 | [[]] -> m |> map
> 
>             match vars with
>             | (r,x) :: xs ->
>                 match term s x with
>                 | DRecord l -> dive l xs
>                 | a -> raise_type_error s <| sprintf "Expected a record.\nGot: 
> %s" (show_data a)
>             | [[]] -> map Map.empty
>             |> DRecord
>         | EPatternMemo _ | EReal _ -> failwith "Compiler error: Should have been
> eliminated during the prepass."
>         | EModule a -> DRecord(a |> Seq.map (fun (KeyValue (k, v)) -> (a.Count, 
> k), (v |> term s)) |> Map.ofSeq)
>         | EPair(r,a,b) -> DPair(term s a, term s b)
>         | ESeq(r,a,b) -> 
>             let s = add_trace s r
>             match term s a with
>             | DB -> term s b
>             | a -> raise_type_error s <| sprintf "Expected unit.\nGot: %s" 
> (show_data a)
>         | EAnnot(r,a,b) ->
>             let s = add_trace s r
>             let a = term s a 
>             let a_ty = data_to_ty s a
>             let b = ty s b
>             if a_ty <> b then raise_type_error s <| sprintf "The body does not 
> match the annotation.\nGot: %s\nExpected: %s" (show_ty a_ty) (show_ty b)
>             a            
>         | EExists(r,a,b) ->
>             let s = add_trace s r
>             let a = List.map (ty s) a |> List.toArray
>             let b = term s b
>             DExists(a,b)
>         | EPatternMiss a -> raise_type_error s <| sprintf "Pattern miss.\nGot: 
> %s" (show_data (term s a))
>         | ETypePatternMiss a -> raise_type_error s <| sprintf "Pattern 
> miss.\nGot: %s" (show_ty (ty s a))
>         | EIfThenElse(r,cond,tr,fl) -> let s = add_trace s r in if_ s (term s 
> cond) tr fl
>         | EIfThen(r,cond,tr) -> let s = add_trace s r in if_ s (term s cond) tr 
> (EB r)
>         | EMutableSet(r,a,b,c) ->
>             let s = add_trace s r
>             let a,a_layout_ty =
>                 match term s a with
>                 | DV(L(i,YLayout(a_layout_ty,(StackMutable | HeapMutable))) & a)
> -> a,a_layout_ty
>                 | DV(L(_,YLayout _)) -> raise_type_error s "Expected a mutable 
> layout type, but got an immutable one."
>                 | a -> raise_type_error s <| sprintf "Expected a mutable layout 
> type.\nGot: %s" (show_data a)
>             let b = 
>                 List.map (fun (r,b) -> 
>                     match term s b with
>                     | DSymbol b -> r,b
>                     | b -> raise_type_error (add_trace s r) <| sprintf "Expected
> a symbol.\nGot: %s" (show_data b)
>                     ) b
>             let c_ty =
>                 List.fold (fun (r,a) (r',b) ->
>                     match a with
>                     | YRecord a ->
>                         match a |> Map.tryPick (fun (_, k) v -> if k = b then 
> Some v else None) with
>                         | Some a -> r', a
>                         | None -> raise_type_error (add_trace s r) <| sprintf 
> "Key %s not found in the layout type." b
>                     | a -> raise_type_error (add_trace s r) <| sprintf "Expected
> a record.\nGot: %s" (show_ty a)
>                     ) (r,a_layout_ty) b |> snd
>             let c = term s c |> dyn false s
>             let c =
>                 match c with
>                 | DRecord c ->
>                     c
>                     |> Seq.map (fun (KeyValue ((i, k), v)) ->
>                         let i =
>                             match c_ty with
>                             | YRecord a ->
>                                 a |> Map.tryPick (fun (i', k') _ -> if k = k' 
> then Some i' else None)
>                             | _ -> None
>                             |> Option.defaultValue i
>                         (i, k), v
>                     )
>                     |> Map.ofSeq
>                     |> DRecord
>                 | _ -> c
>             let c_ty' = data_to_ty s c
>             if c_ty' = c_ty then push_typedop_no_rewrite s 
> (TyLayoutMutableSet(a,List.map snd b,c)) YB
>             else raise_type_error s <| sprintf "The two side do not have the 
> same type.\nGot: %s\nExpected: %s" (show_ty c_ty') (show_ty c_ty)
>         | EMacro(r,a,b) ->
>             let s = add_trace s r
>             let a = a |> List.map (function MText x -> CMText x | MTerm x -> 
> CMTerm(term s x |> dyn false s) | MType x -> CMType(ty s x) | MLitType x -> 
> CMTypeLit(ty s x |> assert_ty_lit s))
>             push_typedop_no_rewrite s (TyMacro(a)) (ty s b)
>         | EPrototypeApply(_,prot_id,b) ->
>             let rec loop = function
>                 | YNominal b ->
>                     match 
> env.prototypes_instances.TryGetValue((prot_id,b.node.id)) with
>                     | true,x -> term s x
>                     | _ -> raise_type_error s "An instance of the prototype 
> being applied could be found in the dictionary."
>                 | YApply(a,b) -> type_apply s (loop a) b
>                 | b -> raise_type_error s <| sprintf "Expected a nominal or a 
> deferred type apply.\nGot: %s" (show_ty b)
>             loop (ty s b)
>         | EOp(r,NominalCreate,[[a;EType(_,b)]]) | ENominal(r,a,b) -> enominal 
> (r,a,b)
>         | EUnbox(r,k,id,a,on_succ,on_fail) ->
>             let s = add_trace s r
>             let run s a = store_term s id a; term s on_succ
>             match term s a with
>             | DNominal(DUnion(DPair(DSymbol k',a),_),_) -> if k = k' then run s 
> a else term s on_fail
>             | DNominal(DV(L(_,YUnion h) & i),_) ->
>                 let body blk = 
>                     match Map.tryPick (fun (_, name') v -> if k = name' then 
> Some v else None) h.Item.cases with
>                     | Some v when Set.contains k blk = false ->
>                         let on_succ, ret_ty = 
>                             let a = ty_to_data s v
>                             let s = {s with unions = Map.add i (UnionData (k,a))
> s.unions; cse = Dictionary(HashIdentity.Structural) :: s.cse; seq = 
> ResizeArray()}
>                             let x = run s a |> dyn false s
>                             Map.add k ([[a]], (seq_apply s x)) Map.empty, 
> data_to_ty s x
>                         let on_succ,on_fails = 
>                             let blk = Set.add k blk
>                             if blk.Count = h.Item.cases.Count then on_succ, None
> // Have to do this otherwise it would have hit EPatternMiss
>                             else
>                                 let on_fails, ret_ty' = term_scope {s with 
> unions = Map.add i (UnionBlockers blk) s.unions} on_fail
>                                 if ret_ty <> ret_ty' then raise_type_error s 
> $"The types of two branches of an union unbox do not match.\nGot: {show_ty 
> ret_ty}\nAnd: {show_ty ret_ty'}"
>                                 match on_fails with
>                                 | 
> [[|TyLocalReturnOp(_,TyUnionUnbox([[i']],_,on_succ',on_fail'),_)|]] when i = i' 
> -> Map.foldBack Map.add on_succ' on_succ , on_fail'
>                                 | _ -> on_succ, Some on_fails
>                         push_typedop_no_rewrite s 
> (TyUnionUnbox([[i]],h,on_succ,on_fails)) ret_ty
>                     | _ -> term s on_fail
>                 match Map.tryFind i s.unions with
>                 | Some (UnionData (k',a)) -> if k = k' then run s a else term s 
> on_fail
>                 | Some (UnionBlockers blk) -> body blk
>                 | None -> body Set.empty
>             | _ -> term s on_fail
>         | EOp(r,Unbox,[[a;on_succ]]) -> 
>             let s = add_trace s r
>             let on_succ = term s on_succ
>             let run s a = apply s (on_succ,a)
>             match term s a with
>             | DNominal(DUnion(a,_),_) -> run s a 
>             | DNominal(DV(L(_,YUnion h) & i) & a,_) ->
>                 let body blk = 
>                     let cases, case_ty =
>                         Map.fold (fun (m, case_ty) (_, k) v ->
>                             if Set.contains k blk = false then
>                                 let a = ty_to_data s v
>                                 let s = {s with unions = Map.add i (UnionData 
> (k,a)) s.unions; cse = Dictionary(HashIdentity.Structural) :: s.cse; seq = 
> ResizeArray()}
>                                 let x = run s (DPair(DSymbol k, a)) |> dyn false
> s
>                                 let x_ty' = data_to_ty s x
>                                 let case_ty = 
>                                     match case_ty with
>                                     | Some x_ty when x_ty' <> x_ty -> 
> raise_type_error s <| sprintf "One union case for key %s has a different return 
> that the previous one.\nGot: %s\nExpected: %s" k (show_ty x_ty') (show_ty x_ty)
>                                     | Some _ -> case_ty
>                                     | None -> Some x_ty'
>                                 Map.add k ([[a]], seq_apply s x) m, case_ty
>                             else
>                                 m, case_ty
>                             ) (Map.empty,None) h.Item.cases
>                     push_typedop_no_rewrite s (TyUnionUnbox([[i]],h,cases,None))
> (Option.get case_ty)
>                 match Map.tryFind i s.unions with
>                 | Some (UnionData (k,a)) -> run s (DPair(DSymbol k, a))
>                 | Some (UnionBlockers blk) -> body blk
>                 | None -> body Set.empty
>             | a -> raise_type_error s <| sprintf "Expected an union type.\nGot: 
> %s" (show_data a)
>         | EOp(r,Unbox2,[[a;b;on_succ;on_fail]]) ->
>             let s = add_trace s r
>             let on_succ = term s on_succ
>             let on_fail = term s on_fail
>             let mutable case_ty = None
>             let s' () = {s with cse = Dictionary(HashIdentity.Structural) :: 
> s.cse; seq = ResizeArray()}
>             let assert_case_ty s x =
>                 let x_ty' = data_to_ty s x
>                 match case_ty with
>                 | Some x_ty -> if x_ty' <> x_ty then raise_type_error s <| 
> sprintf "One union case has a different return than the previous one.\nGot: 
> %s\nExpected: %s" (show_ty x_ty') (show_ty x_ty)
>                 | None -> case_ty <- Some x_ty'
>             let run s x =
>                 let x = apply s x |> dyn false s
>                 assert_case_ty s x
>                 seq_apply s x
>             let case_on_fail () = run (s'()) (on_fail, DB)
>             let key_value = function
>                 | DPair(DSymbol k, a) -> k, a
>                 | _ -> failwith "Compiler error: Malformed union."
>             match term s a, term s b with
>             | DNominal(DUnion(_,h),_), DNominal(DUnion(_,h'),_) when h <> h' ->
>                 raise_type_error s <| sprintf "The two variables have different 
> union types.\nGot: %s\nGot: %s" (show_ty (YUnion h)) (show_ty (YUnion h'))
>             | DNominal(DUnion(a,_),_), DNominal(DUnion(a',_),_) ->
>                 let k,a = key_value a
>                 let k',a' = key_value a'
>                 if k = k' then apply s (on_succ, DPair(DSymbol k, DPair(a, a')))
>                 else apply s (on_fail, DB)
>             | DNominal(DV(L(_,YUnion h)),_), DNominal(DUnion(_,h'),_) | 
> DNominal(DUnion(_,h),_), DNominal(DV(L(_,YUnion h')),_) when h <> h' ->
>                 raise_type_error s <| sprintf "The two variables have different 
> union types.\nGot: %s\nGot: %s" (show_ty (YUnion h)) (show_ty (YUnion h'))
>             | DNominal(DV(L(_,YUnion h) & i),_), DNominal(DUnion(a',_),_) ->
>                 let k,a' = key_value a'
>                 let v = h.Item.cases |> Map.pick (fun (_, name') v -> if k = 
> name' then Some v else None)
>                 let case_on_succ =
>                     let s = s'()
>                     let a = ty_to_data s v
>                     let s = {s with unions = Map.add i (UnionData (k,a)) 
> s.unions}
>                     [[a]], run s (on_succ, DPair(DSymbol k, DPair(a, a')))
>                 push_typedop_no_rewrite s (TyUnionUnbox([[i]],h,Map.add k 
> case_on_succ Map.empty,Some (case_on_fail()))) (Option.get case_ty)
>             | DNominal(DUnion(a,_),_), DNominal(DV(L(_,YUnion h) & i'),_) ->
>                 let k,a = key_value a
>                 let v = h.Item.cases |> Map.pick (fun (_, name') v -> if k = 
> name' then Some v else None)
>                 let case_on_succ =
>                     let s = s'()
>                     let a' = ty_to_data s v
>                     let s = {s with unions = Map.add i' (UnionData (k,a')) 
> s.unions}
>                     [[a']], run s (on_succ, DPair(DSymbol k, DPair(a, a')))
>                 push_typedop_no_rewrite s (TyUnionUnbox([[i']],h,Map.add k 
> case_on_succ Map.empty,Some (case_on_fail()))) (Option.get case_ty)
>             | DNominal(DV(L(_,YUnion h & t)),_), DNominal(DV(L(_,YUnion h' & 
> t')),_) when h <> h' -> 
>                 raise_type_error s <| sprintf "The two variables have different 
> union types.\nGot: %s\nGot: %s" (show_ty t) (show_ty t')
>             | DNominal(DV(L(_,YUnion h) & i),_), DNominal(DV(L(_,YUnion _) & 
> i'),_) ->
>                 let cases_on_succ =
>                     Map.map (fun (_, k) v ->
>                         let s = s'()
>                         let a,a' = ty_to_data s v, ty_to_data s v
>                         let s = {s with unions = 
>                                             let u = s.unions 
>                                             let u = Map.add i (UnionData (k,a)) 
> u
>                                             Map.add i' (UnionData (k,a')) u
>                                             }
>                         [[a;a']], run s (on_succ, DPair(DSymbol k, DPair(a, 
> a')))
>                         ) h.Item.cases
>                     |> Seq.map (fun (KeyValue ((_, k), v)) -> k, v)
>                     |> Map.ofSeq
>                 push_typedop_no_rewrite s 
> (TyUnionUnbox([[i;i']],h,cases_on_succ,Some (case_on_fail()))) (Option.get 
> case_ty)
>             | a,a' -> raise_type_error s <| sprintf "Expected two union 
> types.\nGot: %s\nAnd: %s" (show_data a) (show_data a')
>         | EOp(r,UnionUntag,[[EType(_,t);a;on_succ;on_fail]]) ->
>             let t = ty s t
>             match nominal_type_apply s t with
>             | YUnion h ->
>                 let h = h.Item
>                 let on_succ, on_fail = term s on_succ, term s on_fail
>                 let lit i =
>                     if 0 <= i && i < h.tag_cases.Length then
>                         let k,v = h.tag_cases.[[i]]
>                         type_apply s (apply s (on_succ, DSymbol k)) v
>                     else raise_type_error s $"Invalid tag 0 <= {i} < 
> {h.tag_cases.Length} in UnionUntag."
>                 match term s a with
>                 | DV(L(i,YPrim Int32T) as tyv) as a -> 
>                     let key = TyOp(UnionUntag,[[a]])
>                     match cse_tryfind s key with
>                     | Some(DLit(LitInt32 i)) -> lit i
>                     | Some _ -> failwith "Compiler error: Expected an 32-bit 
> int."
>                     | None ->
>                         let on_fail, on_fail_ty =
>                             let s = {s with cse = 
> Dictionary(HashIdentity.Structural) :: s.cse; seq = ResizeArray()}
>                             let r = apply s (on_fail, DB) |> dyn false s
>                             seq_apply s r, data_to_ty s r
>                         let on_succ =
>                             Array.mapi (fun i (k,v) ->
>                                 let cse = Dictionary(HashIdentity.Structural)
>                                 cse.Add(key,DLit(LitInt32 i))
>                                 let s = {s with cse = cse :: s.cse; seq = 
> ResizeArray()}
>                                 let r = type_apply s (apply s (on_succ, DSymbol 
> k)) v |> dyn false s
>                                 let r_ty = data_to_ty s r
>                                 if on_fail_ty <> r_ty then raise_type_error s <|
> sprintf "Return type of the success case does not match the failure one.\nGot: 
> %s\nExpected: %s" (show_ty r_ty) (show_ty on_fail_ty)
>                                 seq_apply s r
>                                 ) h.tag_cases
>                         push_typedop_no_rewrite s 
> (TyIntSwitch(tyv,on_succ,on_fail)) on_fail_ty
>                 | DLit(LitInt32 i) -> lit i
>                 | a -> raise_type_error s <| sprintf "Expected an i32.\nGot: %s"
> (show_data a)
>             | _ -> raise_type_error s <| sprintf "Expected an union type.\nGot: 
> %s" (show_ty t)
>         | ELet(r,i,a,b) -> let s = add_trace s r in store_term s i (term s a); 
> term s b
>         | EPairTest(r,bind,p1,p2,on_succ,on_fail) ->
>             let s = add_trace s r
>             match v s bind with
>             | DPair(a,b) -> store_term s p1 a; store_term s p2 b; term s on_succ
>             | _ -> term s on_fail
>         | EExistsTest(r,bind,pat_type,pat,on_succ,on_fail) ->
>             let s = add_trace s r
>             match v s bind with
>             | DExists(a,b) -> Array.iter2 (store_ty s) pat_type a; store_term s 
> pat b; term s on_succ
>             | DV(L(_,YExists)) -> raise_type_error s "Runtime existentials 
> cannot be destructured. They are a compile time feature only."
>             | _ -> term s on_fail
>         | ESymbolTest(r,a,bind,on_succ,on_fail) ->
>             let s = add_trace s r
>             match v s bind with
>             | DSymbol a' when a = a' -> term s on_succ
>             | _ -> term s on_fail
>         | ERecordTest(r,a,bind,on_succ,on_fail) ->
>             let s = add_trace s r
>             match v s bind with
>             | DRecord l ->
>                 let rec loop = function
>                     | x :: x' ->
>                         let sym a b =
>                             match l |> Map.tryPick (fun (_, k) v -> if k = a 
> then Some v else None) with
>                             | Some a -> store_term s b a; loop x'
>                             | None -> term s on_fail
>                         match x with
>                         | Symbol((_,a),b) -> sym a b
>                         | Var((r,a),b) ->
>                             match term s a with
>                             | DSymbol a -> sym a b
>                             | a -> raise_type_error (add_trace s r) <| sprintf 
> "Expected a symbol.\nGot: %s" (show_data a)
>                     | [[]] -> term s on_succ
>                 loop a
>             | _ -> term s on_fail
>         | EAnnotTest(r,a,bind,on_succ,on_fail) -> let s = add_trace s r in if 
> data_to_ty s (v s bind) = ty s a then term s on_succ else term s on_fail
>         | EUnitTest(r,bind,on_succ,on_fail) -> let s = add_trace s r in match v 
> s bind with DB -> term s on_succ | _ -> term s on_fail
>         | ENominalTest(r,a,bind,p1,on_succ,on_fail) ->
>             let s = add_trace s r
>             match ty s a with
>             | YNominal a ->
>                 match v s bind with
>                 | DNominal((DUnion _ | DV(L(_,YUnion _))),_) -> raise_type_error
> s "Got an union in a nominal pattern."
>                 | DNominal(v,b) ->
>                     let rec loop = function
>                         | YNominal b -> if a = b then store_term s p1 v; term s 
> on_succ else term s on_fail
>                         | YApply(a,_) -> loop a
>                         | _ -> raise_type_error s <| sprintf "Compiler error: 
> Expected a deferred type apply or a nominal.\nGot: %s" (show_ty b)
>                     loop b
>                 | _ -> term s on_fail
>             | a -> raise_type_error s <| sprintf "Expected a nominal on the left
> side of the pattern.\nGot: %s" (show_ty a)
>         | ELitTest(r,a,bind,on_succ,on_fail) -> let s = add_trace s r in 
> lit_test s a bind on_succ on_fail
>         | EDefaultLitTest(r,a,b,bind,on_succ,on_fail) -> let s = add_trace s r 
> in lit_test s (default_lit s a (ty s b)) bind on_succ on_fail
>         | ETypecase(r,a,b) ->
>             let s = add_trace s r
>             let a = ty s a
>             let rec loop = function
>                 | (a',b) :: rest -> if is_unify s (a,ty s a') then Some(term s 
> b) else loop rest
>                 | [[]] -> None
>             match loop b with
>             | Some r -> r
>             | None -> raise_type_error s <| sprintf "Typecase miss.\nGot: %s" 
> (show_ty a)
>         | EOp(_,ToFunPtr,[[a]]) ->
>             match term s a with
>             | DFunction(body,Some(TFun(domain,range,_)),a,b,c,d) -> 
> DFunction(body,Some(TFun(domain,range,FT_Pointer)),a,b,c,d)
>             | DV(L(_,YFun _)) -> raise_type_error s <| sprintf "Cannot convert a
> runtime function to a closure. The closure conversion should be done on a 
> compile time funciton."
>             | a -> raise_type_error s <| sprintf "Expected a function.\nGot: %s"
> (show_data a)
>         | EOp(_,ToFunClosure,[[a]]) ->
>             match term s a with
>             | DFunction(body,Some(TFun(domain,range,_)),a,b,c,d) -> 
> DFunction(body,Some(TFun(domain,range,FT_Closure)),a,b,c,d)
>             | DV(L(_,YFun _)) -> raise_type_error s <| sprintf "Cannot convert a
> runtime function to a function pointer. The pointer conversion should be done on
> a compile time funciton."
>             | a -> raise_type_error s <| sprintf "Expected a function.\nGot: %s"
> (show_data a)
>         | EOp(_,PragmaUnrollPush,[[a]]) ->
>             match term s a with
>             | DLit (LitInt32 _) as x -> push_op_no_rewrite s PragmaUnrollPush x 
> YB
>             | a -> raise_type_error s <| sprintf "Expected an i32 literal.\nGot:
> %s" (show_data a)
>         | EOp(_,PragmaUnrollPop,[[]]) -> 
>             push_op_no_rewrite' s PragmaUnrollPop [[]] YB
>         | EOp(_,BackendSwitch,l) ->
>             let mutable t = None
>             let mutable d = None
>             let validate_type t' =
>                 match t with
>                 | Some t -> if t <> t' then raise_type_error s $"The backend 
> switch needs to have the same type for all of its branches.\nGot: {show_ty 
> t'}\nExpected: {show_ty t}"
>                 | None -> t <- Some t'
>             l |> List.iter (function
>                 | EPair(_,ELit(_,LitString backend),b) -> 
>                     // The reason why we're evaling all the branches intead of 
> just one and in this specific order is because otherwise
>                     // compile time hashmaps could make type inference unsound.
>                     if backend = s.backend.node then 
>                         let d' = term s b
>                         validate_type (data_to_ty s d')
>                         d <- Some d'
>                     else
>                         let _,t' = term_scope s b
>                         validate_type t'
>                 | _ -> raise_type_error s "BackendSwitch should be a list of 
> (string literal,body) pairs."
>                 )
>             match d with
>             | Some cur -> cur |> dyn true s
>             | None -> raise_type_error s $"Cannot find the backend 
> {s.backend.node} in the backend switch op."
>         | EOp(_,UsesOriginalTermVars,[[a;b]]) ->
>             let a = term s a |> data_term_vars'
>             let b = term s b |> data_term_vars'
>             let c = a.Length = b.Length && 
> HashSet(a,HashIdentity.Reference).SetEquals(b)
>             DLit(LitBool c)
>         | EOp(_,UsesOriginalNominals,[[a;b]]) ->
>             let a = term s a |> data_nominals
>             let b = term s b |> data_nominals
>             let c = a.Length = b.Length && 
> HashSet(a,HashIdentity.Reference).SetEquals(b)
>             DLit(LitBool c)
>         | EOp(_,While,[[cond;body]]) -> 
>             match term_scope s cond with
>             | [[|TyLocalReturnOp(_,TyJoinPoint cond,_)|]], ty ->
>                 match ty with
>                 | YPrim BoolT -> 
>                     match term_scope s body with
>                     | body, YB & ty -> push_typedop s (TyWhile(cond,body)) ty
>                     | _, ty -> raise_type_error s <| sprintf "The body of the 
> while loop must be of type unit.\nGot: %s" (show_ty ty)
>                 | _ -> raise_type_error s <| sprintf "The conditional of the 
> while loop must be of type bool.\nGot: %s" (show_ty ty)
>             | _ -> raise_type_error s "The body of the conditional of the while 
> loop must be a solitary join point."
>         | EOp(_,Do,[[body]]) ->
>             match term_scope s body with
>             | body, YB & ty -> push_typedop s (TyDo body) ty
>             | _, ty -> raise_type_error s <| sprintf "The body of the do binding
> must be of type unit.\nGot: %s" (show_ty ty)
>         | EOp(_,Indent,[[body]]) ->
>             let body, ty = term_scope s body
>             push_typedop s (TyIndent body) ty
>         | EOp(_,(LayoutToHeap | LayoutToHeapMutable | LayoutToStackMutable as 
> op),[[a]]) -> 
>             let x = dyn false s (term s a)
>             let ty = data_to_ty s x
>             let layout =
>                 match op with
>                 | LayoutToHeap -> Heap
>                 | LayoutToHeapMutable -> HeapMutable
>                 | LayoutToStackMutable -> StackMutable
>                 | _ -> raise_type_error s "Compiler error: Forgot a case in 
> LayoutTo."
>             let ret_ty = YLayout(ty,layout)
>             let key = TyToLayout(x,ret_ty)
>             push_typedop_no_rewrite s key ret_ty
>         | EOp(_,LayoutIndex,[[a]]) -> 
>             match term s a with
>             | DV(L(i,YLayout(ty,layout)) as tyv) as a -> 
>                 match layout with
>                 | StackMutable | HeapMutable -> push_typedop_no_rewrite s 
> (TyLayoutIndexAll tyv) ty
>                 | Heap ->
>                     match ty with
>                     | YRecord l -> DRecord(Map.map (fun (_,b) ty -> push_typedop
> s (TyLayoutIndexByKey(tyv,b)) ty) l)
>                     | _ -> push_typedop s (TyLayoutIndexAll tyv) ty
>             | a -> raise_type_error s <| sprintf "Expected a layout type.\nGot: 
> %s" (show_data a)
>         | EOp(_,TypeToVar,[[EType(_,a)]]) -> push_typedop_no_rewrite s 
> (TyOp(TypeToVar,[[]])) (ty s a)
>         | EOp(_,LitToTypeLit,[[a]]) -> 
>             match term s a with
>             | DLit x -> DTLit x
>             | DSymbol x -> DSymbol x
>             | a -> raise_type_error s <| sprintf "Expected a symbol or a type 
> literal.\nGot: %s" (show_data a)
>         | EOp(_,LitToSymbol,[[a]]) -> 
>             match term s a with
>             | DLit x ->
>                 match x with
>                 | LitInt8 a -> a.ToString("R") |> DSymbol
>                 | LitInt16 a -> a.ToString("R") |> DSymbol
>                 | LitInt32 a -> a.ToString("R") |> DSymbol
>                 | LitInt64 a -> a.ToString("R") |> DSymbol
>                 | LitUInt8 a -> a.ToString("R") |> DSymbol
>                 | LitUInt16 a -> a.ToString("R") |> DSymbol
>                 | LitUInt32 a -> a.ToString("R") |> DSymbol
>                 | LitUInt64 a -> a.ToString("R") |> DSymbol
>                 | LitFloat32 a -> a.ToString("R") |> DSymbol
>                 | LitFloat64 a -> a.ToString("R") |> DSymbol
>                 | LitBool a -> a.ToString() |> DSymbol
>                 | LitChar a -> a.ToString() |> DSymbol
>                 | LitString a -> a.ToString() |> DSymbol
>             | a -> raise_type_error s <| sprintf "Expected a symbol or a type 
> literal.\nGot: %s" (show_data a)
>         | EOp(_,StringLitToSymbol,[[a]]) -> 
>             match term s a with
>             | DLit(LitString a) -> DSymbol a
>             | a -> raise_type_error s <| sprintf "Expected a string 
> literal.\nGot: %s" (show_data a)
>         | EOp(_,SymbolToString,[[a]]) -> 
>             match term s a with
>             | DSymbol a -> DLit (LitString a)
>             | a -> raise_type_error s <| sprintf "Expected a symbol.\nGot: %s" 
> (show_data a)
>         | EOp(_,TypeToSymbol,[[EType(_,a)]]) -> 
>             match ty s a with
>             | YSymbol a -> DSymbol a
>             | a -> raise_type_error s <| sprintf "Expected a symbol.\nGot: %s" 
> (show_ty a)
>         | EOp(_,TypeLitToLit,[[EType(_,a)]]) -> 
>             let rec loop = function
>                 | YLit a -> DLit a
>                 | YSymbol a -> DSymbol a
>                 | YNominal _ | YApply _ as a -> loop (nominal_type_apply s a)
>                 | a -> raise_type_error s <| sprintf "Expected a type literal or
> a symbol.\nGot: %s" (show_ty a)
>             loop (ty s a)
>         | EOp(_,(TypeToVar | TypeToSymbol),[[a]]) -> raise_type_error s 
> "Expected a type."
>         | EOp(_,Dyn,[[a]]) -> term s a |> dyn true s
>         | EOp(_,StringLength,[[EType(_,t);a]]) ->
>             let t = ty s t
>             if is_any_int t = false then raise_type_error s <| sprintf "Expected
> an int.\nGot: %s" (show_ty t)
>             match term s a with
>             | DLit(LitString str) -> 
>                 match t with
>                 | YPrim Int8T -> try DLit (LitInt8 (System.Convert.ToSByte 
> str.Length)) with :? System.OverflowException -> raise_type_error s <| sprintf 
> "Literal conversion to i8 failed as the string length is either too large.\nGot:
> %i" str.Length
>                 | YPrim Int16T -> try DLit (LitInt16 (System.Convert.ToInt16 
> str.Length)) with :? System.OverflowException -> raise_type_error s <| sprintf 
> "Literal conversion to i16 failed as the string length is either too 
> large.\nGot: %i" str.Length
>                 | YPrim Int32T -> try DLit (LitInt32 (System.Convert.ToInt32 
> str.Length)) with :? System.OverflowException -> raise_type_error s <| sprintf 
> "Literal conversion to i32 failed as the string length is either too 
> large.\nGot: %i" str.Length
>                 | YPrim Int64T -> try DLit (LitInt64 (System.Convert.ToInt64 
> str.Length)) with :? System.OverflowException -> raise_type_error s <| sprintf 
> "Literal conversion to i64 failed as the string length is either too 
> large.\nGot: %i" str.Length
>                 | YPrim UInt8T -> try DLit (LitUInt8 (System.Convert.ToByte 
> str.Length)) with :? System.OverflowException -> raise_type_error s <| sprintf 
> "Literal conversion to u8 failed as the string length is either too large.\nGot:
> %i" str.Length
>                 | YPrim UInt16T -> try DLit (LitUInt16 (System.Convert.ToUInt16 
> str.Length)) with :? System.OverflowException -> raise_type_error s <| sprintf 
> "Literal conversion to u16 failed as the string length is either too 
> large.\nGot: %i" str.Length
>                 | YPrim UInt32T -> try DLit (LitUInt32 (System.Convert.ToUInt32 
> str.Length)) with :? System.OverflowException -> raise_type_error s <| sprintf 
> "Literal conversion to u32 failed as the string length is either too 
> large.\nGot: %i" str.Length
>                 | YPrim UInt64T -> try DLit (LitUInt64 (System.Convert.ToUInt64 
> str.Length)) with :? System.OverflowException -> raise_type_error s <| sprintf 
> "Literal conversion to u64 failed as the string length is either too 
> large.\nGot: %i" str.Length
>                 | _ -> failwith "impossible"
>             | DV(L(_,YPrim StringT)) & str -> push_typedop s 
> (TyStringLength(t,str)) t
>             | x -> raise_type_error s <| sprintf "Expected a string.\nGot: %s" 
> (show_data x)
>         | EOp(_,StringIndex,[[a;b]]) ->
>             match term2 s a b with
>             | DLit(LitString a), DLit b ->
>                 let b = to_i32 b
>                 if 0 <= b && b < a.Length then a.[[int b]] |> LitChar |> DLit
>                 else raise_type_error s <| sprintf "Cannot index into a string 
> of length %i at index %i." a.Length b
>             | a,b ->
>                 match data_to_ty s a, data_to_ty s b with
>                 | YPrim StringT,bt when is_any_int bt -> push_binop s 
> StringIndex (a,b) (YPrim CharT)
>                 | a,b -> raise_type_error s <| sprintf "Expected a string and an
> int as arguments.\nGot: %s\nAnd: %s" (show_ty a) (show_ty b)
>         | EOp(_,StringSlice,[[a;b;c]]) ->
>             match term3 s a b c with
>             | DLit(LitString a), DLit b, DLit c ->
>                 let b,c = to_i32 b, to_i32 c
>                 if 0 <= b && b <= c && c < a.Length then a.[[int b..int c]] |> 
> LitString |> DLit
>                 else raise_type_error s <| sprintf "String of length %i's slice 
> from %i to %i is invalid." a.Length b c
>             | a,b,c ->
>                 match data_to_ty s a, data_to_ty s b, data_to_ty s c with
>                 | YPrim StringT, bt, ct when is_any_int bt && is_any_int ct -> 
> push_triop s StringSlice (a,b,c) (YPrim StringT)
>                 | a,b,c -> raise_type_error s <| sprintf "Expected a string and 
> two ints as arguments.\nGot: %s\nAnd: %s\nAnd: %s" (show_ty a) (show_ty b) 
> (show_ty c)
>         | EArray(_,a,b) ->
>             match ty s b with
>             | YArray el as b -> 
>                 let a = 
>                     List.map (fun x -> 
>                         let x = term s x |> dyn false s
>                         let x_ty = data_to_ty s x
>                         if x_ty = el then x 
>                         else raise_type_error s $"All the elements in the array 
> literal have to be the type {show_ty el}.\nGot: {show_ty x_ty}"
>                         ) a
>                 push_typedop_no_rewrite s (TyArrayLiteral(el,a)) b
>             | b -> raise_type_error s $"Expected an array_base.\nGot: {show_ty 
> b}"
>         | EOp(_,ArrayCreate,[[EType(_,a);b]]) ->
>             let a,b = ty s a, term s b
>             match data_to_ty s b with
>             | bt when is_any_int bt -> push_typedop_no_rewrite s 
> (TyArrayCreate(a,b)) (YArray a)
>             | b -> raise_type_error s <| sprintf "Expected an int as the size of
> the array.\nGot: %s" (show_ty b)
>         | EOp(_,ArrayLength,[[EType(_,t);a]]) ->
>             let t = ty s t
>             if is_any_int t = false then raise_type_error s <| sprintf "Expected
> an int.\nGot: %s" (show_ty t)
>             let a = term s a
>             match data_to_ty s a with
>             | YArray _ -> push_typedop s (TyArrayLength(t,a)) t
>             | a -> raise_type_error s <| sprintf "Expected an array_base.\nGot: 
> %s" (show_ty a)
>         | EOp(_,ArrayIndex,[[a;b]]) ->
>             match term s a with
>             | DV(L(_,YArray ty)) & a ->
>                 let b = term s b
>                 match data_to_ty s b with
>                 | bt when is_any_int bt -> push_binop_no_rewrite s ArrayIndex 
> (a,b) ty
>                 | b -> raise_type_error s <| sprintf "Expected an int as the 
> index argumet.\nGot: %s" (show_ty b)
>             | a -> raise_type_error s <| sprintf "Expected an array_base.\nGot: 
> %s" (show_data a)
>         | EOp(_,ArrayIndexSet,[[a;b;c]]) ->
>             match term s a with
>             | DV(L(_,YArray ty)) & a ->
>                 let b = term s b
>                 match data_to_ty s b with
>                 | bt when is_any_int bt -> 
>                     let c = term s c |> dyn false s
>                     let ty' = data_to_ty s c
>                     if ty' = ty then push_triop_no_rewrite s ArrayIndexSet 
> (a,b,c) YB
>                     else raise_type_error s <| sprintf "The array and the value 
> being set do not have the same type.\nGot: %s\nExpected: %s" (show_ty ty') 
> (show_ty ty)
>                 | b -> raise_type_error s <| sprintf "Expected an int as the 
> index argumet.\nGot: %s" (show_ty b)
>             | a -> raise_type_error s <| sprintf "Expected an array_base.\nGot: 
> %s" (show_data a)
>         | EOp(_,RecordMap,[[a;b]]) ->
>             match term2 s a b with
>             | a, DRecord l -> Map.map (fun (_i, k) v -> apply s (a, record2 
> ((l.Count, "key"), DSymbol k) (((l.Count + 1), "value"), v))) l |> DRecord
>             | _, b -> raise_type_error s <| sprintf "Expected a record.\nGot: 
> %s" (show_data b)
>         | EOp(_,RecordIter,[[a;b]]) ->
>             match term2 s a b with
>             | a, DRecord l -> 
>                 Map.iter (fun (i,k) v ->
>                     match apply s (a, record2 ((l.Count, "key"), DSymbol k) 
> (((l.Count + 1), "value"), v)) with
>                     | DB -> ()
>                     | x -> raise_type_error s <| sprintf "Expected an unit 
> value.\nGot: %s" (show_data x)
>                     ) l 
>                 DB
>             | _, b -> raise_type_error s <| sprintf "Expected a record.\nGot: 
> %s" (show_data b)
>         | EOp(_,RecordFilter,[[a;b]]) ->
>             match term2 s a b with
>             | a, DRecord l ->
>                 Map.filter (fun (_i,k) v ->
>                     match apply s (a, record2 ((l.Count, "key"), DSymbol k) 
> (((l.Count + 1), "value"), v)) with
>                     | DLit(LitBool x) -> x
>                     | x -> raise_type_error s <| sprintf "Expected a bool 
> literal.\nGot: %s" (show_data x)
>                     ) l
>                 |> DRecord
>             | _, b -> raise_type_error s <| sprintf "Expected a record.\nGot: 
> %s" (show_data b)
>         | EOp(_,RecordFold,[[a;b;c]]) ->
>             match term3 s a b c with
>             | a, state, DRecord l -> Map.fold (fun state (i,k) v -> apply s (a, 
> record3 ((l.Count, "state"), state) (((l.Count + 1), "key"), DSymbol k) 
> (((l.Count + 2), "value"), v))) state l
>             | _, _, r -> raise_type_error s <| sprintf "Expected a record.\nGot:
> %s" (show_data r)
>         | EOp(_,RecordFoldBack,[[a;b;c]]) ->
>             match term3 s a b c with
>             | a, state, DRecord l -> Map.foldBack (fun (i,k) v state -> apply s 
> (a, record3 ((i, "state"), state) (((l.Count + 1), "key"), DSymbol k) (((l.Count
> + 2), "value"), v))) l state
>             | _, _, r -> raise_type_error s <| sprintf "Expected a record.\nGot:
> %s" (show_data r)
>         | EOp(_,RecordLength,[[a]]) ->
>             match term s a with
>             | DRecord l -> Map.count l |> LitInt32 |> DLit
>             | r -> raise_type_error s <| sprintf "Expected a record.\nGot: %s" 
> (show_data r)
>         | EOp(_,RecordTypeMap,[[a;EType(_,b)]]) ->
>             let a,l = term s a, ty_record s b
>             Map.map (fun (_i,k) v -> type_apply s (apply s (a, DSymbol k)) v) l 
> |> DRecord
>         | EOp(_,RecordTypeIter,[[a;EType(_,b)]]) ->
>             let a,l = term s a, ty_record s b
>             Map.iter (fun (_i, k) v ->
>                 match type_apply s (apply s (a, DSymbol k)) v with
>                 | DB -> ()
>                 | x -> raise_type_error s <| sprintf "Expected an unit 
> value.\nGot: %s" (show_data x)
>                 ) l 
>             DB
>         | EOp(_,RecordTypeFold,[[f;state;EType(_,x)]]) ->
>             let f,state,l = term s f, term s state, ty_record s x
>             Map.fold (fun state (_, k) v -> type_apply s (apply s ((apply s (f, 
> state), DSymbol k))) v) state l
>         | EOp(_,RecordTypeFoldBack,[[f;state;EType(_,x)]]) ->
>             let f,state,l = term s f, term s state, ty_record s x
>             Map.foldBack (fun (_, k) v state -> apply s ((type_apply s (apply s 
> (f, DSymbol k)) v), state)) l state
>         | EOp(_,RecordTypeLength,[[EType(_,a)]]) ->
>             Map.count (ty_record s a) |> LitInt32 |> DLit
>         | EOp(_,RecordTypeTryFind,[[EType(_,a);k;on_succ;on_fail]]) ->
>             match ty_record s a, term s k with
>             | l, DSymbol k ->
>                 match l |> Map.tryPick (fun (_, k') v -> if k' = k then Some v 
> else None) with
>                 | Some v -> type_apply s (term s on_succ) v
>                 | None -> apply s (term s on_fail, DB)
>             | _, k -> raise_type_error s <| sprintf "Expected a symbol.\nGot: 
> %s" (show_data k)
>         | EOp(_,UnionToRecord,[[EType(_,a);on_succ]]) ->
>             type_apply s (term s on_succ) (YRecord (ty_union s a).Item.cases)
>         | EOp(_,Add,[[a;b]]) -> 
>             let inline op a b = a + b
>             match term2 s a b with
>             | DLit a, DLit b ->
>                 match a, b with
>                 | LitInt8 a, LitInt8 b -> op a b |> LitInt8 |> DLit
>                 | LitInt16 a, LitInt16 b -> op a b |> LitInt16 |> DLit
>                 | LitInt32 a, LitInt32 b -> op a b |> LitInt32 |> DLit
>                 | LitInt64 a, LitInt64 b -> op a b |> LitInt64 |> DLit
>                 | LitUInt8 a, LitUInt8 b -> op a b |> LitUInt8 |> DLit
>                 | LitUInt16 a, LitUInt16 b -> op a b |> LitUInt16 |> DLit
>                 | LitUInt32 a, LitUInt32 b -> op a b |> LitUInt32 |> DLit
>                 | LitUInt64 a, LitUInt64 b -> op a b |> LitUInt64 |> DLit
>                 | LitFloat32 a, LitFloat32 b -> op a b |> nan_guardf32  |> 
> LitFloat32 |> DLit
>                 | LitFloat64 a, LitFloat64 b -> op a b |> nan_guardf64 |> 
> LitFloat64 |> DLit
>                 | a, b -> raise_type_error s <| sprintf "The two literals must 
> be both numeric and equal in type.\nGot: %s and %s" (show_lit a) (show_lit b)
>             | a, b ->
>                 let a_ty, b_ty = data_to_ty s a, data_to_ty s b 
>                 if a_ty = b_ty then
>                     if is_lit_zero a then b
>                     elif is_lit_zero b then a
>                     elif is_numeric a_ty then push_binop s Add (a,b) a_ty
>                     else raise_type_error s <| sprintf "The type of the two 
> arguments needs to be a numeric type.\nGot: %s" (show_ty a_ty)
>                 else
>                     raise_type_error s <| sprintf "The two sides need to have 
> the same numeric types.\nGot: %s and %s." (show_ty a_ty) (show_ty b_ty)
>         | EOp(_,Sub,[[a;b]]) ->
>             let inline op a b = a - b
>             match term2 s a b with
>             | DLit a, DLit b ->
>                 match a, b with
>                 | LitInt8 a, LitInt8 b -> op a b |> LitInt8 |> DLit
>                 | LitInt16 a, LitInt16 b -> op a b |> LitInt16 |> DLit
>                 | LitInt32 a, LitInt32 b -> op a b |> LitInt32 |> DLit
>                 | LitInt64 a, LitInt64 b -> op a b |> LitInt64 |> DLit
>                 | LitUInt8 a, LitUInt8 b -> op a b |> LitUInt8 |> DLit
>                 | LitUInt16 a, LitUInt16 b -> op a b |> LitUInt16 |> DLit
>                 | LitUInt32 a, LitUInt32 b -> op a b |> LitUInt32 |> DLit
>                 | LitUInt64 a, LitUInt64 b -> op a b |> LitUInt64 |> DLit
>                 | LitFloat32 a, LitFloat32 b -> op a b |> nan_guardf32  |> 
> LitFloat32 |> DLit
>                 | LitFloat64 a, LitFloat64 b -> op a b |> nan_guardf64 |> 
> LitFloat64 |> DLit
>                 | a, b -> raise_type_error s <| sprintf "The two literals must 
> be both numeric and equal in type.\nGot: %s and %s" (show_lit a) (show_lit b)
>             | a, b ->
>                 let a_ty, b_ty = data_to_ty s a, data_to_ty s b 
>                 if a_ty = b_ty then
>                     if is_lit_zero a && is_signed_numeric a_ty then push_op s 
> Neg b b_ty
>                     elif is_lit_zero b then a
>                     elif is_any_int a_ty && a = b then DLit(lit_zero a_ty)
>                     elif is_numeric a_ty then push_binop s Sub (a,b) a_ty
>                     else raise_type_error s <| sprintf "The type of the two 
> arguments needs to be a numeric type.\nGot: %s" (show_ty a_ty)
>                 else
>                     raise_type_error s <| sprintf "The two sides need to have 
> the same numeric types.\nGot: %s and %s." (show_ty a_ty) (show_ty b_ty)
>         | EOp(_,Mult,[[a;b]]) ->
>             let inline op a b = a * b
>             match term2 s a b with
>             | DLit a, DLit b ->
>                 match a, b with
>                 | LitInt8 a, LitInt8 b -> op a b |> LitInt8 |> DLit
>                 | LitInt16 a, LitInt16 b -> op a b |> LitInt16 |> DLit
>                 | LitInt32 a, LitInt32 b -> op a b |> LitInt32 |> DLit
>                 | LitInt64 a, LitInt64 b -> op a b |> LitInt64 |> DLit
>                 | LitUInt8 a, LitUInt8 b -> op a b |> LitUInt8 |> DLit
>                 | LitUInt16 a, LitUInt16 b -> op a b |> LitUInt16 |> DLit
>                 | LitUInt32 a, LitUInt32 b -> op a b |> LitUInt32 |> DLit
>                 | LitUInt64 a, LitUInt64 b -> op a b |> LitUInt64 |> DLit
>                 | LitFloat32 a, LitFloat32 b -> op a b |> nan_guardf32  |> 
> LitFloat32 |> DLit
>                 | LitFloat64 a, LitFloat64 b -> op a b |> nan_guardf64 |> 
> LitFloat64 |> DLit
>                 | a, b -> raise_type_error s <| sprintf "The two literals must 
> be both numeric and equal in type.\nGot: %s and %s" (show_lit a) (show_lit b)
>             | a, b ->
>                 let a_ty, b_ty = data_to_ty s a, data_to_ty s b 
>                 if a_ty = b_ty then
>                     if is_int_lit_zero a || is_int_lit_zero b then lit_zero a_ty
> |> DLit
>                     elif is_lit_one a then b
>                     elif is_lit_one b then a
>                     elif is_numeric a_ty then push_binop s Mult (a,b) a_ty
>                     else raise_type_error s <| sprintf "The type of the two 
> arguments needs to be a numeric type.\nGot: %s" (show_ty a_ty)
>                 else
>                     raise_type_error s <| sprintf "The two sides need to have 
> the same numeric types.\nGot: %s and %s." (show_ty a_ty) (show_ty b_ty)
>         | EOp(_,Div,[[a;b]]) -> 
>             let inline op a b = a / b
>             try
>                 match term2 s a b with
>                 | DLit a, DLit b ->
>                     match a, b with
>                     | LitInt8 a, LitInt8 b -> op a b |> LitInt8 |> DLit
>                     | LitInt16 a, LitInt16 b -> op a b |> LitInt16 |> DLit
>                     | LitInt32 a, LitInt32 b -> op a b |> LitInt32 |> DLit
>                     | LitInt64 a, LitInt64 b -> op a b |> LitInt64 |> DLit
>                     | LitUInt8 a, LitUInt8 b -> op a b |> LitUInt8 |> DLit
>                     | LitUInt16 a, LitUInt16 b -> op a b |> LitUInt16 |> DLit
>                     | LitUInt32 a, LitUInt32 b -> op a b |> LitUInt32 |> DLit
>                     | LitUInt64 a, LitUInt64 b -> op a b |> LitUInt64 |> DLit
>                     | LitFloat32 a, LitFloat32 b -> op a b |> nan_guardf32  |> 
> LitFloat32 |> DLit
>                     | LitFloat64 a, LitFloat64 b -> op a b |> nan_guardf64 |> 
> LitFloat64 |> DLit
>                     | a, b -> raise_type_error s <| sprintf "The two literals 
> must be both numeric and equal in type.\nGot: %s and %s" (show_lit a) (show_lit 
> b)
>                 | a, b ->
>                     let a_ty, b_ty = data_to_ty s a, data_to_ty s b 
>                     if a_ty = b_ty then
>                         if is_lit_zero b then raise 
> (System.DivideByZeroException())
>                         elif is_lit_one b then a
>                         elif is_numeric a_ty then push_binop s Div (a,b) a_ty
>                         else raise_type_error s <| sprintf "The type of the two 
> arguments needs to be a numeric type.\nGot: %s" (show_ty a_ty)
>                     else
>                         raise_type_error s <| sprintf "The two sides need to 
> have the same numeric types.\nGot: %s and %s." (show_ty a_ty) (show_ty b_ty)
>             with :? System.DivideByZeroException ->
>                 raise_type_error s <| sprintf "An attempt to divide by zero has 
> been detected at compile time."
>         | EOp(_,Pow,[[a;b]]) -> 
>             let inline op a b = a ** b
>             match term2 s a b with
>             | DLit a, DLit b ->
>                 match a, b with
>                 | LitFloat32 a, LitFloat32 b -> op a b |> nan_guardf32 |> 
> LitFloat32 |> DLit
>                 | LitFloat64 a, LitFloat64 b -> op a b |> nan_guardf64 |> 
> LitFloat64 |> DLit
>                 | a, b -> raise_type_error s <| sprintf "The two literals must 
> be both float and equal in type.\nGot: %s and %s" (show_lit a) (show_lit b)
>             | a, b ->
>                 let a_ty, b_ty = data_to_ty s a, data_to_ty s b 
>                 if a_ty = b_ty && is_float a_ty then push_binop s Pow (a,b) a_ty
>                 else raise_type_error s <| sprintf "The two sides need to have 
> the same float types.\nGot: %s and %s." (show_ty a_ty) (show_ty b_ty)
>         | EOp(_,Mod,[[a;b]]) -> 
>             let inline op a b = a % b
>             try
>                 match term2 s a b with
>                 | DLit a, DLit b ->
>                     match a, b with
>                     | LitInt8 a, LitInt8 b -> op a b |> LitInt8 |> DLit
>                     | LitInt16 a, LitInt16 b -> op a b |> LitInt16 |> DLit
>                     | LitInt32 a, LitInt32 b -> op a b |> LitInt32 |> DLit
>                     | LitInt64 a, LitInt64 b -> op a b |> LitInt64 |> DLit
>                     | LitUInt8 a, LitUInt8 b -> op a b |> LitUInt8 |> DLit
>                     | LitUInt16 a, LitUInt16 b -> op a b |> LitUInt16 |> DLit
>                     | LitUInt32 a, LitUInt32 b -> op a b |> LitUInt32 |> DLit
>                     | LitUInt64 a, LitUInt64 b -> op a b |> LitUInt64 |> DLit
>                     | LitFloat32 a, LitFloat32 b -> op a b |> nan_guardf32  |> 
> LitFloat32 |> DLit
>                     | LitFloat64 a, LitFloat64 b -> op a b |> nan_guardf64 |> 
> LitFloat64 |> DLit
>                     | a, b -> raise_type_error s <| sprintf "The two literals 
> must be both numeric and equal in type.\nGot: %s and %s" (show_lit a) (show_lit 
> b)
>                 | a, b ->
>                     let a_ty, b_ty = data_to_ty s a, data_to_ty s b 
>                     if a_ty = b_ty then
>                         if is_lit_zero b then raise 
> (System.DivideByZeroException())
>                         elif is_numeric a_ty then push_binop s Mod (a,b) a_ty
>                         else raise_type_error s <| sprintf "The type of the two 
> arguments needs to be a numeric type.\nGot: %s" (show_ty a_ty)
>                     else
>                         raise_type_error s <| sprintf "The two sides need to 
> have the same numeric types.\nGot: %s and %s." (show_ty a_ty) (show_ty b_ty)
>             with :? System.DivideByZeroException ->
>                 raise_type_error s <| sprintf "An attempt to divide by zero has 
> been detected at compile time."
>         | EOp(_,LT,[[a;b]]) ->
>             let inline op a b = a < b
>             match term2 s a b with
>             | DLit a, DLit b ->
>                 match a, b with
>                 | LitInt8 a, LitInt8 b -> op a b |> LitBool |> DLit
>                 | LitInt16 a, LitInt16 b -> op a b |> LitBool |> DLit
>                 | LitInt32 a, LitInt32 b -> op a b |> LitBool |> DLit
>                 | LitInt64 a, LitInt64 b -> op a b |> LitBool |> DLit
>                 | LitUInt8 a, LitUInt8 b -> op a b |> LitBool |> DLit
>                 | LitUInt16 a, LitUInt16 b -> op a b |> LitBool |> DLit
>                 | LitUInt32 a, LitUInt32 b -> op a b |> LitBool |> DLit
>                 | LitUInt64 a, LitUInt64 b -> op a b |> LitBool |> DLit
>                 | LitFloat32 a, LitFloat32 b -> op a b |> LitBool |> DLit
>                 | LitFloat64 a, LitFloat64 b -> op a b |> LitBool |> DLit
>                 | LitString a, LitString b -> op a b |> LitBool |> DLit
>                 | LitChar a, LitChar b -> op a b |> LitBool |> DLit
>                 | LitBool a, LitBool b -> op a b |> LitBool |> DLit
>                 | a, b -> raise_type_error s <| sprintf "The two literals must 
> be equal in type.\nGot: %s and %s" (show_lit a) (show_lit b)
>             | a, b ->
>                 let a_ty, b_ty = data_to_ty s a, data_to_ty s b 
>                 if a_ty = b_ty then
>                     if is_primitive a_ty then push_binop s LT (a,b) (YPrim 
> BoolT)
>                     else raise_type_error s <| sprintf "The type of the two 
> arguments needs to be a primitive type.\nGot: %s" (show_ty a_ty)
>                 else
>                     raise_type_error s <| sprintf "The two sides need to have 
> the same primitive types.\nGot: %s and %s." (show_ty a_ty) (show_ty b_ty)
>         | EOp(_,LTE,[[a;b]]) ->
>             let inline op a b = a <= b
>             match term2 s a b with
>             | DLit a, DLit b ->
>                 match a, b with
>                 | LitInt8 a, LitInt8 b -> op a b |> LitBool |> DLit
>                 | LitInt16 a, LitInt16 b -> op a b |> LitBool |> DLit
>                 | LitInt32 a, LitInt32 b -> op a b |> LitBool |> DLit
>                 | LitInt64 a, LitInt64 b -> op a b |> LitBool |> DLit
>                 | LitUInt8 a, LitUInt8 b -> op a b |> LitBool |> DLit
>                 | LitUInt16 a, LitUInt16 b -> op a b |> LitBool |> DLit
>                 | LitUInt32 a, LitUInt32 b -> op a b |> LitBool |> DLit
>                 | LitUInt64 a, LitUInt64 b -> op a b |> LitBool |> DLit
>                 | LitFloat32 a, LitFloat32 b -> op a b |> LitBool |> DLit
>                 | LitFloat64 a, LitFloat64 b -> op a b |> LitBool |> DLit
>                 | LitString a, LitString b -> op a b |> LitBool |> DLit
>                 | LitChar a, LitChar b -> op a b |> LitBool |> DLit
>                 | LitBool a, LitBool b -> op a b |> LitBool |> DLit
>                 | a, b -> raise_type_error s <| sprintf "The two literals must 
> be equal in type.\nGot: %s and %s" (show_lit a) (show_lit b)
>             | a, b ->
>                 let a_ty, b_ty = data_to_ty s a, data_to_ty s b 
>                 if a_ty = b_ty then
>                     if is_primitive a_ty then push_binop s LTE (a,b) (YPrim 
> BoolT)
>                     else raise_type_error s <| sprintf "The type of the two 
> arguments needs to be a primitive type.\nGot: %s" (show_ty a_ty)
>                 else
>                     raise_type_error s <| sprintf "The two sides need to have 
> the same primitive types.\nGot: %s and %s." (show_ty a_ty) (show_ty b_ty)
>         | EOp(_,GT,[[a;b]]) -> 
>             let inline op a b = a > b
>             match term2 s a b with
>             | DLit a, DLit b ->
>                 match a, b with
>                 | LitInt8 a, LitInt8 b -> op a b |> LitBool |> DLit
>                 | LitInt16 a, LitInt16 b -> op a b |> LitBool |> DLit
>                 | LitInt32 a, LitInt32 b -> op a b |> LitBool |> DLit
>                 | LitInt64 a, LitInt64 b -> op a b |> LitBool |> DLit
>                 | LitUInt8 a, LitUInt8 b -> op a b |> LitBool |> DLit
>                 | LitUInt16 a, LitUInt16 b -> op a b |> LitBool |> DLit
>                 | LitUInt32 a, LitUInt32 b -> op a b |> LitBool |> DLit
>                 | LitUInt64 a, LitUInt64 b -> op a b |> LitBool |> DLit
>                 | LitFloat32 a, LitFloat32 b -> op a b |> LitBool |> DLit
>                 | LitFloat64 a, LitFloat64 b -> op a b |> LitBool |> DLit
>                 | LitString a, LitString b -> op a b |> LitBool |> DLit
>                 | LitChar a, LitChar b -> op a b |> LitBool |> DLit
>                 | LitBool a, LitBool b -> op a b |> LitBool |> DLit
>                 | a, b -> raise_type_error s <| sprintf "The two literals must 
> be equal in type.\nGot: %s and %s" (show_lit a) (show_lit b)
>             | a, b ->
>                 let a_ty, b_ty = data_to_ty s a, data_to_ty s b 
>                 if a_ty = b_ty then
>                     if is_primitive a_ty then push_binop s GT (a,b) (YPrim 
> BoolT)
>                     else raise_type_error s <| sprintf "The type of the two 
> arguments needs to be a primitive type.\nGot: %s" (show_ty a_ty)
>                 else
>                     raise_type_error s <| sprintf "The two sides need to have 
> the same primitive types.\nGot: %s and %s." (show_ty a_ty) (show_ty b_ty)
>         | EOp(_,GTE,[[a;b]]) -> 
>             let inline op a b = a >= b
>             match term2 s a b with
>             | DLit a, DLit b ->
>                 match a, b with
>                 | LitInt8 a, LitInt8 b -> op a b |> LitBool |> DLit
>                 | LitInt16 a, LitInt16 b -> op a b |> LitBool |> DLit
>                 | LitInt32 a, LitInt32 b -> op a b |> LitBool |> DLit
>                 | LitInt64 a, LitInt64 b -> op a b |> LitBool |> DLit
>                 | LitUInt8 a, LitUInt8 b -> op a b |> LitBool |> DLit
>                 | LitUInt16 a, LitUInt16 b -> op a b |> LitBool |> DLit
>                 | LitUInt32 a, LitUInt32 b -> op a b |> LitBool |> DLit
>                 | LitUInt64 a, LitUInt64 b -> op a b |> LitBool |> DLit
>                 | LitFloat32 a, LitFloat32 b -> op a b |> LitBool |> DLit
>                 | LitFloat64 a, LitFloat64 b -> op a b |> LitBool |> DLit
>                 | LitString a, LitString b -> op a b |> LitBool |> DLit
>                 | LitChar a, LitChar b -> op a b |> LitBool |> DLit
>                 | LitBool a, LitBool b -> op a b |> LitBool |> DLit
>                 | a, b -> raise_type_error s <| sprintf "The two literals must 
> be equal in type.\nGot: %s and %s" (show_lit a) (show_lit b)
>             | a, b ->
>                 let a_ty, b_ty = data_to_ty s a, data_to_ty s b 
>                 if a_ty = b_ty then
>                     if is_primitive a_ty then push_binop s GTE (a,b) (YPrim 
> BoolT)
>                     else raise_type_error s <| sprintf "The type of the two 
> arguments needs to be a primitive type.\nGot: %s" (show_ty a_ty)
>                 else
>                     raise_type_error s <| sprintf "The two sides need to have 
> the same primitive types.\nGot: %s and %s." (show_ty a_ty) (show_ty b_ty)
>         | EOp(_,EQ,[[a;b]]) -> eq s (term s a) (term s b)
>         | EOp(_,NEQ,[[a;b]]) ->
>             let inline op a b = a <> b
>             match term2 s a b with
>             | DLit a, DLit b ->
>                 match a, b with
>                 | LitInt8 a, LitInt8 b -> op a b |> LitBool |> DLit
>                 | LitInt16 a, LitInt16 b -> op a b |> LitBool |> DLit
>                 | LitInt32 a, LitInt32 b -> op a b |> LitBool |> DLit
>                 | LitInt64 a, LitInt64 b -> op a b |> LitBool |> DLit
>                 | LitUInt8 a, LitUInt8 b -> op a b |> LitBool |> DLit
>                 | LitUInt16 a, LitUInt16 b -> op a b |> LitBool |> DLit
>                 | LitUInt32 a, LitUInt32 b -> op a b |> LitBool |> DLit
>                 | LitUInt64 a, LitUInt64 b -> op a b |> LitBool |> DLit
>                 | LitFloat32 a, LitFloat32 b -> op a b |> LitBool |> DLit
>                 | LitFloat64 a, LitFloat64 b -> op a b |> LitBool |> DLit
>                 | LitString a, LitString b -> op a b |> LitBool |> DLit
>                 | LitChar a, LitChar b -> op a b |> LitBool |> DLit
>                 | LitBool a, LitBool b -> op a b |> LitBool |> DLit
>                 | a, b -> raise_type_error s <| sprintf "The two literals must 
> be equal in type.\nGot: %s and %s" (show_lit a) (show_lit b)
>             | DV(L(a,a_ty)), DV(L(b,_)) when a = b && is_non_float_primitive 
> a_ty -> LitBool false |> DLit
>             | a, b ->
>                 let a_ty, b_ty = data_to_ty s a, data_to_ty s b 
>                 if a_ty = b_ty then
>                     match a, b with
>                     | DLit (LitBool false), x | x, DLit (LitBool false) -> x
>                     | _ ->
>                         if is_primitive a_ty then push_binop s NEQ (a,b) (YPrim 
> BoolT)
>                         else raise_type_error s <| sprintf "The type of the two 
> arguments needs to be a primitive type.\nGot: %s" (show_ty a_ty)
>                 else
>                     raise_type_error s <| sprintf "The two sides need to have 
> the same primitive types.\nGot: %s and %s." (show_ty a_ty) (show_ty b_ty)
>         | EOp(_,BitwiseAnd,[[a;b]]) -> 
>             let inline op a b = a &&& b
>             match term2 s a b with
>             | DLit a, DLit b ->
>                 match a, b with
>                 | LitInt8 a, LitInt8 b -> op a b |> LitInt8 |> DLit
>                 | LitInt16 a, LitInt16 b -> op a b |> LitInt16 |> DLit
>                 | LitInt32 a, LitInt32 b -> op a b |> LitInt32 |> DLit
>                 | LitInt64 a, LitInt64 b -> op a b |> LitInt64 |> DLit
>                 | LitUInt8 a, LitUInt8 b -> op a b |> LitUInt8 |> DLit
>                 | LitUInt16 a, LitUInt16 b -> op a b |> LitUInt16 |> DLit
>                 | LitUInt32 a, LitUInt32 b -> op a b |> LitUInt32 |> DLit
>                 | LitUInt64 a, LitUInt64 b -> op a b |> LitUInt64 |> DLit
>                 | a, b -> raise_type_error s <| sprintf "The two literals must 
> be both ints and equal in type.\nGot: %s and %s" (show_lit a) (show_lit b)
>             | a, b ->
>                 let a_ty, b_ty = data_to_ty s a, data_to_ty s b 
>                 if a_ty = b_ty then
>                     if is_any_int a_ty then push_binop s BitwiseAnd (a,b) a_ty
>                     else raise_type_error s <| sprintf "The type of the two 
> arguments needs to be a int type.\nGot: %s" (show_ty a_ty)
>                 else
>                     raise_type_error s <| sprintf "The two sides need to have 
> the same int types.\nGot: %s and %s." (show_ty a_ty) (show_ty b_ty)
>         | EOp(_,BitwiseOr,[[a;b]]) ->
>             let inline op a b = a ||| b
>             match term2 s a b with
>             | DLit a, DLit b ->
>                 match a, b with
>                 | LitInt8 a, LitInt8 b -> op a b |> LitInt8 |> DLit
>                 | LitInt16 a, LitInt16 b -> op a b |> LitInt16 |> DLit
>                 | LitInt32 a, LitInt32 b -> op a b |> LitInt32 |> DLit
>                 | LitInt64 a, LitInt64 b -> op a b |> LitInt64 |> DLit
>                 | LitUInt8 a, LitUInt8 b -> op a b |> LitUInt8 |> DLit
>                 | LitUInt16 a, LitUInt16 b -> op a b |> LitUInt16 |> DLit
>                 | LitUInt32 a, LitUInt32 b -> op a b |> LitUInt32 |> DLit
>                 | LitUInt64 a, LitUInt64 b -> op a b |> LitUInt64 |> DLit
>                 | a, b -> raise_type_error s <| sprintf "The two literals must 
> be both ints and equal in type.\nGot: %s and %s" (show_lit a) (show_lit b)
>             | a, b ->
>                 let a_ty, b_ty = data_to_ty s a, data_to_ty s b 
>                 if a_ty = b_ty then
>                     if is_any_int a_ty then push_binop s BitwiseOr (a,b) a_ty
>                     else raise_type_error s <| sprintf "The type of the two 
> arguments needs to be a int type.\nGot: %s" (show_ty a_ty)
>                 else
>                     raise_type_error s <| sprintf "The two sides need to have 
> the same int types.\nGot: %s and %s." (show_ty a_ty) (show_ty b_ty)
>         | EOp(_,BitwiseXor,[[a;b]]) ->
>             let inline op a b = a ^^^ b
>             match term2 s a b with
>             | DLit a, DLit b ->
>                 match a, b with
>                 | LitInt8 a, LitInt8 b -> op a b |> LitInt8 |> DLit
>                 | LitInt16 a, LitInt16 b -> op a b |> LitInt16 |> DLit
>                 | LitInt32 a, LitInt32 b -> op a b |> LitInt32 |> DLit
>                 | LitInt64 a, LitInt64 b -> op a b |> LitInt64 |> DLit
>                 | LitUInt8 a, LitUInt8 b -> op a b |> LitUInt8 |> DLit
>                 | LitUInt16 a, LitUInt16 b -> op a b |> LitUInt16 |> DLit
>                 | LitUInt32 a, LitUInt32 b -> op a b |> LitUInt32 |> DLit
>                 | LitUInt64 a, LitUInt64 b -> op a b |> LitUInt64 |> DLit
>                 | a, b -> raise_type_error s <| sprintf "The two literals must 
> be both ints and equal in type.\nGot: %s and %s" (show_lit a) (show_lit b)
>             | a, b ->
>                 let a_ty, b_ty = data_to_ty s a, data_to_ty s b 
>                 if a_ty = b_ty then
>                     if is_any_int a_ty then push_binop s BitwiseXor (a,b) a_ty
>                     else raise_type_error s <| sprintf "The type of the two 
> arguments needs to be a int type.\nGot: %s" (show_ty a_ty)
>                 else
>                     raise_type_error s <| sprintf "The two sides need to have 
> the same int types.\nGot: %s and %s." (show_ty a_ty) (show_ty b_ty)
>         | EOp(_,BitwiseComplement,[[a]]) ->
>             let inline op a = ~~~a
>             match term s a with
>             | DLit a ->
>                 match a with
>                 | LitInt8 a -> op a |> LitInt8 |> DLit
>                 | LitInt16 a -> op a |> LitInt16 |> DLit
>                 | LitInt32 a -> op a |> LitInt32 |> DLit
>                 | LitInt64 a -> op a |> LitInt64 |> DLit
>                 | LitUInt8 a -> op a |> LitUInt8 |> DLit
>                 | LitUInt16 a -> op a |> LitUInt16 |> DLit
>                 | LitUInt32 a -> op a |> LitUInt32 |> DLit
>                 | LitUInt64 a -> op a |> LitUInt64 |> DLit
>                 | a -> raise_type_error s <| sprintf "The literal must be an 
> int.\nGot: %s" (show_lit a)
>             | a ->
>                 let a_ty = data_to_ty s a
>                 if is_any_int a_ty then push_op s BitwiseComplement a a_ty
>                 else raise_type_error s <| sprintf "The type of the two 
> arguments needs to be a int type.\nGot: %s" (show_ty a_ty)
>         | EOp(_,ShiftLeft,[[a;b]]) -> 
>             let inline op a b = a <<< b
>             match term2 s a b with
>             | DLit a, DLit b ->
>                 match a, b with
>                 | LitInt8 a, LitInt32 b -> op a b |> LitInt8 |> DLit
>                 | LitInt16 a, LitInt32 b -> op a b |> LitInt16 |> DLit
>                 | LitInt32 a, LitInt32 b -> op a b |> LitInt32 |> DLit
>                 | LitInt64 a, LitInt32 b -> op a b |> LitInt64 |> DLit
>                 | LitUInt8 a, LitInt32 b -> op a b |> LitUInt8 |> DLit
>                 | LitUInt16 a, LitInt32 b -> op a b |> LitUInt16 |> DLit
>                 | LitUInt32 a, LitInt32 b -> op a b |> LitUInt32 |> DLit
>                 | LitUInt64 a, LitInt32 b -> op a b |> LitUInt64 |> DLit
>                 | a, b -> raise_type_error s <| sprintf "The first literal must 
> be an int and the second must be a 32-bit signed int.\nGot: %s and %s" (show_lit
> a) (show_lit b)
>             | a, b ->
>                 let a_ty, b_ty = data_to_ty s a, data_to_ty s b 
>                 if is_any_int a_ty && is_int32 b_ty then push_binop s ShiftLeft 
> (a,b) a_ty
>                 else raise_type_error s <| sprintf "The type of the first 
> argument must be an int and the second must be a 32-bit signed int.\nGot: %s and
> %s" (show_ty a_ty) (show_ty b_ty)
>         | EOp(_,ShiftRight,[[a;b]]) ->
>             let inline op a b = a >>> b
>             match term2 s a b with
>             | DLit a, DLit b ->
>                 match a, b with
>                 | LitInt8 a, LitInt32 b -> op a b |> LitInt8 |> DLit
>                 | LitInt16 a, LitInt32 b -> op a b |> LitInt16 |> DLit
>                 | LitInt32 a, LitInt32 b -> op a b |> LitInt32 |> DLit
>                 | LitInt64 a, LitInt32 b -> op a b |> LitInt64 |> DLit
>                 | LitUInt8 a, LitInt32 b -> op a b |> LitUInt8 |> DLit
>                 | LitUInt16 a, LitInt32 b -> op a b |> LitUInt16 |> DLit
>                 | LitUInt32 a, LitInt32 b -> op a b |> LitUInt32 |> DLit
>                 | LitUInt64 a, LitInt32 b -> op a b |> LitUInt64 |> DLit
>                 | a, b -> raise_type_error s <| sprintf "The first literal must 
> be an int and the second must be a 32-bit signed int.\nGot: %s and %s" (show_lit
> a) (show_lit b)
>             | a, b ->
>                 let a_ty, b_ty = data_to_ty s a, data_to_ty s b 
>                 if is_any_int a_ty && is_int32 b_ty then push_binop s ShiftRight
> (a,b) a_ty
>                 else raise_type_error s <| sprintf "The type of the first 
> argument must be an int and the second must be a 32-bit signed int.\nGot: %s and
> %s" (show_ty a_ty) (show_ty b_ty)
>         | EOp(_,Neg,[[a]]) ->
>             let inline op a = -a
>             match term s a with
>             | DLit a ->
>                 match a with
>                 | LitInt8 a -> op a |> LitInt8 |> DLit
>                 | LitInt16 a -> op a |> LitInt16 |> DLit
>                 | LitInt32 a -> op a |> LitInt32 |> DLit
>                 | LitInt64 a -> op a |> LitInt64 |> DLit
>                 | LitFloat32 a -> op a |> LitFloat32 |> DLit
>                 | LitFloat64 a -> op a |> LitFloat64 |> DLit
>                 | _ -> raise_type_error s <| sprintf "The literal must be a 
> signed numeric type.\nGot: %s" (show_lit a)
>             | a ->
>                 let a_ty = data_to_ty s a
>                 if is_signed_numeric a_ty then push_op s Neg a a_ty
>                 else raise_type_error s <| sprintf "The argument must be a 
> signed numeric type.\nGot: %s" (show_ty a_ty)
>         | EOp(_,Tanh,[[a]]) -> 
>             let inline op a = tanh a
>             match term s a with
>             | DLit a ->
>                 match a with
>                 | LitFloat32 a -> op a |> nan_guardf32 |> LitFloat32 |> DLit
>                 | LitFloat64 a -> op a |> nan_guardf64 |> LitFloat64 |> DLit
>                 | _ -> raise_type_error s <| sprintf "The literal must be a 
> float type.\nGot: %s" (show_lit a)
>             | a ->
>                 let a_ty = data_to_ty s a
>                 if is_float a_ty then push_op s Tanh a a_ty
>                 else raise_type_error s <| sprintf "The argument must be a float
> type.\nGot: %s" (show_ty a_ty)
>         | EOp(_,Log,[[a]]) ->
>             let inline op a = log a
>             match term s a with
>             | DLit a ->
>                 match a with
>                 | LitFloat32 a -> op a |> nan_guardf32 |> LitFloat32 |> DLit
>                 | LitFloat64 a -> op a |> nan_guardf64 |> LitFloat64 |> DLit
>                 | _ -> raise_type_error s <| sprintf "The literal must be a 
> float type.\nGot: %s" (show_lit a)
>             | a ->
>                 let a_ty = data_to_ty s a
>                 if is_float a_ty then push_op s Log a a_ty
>                 else raise_type_error s <| sprintf "The argument must be a float
> type.\nGot: %s" (show_ty a_ty)
>         | EOp(_,Exp,[[a]]) ->
>             let inline op a = exp a
>             match term s a with
>             | DLit a ->
>                 match a with
>                 | LitFloat32 a -> op a |> nan_guardf32 |> LitFloat32 |> DLit
>                 | LitFloat64 a -> op a |> nan_guardf64 |> LitFloat64 |> DLit
>                 | _ -> raise_type_error s <| sprintf "The literal must be a 
> float type.\nGot: %s" (show_lit a)
>             | a ->
>                 let a_ty = data_to_ty s a
>                 if is_float a_ty then push_op s Exp a a_ty
>                 else raise_type_error s <| sprintf "The argument must be a float
> type.\nGot: %s" (show_ty a_ty)
>         | EOp(_,Sqrt,[[a]]) ->
>             let inline op a = sqrt a
>             match term s a with
>             | DLit a ->
>                 match a with
>                 | LitFloat32 a -> op a |> nan_guardf32 |> LitFloat32 |> DLit
>                 | LitFloat64 a -> op a |> nan_guardf64 |> LitFloat64 |> DLit
>                 | _ -> raise_type_error s <| sprintf "The literal must be a 
> float type.\nGot: %s" (show_lit a)
>             | a ->
>                 let a_ty = data_to_ty s a
>                 if is_float a_ty then push_op s Sqrt a a_ty
>                 else raise_type_error s <| sprintf "The argument must be a float
> type.\nGot: %s" (show_ty a_ty)
>         | EOp(_,Sin,[[a]]) ->
>             let inline op a = sin a
>             match term s a with
>             | DLit a ->
>                 match a with
>                 | LitFloat32 a -> op a |> nan_guardf32 |> LitFloat32 |> DLit
>                 | LitFloat64 a -> op a |> nan_guardf64 |> LitFloat64 |> DLit
>                 | _ -> raise_type_error s <| sprintf "The literal must be a 
> float type.\nGot: %s" (show_lit a)
>             | a ->
>                 let a_ty = data_to_ty s a
>                 if is_float a_ty then push_op s Sin a a_ty
>                 else raise_type_error s <| sprintf "The argument must be a float
> type.\nGot: %s" (show_ty a_ty)
>         | EOp(_,Cos,[[a]]) ->
>             let inline op a = cos a
>             match term s a with
>             | DLit a ->
>                 match a with
>                 | LitFloat32 a -> op a |> nan_guardf32 |> LitFloat32 |> DLit
>                 | LitFloat64 a -> op a |> nan_guardf64 |> LitFloat64 |> DLit
>                 | _ -> raise_type_error s <| sprintf "The literal must be a 
> float type.\nGot: %s" (show_lit a)
>             | a ->
>                 let a_ty = data_to_ty s a
>                 if is_float a_ty then push_op s Cos a a_ty
>                 else raise_type_error s <| sprintf "The argument must be a float
> type.\nGot: %s" (show_ty a_ty)
>         | EOp(_,Conv,[[EType(_,typ);a]]) ->
>             let typ = ty s typ
>             let a = term s a
>             let at = data_to_ty s a
>             if typ = at then a
>             else
>                 let inline conv_lit x =
>                     match typ with
>                     | YPrim Int8T -> int8 x |> LitInt8
>                     | YPrim Int16T -> int16 x |> LitInt16
>                     | YPrim Int32T -> int32 x |> LitInt32
>                     | YPrim Int64T -> int64 x |> LitInt64
>                     | YPrim UInt8T -> uint8 x |> LitUInt8
>                     | YPrim UInt16T -> uint16 x |> LitUInt16
>                     | YPrim UInt32T -> uint32 x |> LitUInt32
>                     | YPrim UInt64T -> uint64 x |> LitUInt64
>                     | YPrim Float32T -> float32 x |> LitFloat32
>                     | YPrim Float64T -> float x |> LitFloat64
>                     | _ -> raise_type_error s <| sprintf "Cannot convert the 
> literal to the following type: %s" (show_ty typ)
>                     |> DLit
>                 match a with
>                 | DLit (LitInt8 a) -> conv_lit a
>                 | DLit (LitInt16 a) -> conv_lit a
>                 | DLit (LitInt32 a) -> conv_lit a
>                 | DLit (LitInt64 a) -> conv_lit a
>                 | DLit (LitUInt8 a) -> conv_lit a
>                 | DLit (LitUInt16 a) -> conv_lit a
>                 | DLit (LitUInt32 a) -> conv_lit a
>                 | DLit (LitUInt64 a) -> conv_lit a
>                 | DLit (LitFloat32 a) -> conv_lit a
>                 | DLit (LitFloat64 a) -> conv_lit a
>                 | _ ->
>                     let is_convertible_primt x =
>                         match x with
>                         | YPrim BoolT | YPrim CharT | YPrim StringT -> false
>                         | YPrim _ -> true
>                         | _ -> false
>                     if is_convertible_primt at && is_convertible_primt typ then 
> push_typedop s (TyConv(typ,a)) typ
>                     else raise_type_error s <| sprintf "Cannot convert %s to the
> following type: %s" (show_data a) (show_ty typ)
>         | EOp(_,NanIs,[[a]]) ->
>             let a = term s a
>             match data_to_ty s a with
>             | YPrim (Float32T | Float64T) -> push_op s NanIs a (YPrim BoolT)
>             | a -> raise_type_error s <| sprintf "Expected a float in NanIs. 
> Got: %s" (show_ty a)
>         | EOp(_,Infinity,[[EType(_,a)]]) -> 
>             match ty s a with
>             | YPrim Float32T -> DLit (LitFloat32 infinityf)
>             | YPrim Float64T -> DLit (LitFloat64 infinity)
>             | a -> raise_type_error s "Expected a float.\nGot: %s" (show_ty a)
>         | EOp(_,Pi,[[EType(_,a)]]) -> 
>             match ty s a with
>             | YPrim Float32T -> DLit (LitFloat32 System.Single.Pi)
>             | YPrim Float64T -> DLit (LitFloat64 System.Double.Pi)
>             | a -> raise_type_error s "Expected a float.\nGot: %s" (show_ty a)
>         | EOp(_,LitIs,[[a]]) ->
>             match term s a with
>             | DLit _ -> DLit (LitBool true)
>             | _ -> DLit (LitBool false)
>         | EOp(_,PrimIs,[[a]]) ->
>             match term s a |> data_to_ty s with
>             | YPrim _ -> DLit (LitBool true)
>             | _ -> DLit (LitBool false)
>         | EOp(_,SymbolIs,[[a]]) ->
>             match term s a with
>             | DSymbol _ -> DLit (LitBool true)
>             | _ -> DLit (LitBool false)
>         | EOp(_,VarIs,[[a]]) ->
>             match term s a with
>             | DNominal(DV _, _) | DV _ -> DLit (LitBool true)
>             | _ -> DLit (LitBool false)
>         | EOp(_,UnionIs,[[a]]) -> 
>             match term s a with
>             | DNominal(DV(L(_,YUnion _)), _) | DNominal(DUnion _, _) -> DLit 
> (LitBool true)
>             | _ -> DLit (LitBool false)
>         | EOp(_,HeapUnionIs,[[a]]) ->
>             match term s a with
>             | DNominal(DV(L(_,YUnion x)), _) | DNominal(DUnion(_,x), _) ->
>                 match x.Item.layout with UHeap -> true | UStack -> false
>                 |> LitBool |> DLit
>             | _ -> DLit (LitBool false)
>         | EOp(_,LayoutIs,[[a]]) ->
>             match term s a with
>             | DV(L(_,YLayout _)) -> DLit (LitBool true)
>             | _ -> DLit (LitBool false)
>         | EOp(_,NominalIs,[[a]]) ->
>             match term s a with
>             | DNominal(_, _) -> DLit (LitBool true)
>             | _ -> DLit (LitBool false)
>         | EOp(_,FunctionIs,[[a]]) ->
>             match term s a with
>             | DFunction _ | DV(L(_,YFun _)) -> DLit (LitBool true)
>             | _ -> DLit (LitBool false)
>         | EOp(_,ExistsIs,[[a]]) ->
>             match term s a with
>             | DExists _ -> DLit (LitBool true)
>             | _ -> DLit (LitBool false)
>         | EOp(_,PrimTypeIs,[[EType(_,a)]]) ->
>             match ty s a with
>             | YPrim _ -> DLit (LitBool true)
>             | _ -> DLit (LitBool false)
>         | EOp(_,SymbolTypeIs,[[EType(_,a)]]) ->
>             match ty s a with
>             | YSymbol _ -> DLit (LitBool true)
>             | _ -> DLit (LitBool false)
>         | EOp(_,UnionTypeIs,[[EType(_,a)]]) -> 
>             match ty s a with
>             | YNominal _ | YApply _ as a -> 
>                 match nominal_type_apply s a with
>                 | YUnion _ -> DLit (LitBool true)
>                 | _ -> DLit (LitBool false)
>             | _ -> DLit (LitBool false)
>         | EOp(_,HeapUnionTypeIs,[[EType(_,a)]]) ->
>             match ty s a with
>             | YNominal _ | YApply _ as a -> 
>                 match nominal_type_apply s a with
>                 | YUnion x -> DLit (LitBool (match x.Item.layout with UHeap -> 
> true | UStack -> false))
>                 | _ -> DLit (LitBool false)
>             | _ -> DLit (LitBool false)
>         | EOp(_,LayoutTypeIs,[[EType(_,a)]]) ->
>             match ty s a with
>             | YLayout _ -> DLit (LitBool true)
>             | _ -> DLit (LitBool false)
>         | EOp(_,ExistsTypeIs,[[EType(_,a)]]) ->
>             match ty s a with
>             | YExists -> DLit (LitBool true)
>             | _ -> DLit (LitBool false)
>         | EOp(_,NominalTypeIs,[[EType(_,a)]]) ->
>             match ty s a with
>             | YNominal _ | YApply _ -> DLit (LitBool true)
>             | _ -> DLit (LitBool false)
>         | EOp(_,NominalStrip,[[a]]) -> 
>             match term s a with
>             | DNominal(DV(L(_,YUnion _)), _) | DNominal(DUnion _, _) -> 
> raise_type_error s "Cannot strip the nominal wrapper from an union."
>             | DNominal(a,_) -> a
>             | a -> raise_type_error s <| sprintf "Expected a nominal.\nGot: %s" 
> (show_data a)
>         | EOp(_,NominalTypeApply,[[EType(_,a)]]) -> 
>             match ty s a with
>             | YNominal _ | YApply _ as a -> DExists([[|nominal_type_apply s 
> a|]], DB)
>             | a -> raise_type_error s <| sprintf "Expected a nominal type.\nGot:
> %s" (show_ty a)
>         | EOp(_,ExistsStrip,[[a]]) -> 
>             match term s a with
>             | DExists(_,a) -> a
>             | a -> raise_type_error s <| sprintf "Expected an existential.\nGot:
> %s" (show_data a)
>         | EOp(_,PrototypeHas,[[prot; EType(_,a)]]) ->
>             let body (x : Nominal) =
>                 let prot_er () = raise_type_error s "Expected a forall or a 
> prototype apply."
>                 let rec loop = function
>                     | EForall'(_,_,_,x) -> loop x
>                     | EPrototypeApply(_,prot_id,_) -> 
> env.prototypes_instances.ContainsKey(prot_id,x.node.id) |> LitBool |> DLit
>                     | _ -> prot_er()
>                 match term s prot with
>                 | DForall(body,_,_,_,_) -> loop body
>                 | _ -> prot_er()
>             let rec loop = function
>                 | YNominal x -> body x
>                 | YApply(l,_) -> loop l
>                 | a -> raise_type_error s <| sprintf "Expected a nominal.\nGot: 
> %s" (show_ty a)
>             loop (ty s a)
>         | EOp(_,TypeEq,[[EType(_,a);EType(_,b)]]) -> DLit(LitBool(ty s a = ty s 
> b))
>         | EOp(_,FailWith,[[EType(_,typ);a]]) ->
>             match ty s typ, term s a with
>             | typ, (DV(L(_,YPrim StringT)) | DLit(LitString _)) & a -> 
> push_typedop_no_rewrite s (TyFailwith(typ,a)) typ
>             | _,a -> raise_type_error s "Expected a string as input to 
> failwith.\nGot: %s" (show_data a)
>         | EOp(_,FailWith,_) -> raise_type_error s "Malformed FailWith"
>         | EOp(_,ErrorType,[[a]]) -> term s a |> show_data |> raise_type_error s
>         | EOp(_,PrintStatic,[[EType(_,a)]]) -> printfn "%s" (ty s a |> show_ty);
> DB
>         | EOp(_,PrintStatic,[[a]]) -> printfn "%s" (term s a |> show_data); DB
>         | EOp(_,PrintRaw,[[a]]) -> printfn "%A" 
> (Printable.eval(Choice1Of2(a,id))); DB
>         | EOp(_,UnionTag,[[a]]) ->
>             let eval k (h : Union) = h.Item.tags.[[k]] |> LitInt32 |> DLit
>             match term s a with
>             | DNominal(DV(L(_,YUnion h) & v) & a, _) ->
>                 match Map.tryFind v s.unions with
>                 | Some (UnionData (k,_)) -> eval k h
>                 | _ -> push_op s UnionTag a (YPrim Int32T)
>             | DNominal(DUnion(DPair(DSymbol k,_),h), _) -> eval k h
>             | a -> raise_type_error s <| sprintf "Expected an union.\nGot: %s" 
> (show_data a)
>         | EOp(_,Global & op,[[a]]) ->
>             match term s a with
>             | DLit (LitString text) & a ->
>                 // if text.Contains "import " || text.Contains "Fable" then
>                 //     let s = { s with trace = [[]]; seq = ResizeArray() }
>                 //     let l = s.cse |> List.map _.Count |> List.filter ((=) 0) 
> |> List.length
>                 //     Console.WriteLine ($"global / text: {text} / s: %A{s} / 
> l: {l}")
>                 if s.i.contents < 2 && s.cse |> List.map _.Count |> List.filter 
> ((=) 0) |> List.length = 2
>                 then global' text
>                 push_op_no_rewrite s op a YB
>             | a -> raise_type_error s $"Expected a string literal.\nGot: 
> {show_data a}"
>         | EOp(_,ToPythonRecord,[[a]]) ->
>             match term s a |> dyn false s with
>             | DRecord _ & a -> push_op_no_rewrite s ToPythonRecord a (YMacro 
> [[Text "object"]])
>             | a -> raise_type_error s $"Expected a record.\nGot: {show_data a}"
>         | EOp(_,ToPythonNamedTuple,[[n;a]]) ->
>             match term s n, term s a |> dyn false s with
>             | (DLit (LitString _) | DV(L(_,YPrim StringT))) & n, DRecord _ & a 
> -> push_binop_no_rewrite s ToPythonNamedTuple (n,a) (YMacro [[Text "object"]])
>             | n, a -> raise_type_error s $"Expected a pair of string and 
> record.\nGot: {show_data n}\nAnd: {show_data a}"
>         | EOp(_,VarTag,[[a]]) ->
>             match term s a with
>             | DNominal(DV(L(i,_)), _) | DV(L(i,_)) -> DLit (LitInt32 i)
>             | a -> raise_type_error s $"Expected a runtime variable.\nGot: 
> {show_data a}"
>         | EOp(_,TagToSymbol,[[a]]) ->
>             match term s a with
>             | DLit (LitInt32 i) -> DSymbol (string i)
>             | a -> raise_type_error s $"Expected an i32 literal.\nGot: 
> {show_data a}"
>         | EOp(_,FunctionTermSlotsGet,[[a]]) ->
>             match term s a with
>             | DFunction(_,_,free_vars,_,_,_) -> Array.foldBack (fun x s -> 
> DPair(x,s)) free_vars DB
>             | DV(L(_,YFun _)) -> raise_type_error s $"Expected a compile time 
> function. Got a runtime one."
>             | a -> raise_type_error s $"Expected a compile time function.\nGot: 
> {show_data a}"
>         | EOp(_,FunctionTermSlotsSet,[[a;b]]) ->
>             match term s a, term s b with
>             | DFunction(q1,q2,free_vars,q4,q5,a6), b -> 
>                 let mutable b = b
>                 let free_vars = 
>                     Array.init free_vars.Length (fun _ -> 
>                         match b with
>                         | DPair(q,w) -> b <- w; q
>                         | DB -> raise_type_error s "Unexpected end of the tuple 
> to be set."
>                         | _ -> raise_type_error s $"Expected a pair.\nGot: 
> {show_data b}"
>                         ) 
>                 match b with
>                 | DB -> DFunction(q1,q2,free_vars,q4,q5,a6)
>                 | _ -> raise_type_error s $"Expected an unit end of the 
> tuple.\nGot: {show_data b}"
>             | DV(L(_,YFun _)), _ -> raise_type_error s $"Expected a compile time
> function. Got a runtime one."
>             | a, _ -> raise_type_error s $"Expected a compile time 
> function.\nGot: {show_data a}"
>         | EOp(_,SizeOf,[[EType(_,a)]]) ->
>             match ty s a with
>             | YB | YSymbol _ -> DLit (LitInt32 0)
>             | YPrim (Int8T | UInt8T | BoolT) -> DLit (LitInt32 1)
>             | YPrim (Int16T | UInt16T) -> DLit (LitInt32 2)
>             | YPrim (Int32T | UInt32T | Float32T) -> DLit (LitInt32 4)
>             | YPrim (Int64T | UInt64T | Float64T) -> DLit (LitInt32 8)
>             | a -> push_typedop s (TySizeOf a) (YPrim Int32T) 
>         | EOp(_,FreeVars,[[a]]) ->
>             let x = term s a |> data_free_vars
>             Array.foldBack (fun x s -> DPair(DV x,s)) x (DRecord Map.empty)
>         | EOp(_,FreeVarsReplace,[[a;b]]) ->
>             let a = term s a
>             let b = term s b
>             let a_fv = a |> data_free_vars
>             let b_fv = b |> data_free_vars
>             if a_fv.Length <> b_fv.Length then raise_type_error s "The two 
> expressions need to have the same number of free variables."
>             let d = Dictionary(HashIdentity.Reference)
>             Array.iter2 (fun (L(_,ta) as a) (L(_,tb) as b) -> 
>                 if ta <> tb then raise_type_error s $"The free variables can 
> only be replaced with free vars of the same type.\nGot: {show_ty ta}\nExpected: 
> {show_ty tb}"
>                 d.Add(a,b)
>                 ) a_fv b_fv
>             data_free_vars_replace s d a
>         | EOp(_,HashSetCreate,[[]]) -> DHashSet(HashSet(HashIdentity.Reference))
>         | EOp(_,HashSetAdd,[[h;k]]) ->
>             match term s h, term s k with
>             | DHashSet h, k -> DLit(LitBool(h.Add k))
>             | h, _ -> raise_type_error s $"Expected a compile time 
> HashSet.\nGot: {show_data h}"
>         | EOp(_,HashSetContains,[[h;k]]) ->
>             match term s h, term s k with
>             | DHashSet h, k -> DLit(LitBool(h.Contains k))
>             | h, _ -> raise_type_error s $"Expected a compile time 
> HashSet.\nGot: {show_data h}"
>         | EOp(_,HashSetRemove,[[h;k]]) ->
>             match term s h, term s k with
>             | DHashSet h, k -> DLit(LitBool(h.Remove k))
>             | h, _ -> raise_type_error s $"Expected a compile time 
> HashSet.\nGot: {show_data h}"
>         | EOp(_,HashSetCount,[[h]]) ->
>             match term s h with
>             | DHashSet h -> DLit(LitInt32(h.Count))
>             | h -> raise_type_error s $"Expected a compile time HashSet.\nGot: 
> {show_data h}"
>         | EOp(_,HashMapCreate,[[]]) -> 
> DHashMap(OrderedDictionary(HashIdentity.Reference), ref true)
>         | EOp(_,HashMapSetImmutable,[[h]]) -> 
>             match term s h with
>             | DHashMap(_, is_writable) -> is_writable.Value <- false; DB
>             | h -> raise_type_error s $"Expected a compile time HashMap.\nGot: 
> {show_data h}"
>         | EOp(_,HashMapSet,[[h;k;v]]) ->
>             match term s h, term s k, term s v with
>             | DHashMap(h, is_writable), k, v when is_writable.Value -> h.[[k]] 
> <- v; DB
>             | DHashMap(h, _), _, _ -> raise_type_error s "The hash map has been 
> made read-only and cannot be added to."
>             | h, _, _ -> raise_type_error s $"Expected a compile time 
> HashMap.\nGot: {show_data h}"
>         | EOp(_,HashMapAdd,[[h;k;v]]) ->
>             match term s h, term s k, term s v with
>             | DHashMap(h, is_writable), k, v when is_writable.Value -> if 
> h.TryAdd(k,v) then DB else raise_type_error s "The entry with the same key 
> already exists in the dictionary."
>             | DHashMap(h, _), _, _ -> raise_type_error s "The hash map has been 
> made read-only and cannot be added to."
>             | h, _, _ -> raise_type_error s $"Expected a compile time 
> HashMap.\nGot: {show_data h}"
>         | EOp(_,HashMapTryAdd,[[h;k;v]]) ->
>             match term s h, term s k, term s v with
>             | DHashMap(h, is_writable), k, v -> if is_writable.Value then 
> DLit(LitBool(h.TryAdd(k,v))) else raise_type_error s "The hash map has been made
> read-only and cannot be added to."
>             | h, _, _ -> raise_type_error s $"Expected a compile time 
> HashMap.\nGot: {show_data h}"
>         | EOp(_,HashMapContains,[[h;k]]) ->
>             match term s h, term s k with
>             | DHashMap(h, _), k -> DLit(LitBool(h.ContainsKey k))
>             | h, _ -> raise_type_error s $"Expected a compile time 
> HashMap.\nGot: {show_data h}"
>         | EOp(_,HashMapRemove,[[h;k]]) ->
>             match term s h, term s k with
>             | DHashMap(h, is_writable), k -> if is_writable.Value then 
> DLit(LitBool(h.Remove k)) else raise_type_error s "The hash map has been made 
> read-only and cannot be removed from."
>             | h, _ -> raise_type_error s $"Expected a compile time 
> HashMap.\nGot: {show_data h}"
>         | EOp(_,HashMapCount,[[h]]) ->
>             match term s h with
>             | DHashMap(h, _) -> DLit(LitInt32(h.Count))
>             | h -> raise_type_error s $"Expected a compile time HashMap.\nGot: 
> {show_data h}"
>         | EOp(_,HashMapTryGet,[[h;k]]) ->
>             match term s h, term s k with
>             | DHashMap(h, _), k ->
>                 if k |> h.ContainsKey
>                 then k |> h.GetValueOrDefault
>                 else DSymbol "null"
>             | h, _ -> raise_type_error s $"Expected a compile time 
> HashMap.\nGot: {show_data h}"
>         | EOp(_,StaticStringConcat,[[l]]) ->
>             let strb = System.Text.StringBuilder()
>             let rec loop = function
>                 | DPair(a,b) -> loop a; loop b
>                 | DLit(LitString x) -> strb.Append(x) |> ignore
>                 | DB -> ()
>                 | x -> raise_type_error s $"Expected a compile time string or a 
> pair of them.\nGot: {show_data x}"
>             loop (term s l)
>             DLit(LitString(strb.ToString()))
>         | EOp(_,Printf,[[fmt;str]]) ->
>             let fmt,str = term2 s fmt str
>             match fmt with
>             | DLit(LitString _) -> push_binop_no_rewrite s Printf (fmt, str) YB
>             | _ -> raise_type_error s $"Expected a compile time string as the 
> format.\nGot: {show_data fmt}"
>         | EOp(_,op,a) -> raise_type_error s <| sprintf "Compiler error: %A with 
> %i args not implemented" op (List.length a)
> 
>     let s : LangEnv = {
>         trace = [[]]
>         seq = null
>         cse = [[]]
>         unions = Map.empty
>         i = ref 0
>         env_global_type = [[||]]
>         env_global_term = [[||]]
>         env_stack_type = [[||]]
>         env_stack_term = [[||]]
>         backend = backend_strings.Add env.backend
>         globals = ResizeArray ()
>         }
>     let ty_to_data x = ty_to_data {s with i = ref 0} x
>     let nominal_apply x = nominal_type_apply {s with i = ref 0} x
> 
>     match x with
>     | EFun'(r,_,_,_,_) -> term_scope s (EApply(r,x,EB r)), 
> {join_point_method=join_point_method; join_point_closure=join_point_closure; 
> ty_to_data=ty_to_data; nominal_apply=nominal_apply; globals=s.globals}
>     | EForall' _ -> raise_type_error s "The main function should not have a 
> forall."
>     | _ -> raise_type_error s "Expected a function as the main."
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## CodegenUtils
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // open System.Text
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### CodegenEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type CodegenEnv =
>     {
>     text : System.Text.StringBuilder
>     indent : int
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### line
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let line x (s : string) = x.text.Append(' ', x.indent).AppendLine s |> ignore
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### indent
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let indent x : CodegenEnv = {x with indent=x.indent+4}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_dec_point
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_dec_point (x : string) = if x.IndexOf('.') = -1 && x.Contains "E" |> not
> then x + ".0" else x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### CodegenError
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> exception CodegenError of Range option * string
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### CodegenErrorWithPos
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> exception CodegenErrorWithPos of Trace * string
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### raise_codegen_error
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let raise_codegen_error x = raise (CodegenError (None,x))
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### raise_codegen_error_backend
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let raise_codegen_error_backend r x = raise (CodegenError (Some r,x))
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### raise_codegen_error'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let raise_codegen_error' trace (r,x) = raise (CodegenErrorWithPos(Option.fold 
> (fun s x -> x :: s) trace r,x))
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## CodegenFsharp
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### backend_nameFsharp
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let backend_nameFsharp = "Fsharp"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### litFsharp
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let litFsharp = function
>     | LitInt8 x -> sprintf "%iy" x
>     | LitInt16 x -> sprintf "%is" x
>     | LitInt32 x -> sprintf "%i" x
>     | LitInt64 x -> sprintf "%iL" x
>     | LitUInt8 x -> sprintf "%iuy" x
>     | LitUInt16 x -> sprintf "%ius" x
>     | LitUInt32 x -> sprintf "%iu" x
>     | LitUInt64 x -> sprintf "%iUL" x
>     | LitFloat32 x -> 
>         if x = infinityf then "infinityf"
>         elif x = -infinityf then "-infinityf"
>         elif System.Single.IsNaN x then "nanf"
>         else x.ToString("R") |> add_dec_point |> sprintf "%sf"
>     | LitFloat64 x ->
>         if x = infinity then "infinity"
>         elif x = -infinity then "-infinity"
>         elif System.Double.IsNaN x then "nan"
>         else x.ToString("R") |> add_dec_point
>     | LitString x -> 
>         let strb = System.Text.StringBuilder(x.Length+2)
>         strb.Append '"' |> ignore
>         String.iter (function
>             | '"' -> strb.Append "\\\"" 
>             | '\b' -> strb.Append @"\b"
>             | '\t' -> strb.Append @"\t"
>             | '\n' -> strb.Append @"\n"
>             | '\r' -> strb.Append @"\r"
>             | '\\' -> strb.Append @"\\"
>             | x -> strb.Append x
>             >> ignore 
>             ) x
>         strb.Append '"' |> ignore
>         strb.ToString()
>     | LitChar x -> 
>         match x with
>         | '\b' -> @"\b"
>         | '\n' -> @"\n"
>         | '\t' -> @"\t"
>         | '\r' -> @"\r"
>         | '\\' -> @"\\"
>         | x -> string x
>         |> sprintf "'%s'"
>     | LitBool x -> if x then "true" else "false"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### primFsharp
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let primFsharp = function
>     | Int8T -> "int8"
>     | Int16T -> "int16"
>     | Int32T -> "int32"
>     | Int64T -> "int64"
>     | UInt8T -> "uint8"
>     | UInt16T -> "uint16"
>     | UInt32T -> "uint32"
>     | UInt64T -> "uint64"
>     | Float32T -> "float32"
>     | Float64T -> "float"
>     | BoolT -> "bool"
>     | StringT -> "string"
>     | CharT -> "char"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### type_litFsharp
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let type_litFsharp = function
>     | YLit x -> litFsharp x
>     | YSymbol x -> x
>     | x -> raise_codegen_error "Compiler error: Expecting a type literal in the 
> macro." 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### UnionRecFsharp
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type UnionRecFsharp = {tag : int; free_vars : Map<int * string, TyV[[]]>}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### LayoutRecFsharp
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type LayoutRecFsharp = {tag : int; data : Data; free_vars : TyV[[]]; 
> free_vars_by_key : Map<int * string, TyV[[]]>}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### MethodRecFsharp
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type MethodRecFsharp = {tag : int; free_vars : L<Tag,Ty>[[]]; range : Ty; body :
> TypedBind[[]]}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ClosureRecFsharp
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ClosureRecFsharp = {tag : int; free_vars : L<Tag,Ty>[[]]; domain_args : 
> TyV[[]]; range : Ty; body : TypedBind[[]]}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### codegenFsharp
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let codegenFsharp (env : PartEvalResult) (x : TypedBind [[]]) =
>     let types = ResizeArray()
>     let functions = ResizeArray()
> 
>     let print is_type show r =
>         let s = {text=System.Text.StringBuilder(); indent=0}
>         show s r
>         let text = s.text.ToString()
>         if is_type then types.Add(text) else functions.Add(text)
> 
>     let layout show =
>         let dict' = Dictionary(HashIdentity.Structural)
>         let dict = Dictionary(HashIdentity.Reference)
>         let f x : LayoutRecFsharp = 
>             match x with
>             | YLayout(x,_) ->
>             let x = env.ty_to_data x
>             let a, b =
>                 match x with
>                 | DRecord a -> let a = Map.map (fun _ -> data_free_vars) a in a 
> |> Map.toArray |> Array.collect snd, a
>                 | _ -> data_free_vars x, Map.empty
>             {data=x; free_vars=a; free_vars_by_key=b; tag=dict'.Count}
>             | _ -> raise_codegen_error $"Compiler error: Expected a layout type 
> (3).\nGot: %s{show_ty x}"
>         fun x ->
>             let mutable dirty = false
>             let r = memoize dict (memoize dict' (fun x -> dirty <- true; f x)) x
>             if dirty then print true show r
>             r
> 
>     let union show =
>         let dict = Dictionary(HashIdentity.Reference)
>         let f (a : Map<int * string,Ty>) : UnionRecFsharp = {free_vars=a |> 
> Map.map (fun _ -> env.ty_to_data >> data_free_vars); tag=dict.Count}
>         fun x ->
>             let mutable dirty = false
>             let r = memoize dict (fun x -> dirty <- true; f x) x
>             if dirty then print true show r
>             r
> 
>     let jp f show =
>         let dict = Dictionary(HashIdentity.Structural)
>         let f x = f (x, dict.Count)
>         fun x ->
>             let mutable dirty = false
>             let r = memoize dict (fun x -> dirty <- true; f x) x
>             if dirty then print false show r
>             r
> 
>     let args x = x |> Array.map (fun (L(i,_)) -> sprintf "v%i" i) |> 
> String.concat ", "
>     let show_w = function WV (L(i,_)) -> sprintf "v%i" i | WLit a -> litFsharp a
> 
>     let global' =
>         let has_added = HashSet env.globals
>         fun x -> if has_added.Add(x) then env.globals.Add x
> 
>     let rec tyv x =
>         match x with
>         | YUnion a -> 
>             let a = a.Item
>             match a.layout with
>             | UHeap -> sprintf "UH%i" (uheap a.cases).tag
>             | UStack -> sprintf "US%i" (ustack a.cases).tag
>         | YLayout(_,lay) as a -> 
>             match lay with
>             | Heap -> sprintf "Heap%i" (heap a).tag
>             | HeapMutable -> sprintf "Mut%i" (mut a).tag
>             | StackMutable -> raise_codegen_error "Compiler error: The F# 
> backend doesn't support stack mutable layout types."
>         | YMacro [[Text "backend_switch "; Type (YRecord r)]] ->
>             match r |> Map.tryPick (fun (_, k) v -> if k = backend_nameFsharp 
> then Some v else None) with
>             | Some x -> tup_ty x
>             | None -> raise_codegen_error $"In the backend_switch, expected a 
> record with the '{backend_nameFsharp}' field."
>         | YMacro a -> a |> List.map (function Text a -> a | Type a -> tup_ty a |
> TypeLit a -> type_litFsharp a) |> String.concat ""
>         | YPrim a -> primFsharp a
>         | YArray a -> sprintf "(%s [[]])" (tup_ty a)
>         | YFun(a,b,FT_Vanilla) -> sprintf "(%s -> %s)" (tup_ty a) (tup_ty b)
>         | YExists -> raise_codegen_error "Existentials are not supported at 
> runtime. They are a compile time feature only."
>         | YForall -> raise_codegen_error "Foralls are not supported at runtime. 
> They are a compile time feature only."
>         | a -> raise_codegen_error $"Type not supported in the codegen.\nGot: 
> %A{a}"
>     and args_tys x = x |> Array.map (fun (L(i,t)) -> sprintf "v%i : %s" i 
> (tup_ty t)) |> String.concat ", "
>     and binds (s : CodegenEnv) (x : TypedBind [[]]) =
>         Array.iter (function
>             | TyLet(d,trace,a) -> try op s (Some d) a with :? CodegenError as e 
> -> raise_codegen_error' trace (e.Data0,e.Data1)
>             | TyLocalReturnOp(trace,a,_) -> try op s None a with :? CodegenError
> as e -> raise_codegen_error' trace (e.Data0,e.Data1)
>             | TyLocalReturnData(d,trace) -> try line s (tup d) with :? 
> CodegenError as e -> raise_codegen_error' trace (e.Data0,e.Data1)
>             ) x
>     and tup x =
>         match data_term_vars x with
>         | [[||]] -> "()"
>         | [[|x|]] -> show_w x
>         | x -> Array.map show_w x |> String.concat ", " |> sprintf "struct (%s)"
>     and tup_ty x =
>         match env.ty_to_data x |> data_free_vars |> Array.map (fun (L(_,x)) -> 
> tyv x) with
>         | [[||]] -> "unit"
>         | [[|x|]] -> x
>         | x -> String.concat " * " x |> sprintf "struct (%s)"
>     and op s d a =
>         let jp (a, b) =
>             let args = args b
>             match a with
>             | JPMethod(a,b) -> sprintf "method%i(%s)" (method (a,b)).tag args
>             | JPClosure(a,b) -> sprintf "closure%i(%s)" (closure (a,b)).tag args
>         let free_vars do_annot x =
>             let f (L(i,t)) = if do_annot then sprintf "v%i : %s" i (tyv t) else 
> sprintf "v%i" i
>             match data_free_vars x with
>             | [[||]] -> "()"
>             | [[|x|]] -> f x
>             | x -> Array.map f x |> String.concat ", " |> sprintf "struct (%s)"
>         let simple x = 
>             match d with
>             | None -> x
>             | Some d -> match free_vars true d with "()" -> x | d -> sprintf 
> "let %s = %s" d x
>             |> line s
>         let complex f =
>             match d with
>             | None -> f s : unit
>             | Some d -> match free_vars true d with "()" -> f s | d -> line s 
> (sprintf "let %s =" d); f (indent s)
>         let layout_vars a =
>             let f i x =
>                 match x with
>                 | WV(L(i',_)) -> sprintf "l%i = v%i" i i'
>                 | WLit x -> sprintf "l%i = %s" i (litFsharp x)
>             a |> data_term_vars |> Array.mapi f |> String.concat "; "
>         let layout_index i x =
>             x |> Array.map (fun (L(i',_)) -> sprintf "v%i.l%i" i i')
>             |> String.concat ", "
>             |> function "" -> () | x -> simple x
>         let length (a,b) =
>             match a with
>             | YPrim UInt8T -> sprintf "System.Convert.ToByte %s.Length" (tup b)
>             | YPrim UInt16T -> sprintf "System.Convert.ToUInt16 %s.Length" (tup 
> b)
>             | YPrim UInt32T -> sprintf "System.Convert.ToUInt32 %s.Length" (tup 
> b)
>             | YPrim UInt64T -> sprintf "System.Convert.ToUInt64 %s.Length" (tup 
> b)
>             | YPrim Int8T -> sprintf "System.Convert.ToSByte %s.Length" (tup b)
>             | YPrim Int16T -> sprintf "System.Convert.ToInt16 %s.Length" (tup b)
>             | YPrim Int32T -> sprintf "%s.Length" (tup b)
>             | YPrim Int64T -> sprintf "System.Convert.ToInt64 %s.Length" (tup b)
>             | _ -> raise_codegen_error "Compiler error: Expected an int in 
> length"
>             |> simple
>         match a with
>         | TyMacro a -> a |> List.map (function CMText x -> x | CMTerm x -> tup x
> | CMType x -> tup_ty x | CMTypeLit x -> type_litFsharp x) |> String.concat "" |>
> simple
>         | TySizeOf t -> simple $"sizeof<{tup_ty t}>"
>         | TyIf(cond,tr,fl) ->
>             complex <| fun s ->
>             line s (sprintf "if %s then" (tup cond))
>             binds (indent s) tr
>             match fl with
>             | [[|TyLocalReturnData(DB,_)|]] -> ()
>             | _ ->
>                 line s "else"
>                 binds (indent s) fl
>         | TyJoinPoint(a,args) -> simple (jp (a, args))
>         | TyBackend(_,_,r) -> raise_codegen_error_backend r "The F# backend does
> not support nesting other backends."
>         | TyWhile(a,b) ->
>             complex <| fun s ->
>             line s (sprintf "while %s do" (jp a))
>             binds (indent s) b
>         | TyDo a ->
>             complex <| fun s ->
>             line s "do"
>             binds (indent s) a
>         | TyIndent a ->
>             complex <| fun s ->
>             binds (indent s) a
>         | TyIntSwitch(L(i,_),on_succ,on_fail) ->
>             complex <| fun s ->
>             line s (sprintf "match v%i with" i)
>             Array.iteri (fun i x ->
>                 line s (sprintf "| %i ->" i)
>                 binds (indent s) x
>                 ) on_succ
>             line s "| _ ->"
>             binds (indent s) on_fail
>         | TyUnionUnbox(is,x,on_succs,on_fail) ->
>             complex <| fun s ->
>             let case_tags = x.Item.tags
>             line s (sprintf "match %s with" (is |> List.map (fun (L(i,_)) -> 
> $"v{i}") |> String.concat ", "))
>             let prefix = 
>                 let x = x.Item
>                 match x.layout with
>                 | UHeap -> sprintf "UH%i" (uheap x.cases).tag
>                 | UStack -> sprintf "US%i" (ustack x.cases).tag
>             Map.iter (fun k (a,b) ->
>                 let i = case_tags.[[k]]
>                 let cases = 
>                     a |> List.map (fun a ->
>                         match data_free_vars a with
>                         | [[||]] -> ""
>                         | x -> sprintf "(%s)" (args x)
>                         |> sprintf "%s_%i%s" prefix i
>                         )
>                     |> String.concat ", "
>                 line s (sprintf "| %s -> (* %s *)" cases k)
>                 binds (indent s) b
>                 ) on_succs
>             on_fail |> Option.iter (fun b ->
>                 line s "| _ ->"
>                 binds (indent s) b
>                 )
>         | TyUnionBox(a,b,c) ->
>             let c = c.Item
>             let i = c.tags.[[a]]
>             let vars =
>                 match data_term_vars b with
>                 | [[||]] -> ""
>                 | x -> Array.map show_w x |> String.concat ", " |> sprintf 
> "(%s)"
>             match c.layout with
>             | UHeap -> sprintf "UH%i_%i%s" (uheap c.cases).tag i vars
>             | UStack -> sprintf "US%i_%i%s" (ustack c.cases).tag i vars
>             |> simple
>         | TyToLayout(a,b) -> 
>             let a = layout_vars a
>             match b with
>             | YLayout(_,layout) -> 
>                 match layout with
>                 | Heap -> if a = "" then sprintf "Heap%i()" (heap b).tag else 
> sprintf "{%s} : Heap%i" a (heap b).tag
>                 | HeapMutable -> if a = "" then sprintf "Mut%i()" (mut b).tag 
> else sprintf "{%s} : Mut%i" a (mut b).tag
>                 | StackMutable -> raise_codegen_error "The F# backend doesn't 
> support stack mutable layout types."
>             | _ -> raise_codegen_error $"Compiler error: Expected a layout type 
> (4).\nGot: %s{show_ty b}"
>             |> simple
>         | TyLayoutIndexAll(L(i,YLayout(_,lay) & a)) -> 
>             match lay with
>             | Heap -> heap a 
>             | HeapMutable -> mut a 
>             | StackMutable -> raise_codegen_error "The F# backend doesn't 
> support indexing into stack mutable layout types."
>             |> fun x -> x.free_vars |> layout_index i
>         | TyLayoutIndexByKey(L(i,YLayout(_,lay) & a),key) -> 
>             match lay with
>             | Heap -> heap a
>             | HeapMutable -> mut a 
>             | StackMutable -> raise_codegen_error "The F# backend doesn't 
> support indexing into stack mutable layout types."
>             |> fun x ->
>                 x.free_vars_by_key
>                 |> Map.tryPick (fun (_, k) v -> if k = key then Some v else 
> None)
>                 |> Option.iter (layout_index i)
>         | TyLayoutIndexAll _ | TyLayoutIndexByKey _ -> raise_codegen_error 
> "Compiler error: Expected the TyV in layout index to be a layout type."
>         | TyLayoutMutableSet(L(i,t),b,c) ->
>             let a = List.fold (fun s k ->
>                 match s with
>                 | DRecord l -> l |> Map.pick (fun (_,k') v -> if k' = k then 
> Some v else None)
>                 | _ -> raise_codegen_error "Compiler error: Expected a record.")
> (mut t).data b
>             Array.iter2 (fun (L(i',_)) b ->
>                 line s (sprintf "v%i.l%i <- %s" i i' (show_w b))
>                 ) (data_free_vars a) (data_term_vars c)
>         | TyArrayLiteral(a,b) -> simple <| sprintf "[[|%s|]]" (List.map tup b |>
> String.concat "; ")
>         | TyArrayCreate(a,b) ->
>             match b with
>             | DLit(LitInt32 _) | DV(L(_,YPrim Int32T)) -> simple (sprintf 
> "Array.zeroCreate<%s> (%s)" (tup_ty a) (tup b))
>             | _ -> simple (sprintf "Array.zeroCreate<%s> 
> (System.Convert.ToInt32(%s))" (tup_ty a) (tup b))
>         | TyArrayLength(a,b) -> length (a,b)
>         | TyStringLength(a,b) -> length (a,b)
>         | TyFailwith(a,b) -> simple (sprintf "failwith<%s> %s" (tup_ty a) (tup 
> b))
>         | TyConv(a,b) ->
>             let b = tup b
>             match a with
>             | YPrim Int8T -> $"int8 {b}"
>             | YPrim Int16T -> $"int16 {b}"
>             | YPrim Int32T -> $"int32 {b}"
>             | YPrim Int64T -> $"int64 {b}"
>             | YPrim UInt8T -> $"uint8 {b}"
>             | YPrim UInt16T -> $"uint16 {b}"
>             | YPrim UInt32T -> $"uint32 {b}"
>             | YPrim UInt64T -> $"uint64 {b}"
>             | YPrim Float32T -> $"float32 {b}"
>             | YPrim Float64T -> $"float {b}"
>             | _ -> raise_codegen_error $"Compiler error: Unexpected type in 
> Conv. Got: {show_ty a}"
>             |> simple
>         | TyApply(L(i,_),b) -> sprintf "v%i %s" i (tup b) |> simple
>         | TyOp(Global, [[DLit (LitString x)]]) -> global' x
>         | TyOp(op,l) ->
>             match op, l with
>             | Dyn,[[a]] -> tup a
>             | TypeToVar, _ -> raise_codegen_error "The use of `` should never 
> appear in generated code."
>             | StringIndex, [[a;b]] -> sprintf "%s.[[int %s]]" (tup a) (tup b)
>             | StringSlice, [[a;b;c]] -> sprintf "%s.[[int %s..int %s]]" (tup a) 
> (tup b) (tup c)
>             | ArrayIndex, [[a;b]] -> sprintf "%s.[[int %s]]" (tup a) (tup b)
>             | ArrayIndexSet, [[a;b;c]] -> sprintf "%s.[[int %s]] <- %s" (tup a) 
> (tup b) (tup c) 
> 
>             // Math
>             | Add, [[a;b]] -> sprintf "%s + %s" (tup a) (tup b)
>             | Sub, [[a;b]] -> sprintf "%s - %s" (tup a) (tup b)
>             | Mult, [[a;b]] -> sprintf "%s * %s" (tup a) (tup b)
>             | Div, [[a;b]] -> sprintf "%s / %s" (tup a) (tup b)
>             | Mod, [[a;b]] -> sprintf "%s %% %s" (tup a) (tup b)
>             | Pow, [[a;b]] -> sprintf "%s ** %s" (tup a) (tup b)
>             | LT, [[a;b]] -> sprintf "%s < %s" (tup a) (tup b)
>             | LTE, [[a;b]] -> sprintf "%s <= %s" (tup a) (tup b)
>             | EQ, [[a;b]] -> sprintf "%s = %s" (tup a) (tup b)
>             | NEQ, [[a;b]] -> sprintf "%s <> %s" (tup a) (tup b)
>             | GT, [[a;b]] -> sprintf "%s > %s" (tup a) (tup b)
>             | GTE, [[a;b]] -> sprintf "%s >= %s" (tup a) (tup b)
>             | BoolAnd, [[a;b]] -> sprintf "%s && %s" (tup a) (tup b)
>             | BoolOr, [[a;b]] -> sprintf "%s || %s" (tup a) (tup b)
>             | BitwiseAnd, [[a;b]] -> sprintf "%s &&& %s" (tup a) (tup b)
>             | BitwiseOr, [[a;b]] -> sprintf "%s ||| %s" (tup a) (tup b)
>             | BitwiseXor, [[a;b]] -> sprintf "%s ^^^ %s" (tup a) (tup b)
>             | BitwiseComplement, [[a]] -> sprintf "~~~%s" (tup a)
> 
>             | ShiftLeft, [[a;b]] -> sprintf "%s <<< %s" (tup a) (tup b)
>             | ShiftRight, [[a;b]] -> sprintf "%s >>> %s" (tup a) (tup b)
> 
>             | Neg, [[x]] -> sprintf " -%s" (tup x)
>             | Log, [[x]] -> sprintf "log %s" (tup x)
>             | Exp, [[x]] -> sprintf "exp %s" (tup x)
>             | Tanh, [[x]] -> sprintf "tanh %s" (tup x)
>             | Sqrt, [[x]] -> sprintf "sqrt %s" (tup x)
>             | Sin, [[x]] -> sprintf "sin %s" (tup x)
>             | Cos, [[x]] -> sprintf "cos %s" (tup x)
>             | NanIs, [[x]] -> 
>                 match x with
>                 | DLit(LitFloat32 _) | DV(L(_,YPrim Float32T)) -> sprintf 
> "System.Single.IsNaN(%s)" (tup x)
>                 | DLit(LitFloat64 _) | DV(L(_,YPrim Float64T)) -> sprintf 
> "System.Double.IsNaN(%s)" (tup x)
>                 | _ -> raise_codegen_error "Compiler error: Invalid type in 
> NanIs."
>             | UnionTag, [[DV(L(i,YUnion h))]] -> 
>                 let h = h.Item
>                 let ty =
>                     match h.layout with
>                     | UHeap -> sprintf "UH%i" (uheap h.cases).tag
>                     | UStack -> sprintf "US%i" (ustack h.cases).tag
>                 let items =
>                     h.cases
>                     |> Seq.map (fun (KeyValue ((i, _), _)) ->
>                         $"{ty}_{i}, {i}"
>                     )
>                     |> String.concat "; "
>                 $"[[ {items} ]] |> Map |> Map.find v{i}"
>             | _ -> raise_codegen_error <| sprintf "Compiler error: %A with %i 
> args not supported" op l.Length
>             |> simple
>     and heap : _ -> LayoutRecFsharp = layout (fun s x ->
>         let b = x.free_vars |> Array.map (fun (L(i,t)) -> sprintf "l%i : %s" i 
> (tyv t)) |> String.concat "; "
>         if b = "" then line s (sprintf "Heap%i() = class end" x.tag)
>         else line s (sprintf "Heap%i = {%s}" x.tag b)
>         )
>     and mut : _ -> LayoutRecFsharp = layout (fun s x ->
>         let b = x.free_vars |> Array.map (fun (L(i,t)) -> sprintf "mutable l%i :
> %s" i (tyv t)) |> String.concat "; "
>         if b = "" then line s (sprintf "Mut%i() = class end" x.tag)
>         else line s (sprintf "Mut%i = {%s}" x.tag b)
>         )
>     and uheap : _ -> UnionRecFsharp = union (fun s x ->
>         line s (sprintf "UH%i =" x.tag)
>         let mutable i = 0
>         x.free_vars |> Map.iter (fun _ a ->
>             match a with
>             | [[||]] -> line (indent s) (sprintf "| UH%i_%i" x.tag i)
>             | a -> line (indent s) (sprintf "| UH%i_%i of %s" x.tag i (a |> 
> Array.map (fun (L(_,t)) -> tyv t) |> String.concat " * "))
>             i <- i+1
>             )
>         )
>     and ustack : _ -> UnionRecFsharp = union (fun s x ->
>         line s (sprintf "[[<Struct>]] US%i =" x.tag)
>         let mutable i = 0
>         x.free_vars |> Map.iter (fun _ a ->
>             match a with
>             | [[||]] -> line (indent s) (sprintf "| US%i_%i" x.tag i)
>             | a -> line (indent s) (sprintf "| US%i_%i of %s" x.tag i (a |> 
> Array.mapi (fun i' (L(_,t)) -> sprintf "f%i_%i : %s" i i' (tyv t)) |> 
> String.concat " * "))
>             i <- i+1
>             )
>         )
>     and method : _ -> MethodRecFsharp =
>         jp (fun ((jp_body,key & (C(args,_))),i) ->
>             match (fst env.join_point_method.[[jp_body]]).[[key]] with
>             | Some a, Some range, _ -> {tag=i; free_vars=rdata_free_vars args; 
> range=range; body=a}
>             | _ -> raise_codegen_error "Compiler error: The method dictionary is
> malformed"
>             ) (fun s x ->
>             line s (sprintf "method%i (%s) : %s =" x.tag (args_tys x.free_vars) 
> (tup_ty x.range))
>             binds (indent s) x.body
>             )
>     and closure : _ -> ClosureRecFsharp =
>         jp (fun ((jp_body,key & (C(args,_,fun_ty))),i) ->
>             match fun_ty with
>             | YFun(domain,range,FT_Vanilla) ->
>                 match (fst env.join_point_closure.[[jp_body]]).[[key]] with
>                 | Some(domain_args, body) -> {tag=i; free_vars=rdata_free_vars 
> args; domain_args=data_free_vars domain_args; range=range; body=body}
>                 | _ -> raise_codegen_error "Compiler error: The method 
> dictionary is malformed"
>             | YFun(_,_,_) -> raise_codegen_error "Non-standard functions are not
> supported in the F# backend."
>             | _ -> raise_codegen_error "Compiler error: Unexpected type in the 
> closure join point."
>             ) (fun s x ->
>             let domain = 
>                 match x.domain_args |> Array.map (fun (L(i,t)) -> sprintf "v%i :
> %s" i (tyv t)) with
>                 | [[||]] -> "()"
>                 | [[|x|]] -> sprintf "(%s)" x
>                 | x -> String.concat ", " x |> sprintf "struct (%s)"
>             line s (sprintf "closure%i (%s) %s : %s =" x.tag (args_tys 
> x.free_vars) domain (tup_ty x.range))
>             binds (indent s) x.body
>             )
> 
>     let main = System.Text.StringBuilder()
>     binds {text=main; indent=0} x
> 
>     let program = System.Text.StringBuilder()
>     env.globals |> Seq.iter (fun (x : string) -> program.AppendLine(x) |> 
> ignore)
>     types |> Seq.iteri (fun i x -> program.Append(if i = 0 then "type " else 
> "and ").Append(x) |> ignore)
>     functions |> Seq.iteri (fun i x -> program.Append(if i = 0 then "let rec " 
> else "and ").Append(x) |> ignore)
>     program.Append(main).ToString()
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> ── [ 3.11s - diagnostics ] ─────────────────────────────────────────────────────
> │ input.fsx (328,81)-(328,84) typecheck warning This and other
> recursive references to the object(s) being defined will be checked for 
> initialization-soundness at runtime through the use of a delayed reference. This
> is because you are defining one or more recursive objects, rather than recursive
> functions. This warning may be suppressed by using '#nowarn "40"' or 
> '--nowarn:40'.
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## CodegenGleam
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### backend_nameGleam
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let backend_nameGleam = "Gleam"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### litGleam
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let litGleam = function
>     | LitInt8 x -> sprintf "%i" x
>     | LitInt16 x -> sprintf "%i" x
>     | LitInt32 x -> sprintf "%i" x
>     | LitInt64 x -> sprintf "%i" x
>     | LitUInt8 x -> sprintf "%i" x
>     | LitUInt16 x -> sprintf "%i" x
>     | LitUInt32 x -> sprintf "%i" x
>     | LitUInt64 x -> sprintf "%i" x
>     | LitFloat32 x -> 
>         if x = infinityf then "infinityf"
>         elif x = -infinityf then "-infinityf"
>         elif System.Single.IsNaN x then "nanf"
>         else x.ToString("R") |> add_dec_point |> sprintf "%s"
>     | LitFloat64 x ->
>         if x = infinity then "infinity"
>         elif x = -infinity then "-infinity"
>         elif System.Double.IsNaN x then "nan"
>         else x.ToString("R") |> add_dec_point
>     | LitString x -> 
>         let strb = System.Text.StringBuilder(x.Length+2)
>         strb.Append '"' |> ignore
>         String.iter (function
>             | '"' -> strb.Append "\\\"" 
>             | '\b' -> strb.Append @"\b"
>             | '\t' -> strb.Append @"\t"
>             | '\n' -> strb.Append @"\n"
>             | '\r' -> strb.Append @"\r"
>             | '\\' -> strb.Append @"\\"
>             | x -> strb.Append x
>             >> ignore 
>             ) x
>         strb.Append '"' |> ignore
>         strb.ToString()
>     | LitChar x -> 
>         match x with
>         | '\b' -> @"\b"
>         | '\n' -> @"\n"
>         | '\t' -> @"\t"
>         | '\r' -> @"\r"
>         | '\\' -> @"\\"
>         | x -> string x
>         |> sprintf "\"%s\""
>     | LitBool x -> if x then "True" else "False"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### primGleam
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let primGleam = function
>     | Int8T -> "Int"
>     | Int16T -> "Int"
>     | Int32T -> "Int"
>     | Int64T -> "Int"
>     | UInt8T -> "Int"
>     | UInt16T -> "Int"
>     | UInt32T -> "Int"
>     | UInt64T -> "Int"
>     | Float32T -> "Float"
>     | Float64T -> "Float"
>     | BoolT -> "Bool"
>     | StringT -> "String"
>     | CharT -> "String"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### type_litGleam
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let type_litGleam = function
>     | YLit x -> litGleam x
>     | YSymbol x -> x
>     | x -> raise_codegen_error "Compiler error: Expecting a type literal in the 
> macro." 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### UnionRecGleam
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type UnionRecGleam = {tag : int; free_vars : Map<int * string, TyV[[]]>}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### LayoutRecGleam
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type LayoutRecGleam = {tag : int; data : Data; free_vars : TyV[[]]; 
> free_vars_by_key : Map<int * string, TyV[[]]>}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### MethodRecGleam
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type MethodRecGleam = {tag : int; free_vars : L<Tag,Ty>[[]]; range : Ty; body : 
> TypedBind[[]]}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ClosureRecGleam
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ClosureRecGleam = {tag : int; free_vars : L<Tag,Ty>[[]]; domain_args : 
> TyV[[]]; range : Ty; body : TypedBind[[]]}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### codegenGleam
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let codegenGleam (env : PartEvalResult) (x : TypedBind [[]]) =
>     let types = ResizeArray()
>     let functions = ResizeArray()
> 
>     let print is_type show r =
>         let s = {text=System.Text.StringBuilder(); indent=0}
>         show s r
>         let text = s.text.ToString()
>         if is_type then types.Add(text) else functions.Add(text)
> 
>     let layout show =
>         let dict' = Dictionary(HashIdentity.Structural)
>         let dict = Dictionary(HashIdentity.Reference)
>         let f x : LayoutRecGleam = 
>             match x with
>             | YLayout(x,_) ->
>             let x = env.ty_to_data x
>             let a, b =
>                 match x with
>                 | DRecord a -> let a = Map.map (fun _ -> data_free_vars) a in a 
> |> Map.toArray |> Array.collect snd, a
>                 | _ -> data_free_vars x, Map.empty
>             {data=x; free_vars=a; free_vars_by_key=b; tag=dict'.Count}
>             | _ -> raise_codegen_error $"Compiler error: Expected a layout type 
> (3).\nGot: %s{show_ty x}"
>         fun x ->
>             let mutable dirty = false
>             let r = memoize dict (memoize dict' (fun x -> dirty <- true; f x)) x
>             if dirty then print true show r
>             r
> 
>     let union show =
>         let dict = Dictionary(HashIdentity.Reference)
>         let f (a : Map<int * string,Ty>) : UnionRecGleam = {free_vars=a |> 
> Map.map (fun _ -> env.ty_to_data >> data_free_vars); tag=dict.Count}
>         fun x ->
>             let mutable dirty = false
>             let r = memoize dict (fun x -> dirty <- true; f x) x
>             if dirty then print true show r
>             r
> 
>     let jp f show =
>         let dict = Dictionary(HashIdentity.Structural)
>         let f x = f (x, dict.Count)
>         fun x ->
>             let mutable dirty = false
>             let r = memoize dict (fun x -> dirty <- true; f x) x
>             if dirty then print false show r
>             r
> 
>     let args x = x |> Array.map (fun (L(i,_)) -> sprintf "v%i" i) |> 
> String.concat ", "
>     let show_w = function WV (L(i,_)) -> sprintf "v%i" i | WLit a -> litGleam a
> 
>     let global' =
>         let has_added = HashSet env.globals
>         fun x -> if has_added.Add(x) then env.globals.Add x
> 
>     let rec tyv x =
>         match x with
>         | YUnion a -> 
>             let a = a.Item
>             match a.layout with
>             | UHeap -> sprintf "Uh%i" (uheap a.cases).tag
>             | UStack -> sprintf "Us%i" (ustack a.cases).tag
>         | YLayout(_,lay) as a -> 
>             match lay with
>             | Heap -> sprintf "Heap%i" (heap a).tag
>             | HeapMutable -> sprintf "Mut%i" (mut a).tag
>             | StackMutable -> raise_codegen_error "Compiler error: The F# 
> backend doesn't support stack mutable layout types."
>         | YMacro [[Text "backend_switch "; Type (YRecord r)]] ->
>             match r |> Map.tryPick (fun (_, k) v -> if k = backend_nameGleam 
> then Some v else None) with
>             | Some x -> tup_ty x
>             | None -> raise_codegen_error $"In the backend_switch, expected a 
> record with the '{backend_nameGleam}' field."
>         | YMacro a -> a |> List.map (function Text a -> a | Type a -> tup_ty a |
> TypeLit a -> type_litGleam a) |> String.concat ""
>         | YPrim a -> primGleam a
>         | YArray a ->
>             global' "import gary"
>             sprintf "gary.ErlangArray(%s)" (tup_ty a)
>         | YFun(a,b,FT_Vanilla) -> sprintf "fn(%s) -> %s" (tup_ty a) (tup_ty b)
>         | YExists -> raise_codegen_error "Existentials are not supported at 
> runtime. They are a compile time feature only."
>         | YForall -> raise_codegen_error "Foralls are not supported at runtime. 
> They are a compile time feature only."
>         | a -> raise_codegen_error $"Type not supported in the codegen.\nGot: 
> %A{a}"
>     and args_tys x = x |> Array.map (fun (L(i,t)) -> sprintf "v%i :    %s" i 
> (tup_ty t)) |> String.concat ", "
>     and binds (s : CodegenEnv) (x : TypedBind [[]]) =
>         Array.iter (function
>             | TyLet(d,trace,a) -> try op s (Some d) a with :? CodegenError as e 
> -> raise_codegen_error' trace (e.Data0,e.Data1)
>             | TyLocalReturnOp(trace,a,_) -> try op s None a with :? CodegenError
> as e -> raise_codegen_error' trace (e.Data0,e.Data1)
>             | TyLocalReturnData(d,trace) -> try line s (tup d) with :? 
> CodegenError as e -> raise_codegen_error' trace (e.Data0,e.Data1)
>             ) x
>     and tup x =
>         match data_term_vars x with
>         | [[||]] -> "Nil "
>         | [[|x|]] -> show_w x
>         | x -> Array.map show_w x |> String.concat ", " |> sprintf "#(%s) "
>     and tup_ty x =
>         match env.ty_to_data x |> data_free_vars |> Array.map (fun (L(_,x)) -> 
> tyv x) with
>         | [[||]] -> "Nil  "
>         | [[|x|]] -> x
>         | x -> String.concat ", " x |> sprintf "#(%s)  "
>     and op s d a =
>         let jp (a, b) =
>             let args = args b
>             match a with
>             | JPMethod(a,b) -> sprintf "method%i(%s)" (method (a,b)).tag args
>             | JPClosure(a,b) ->
>                 let code =
>                     [[
>                         "closure"
>                         (a, b) |> closure |> _.tag |> string
>                         "("
>                         if args = "" then "" else $")(#({args})"
>                         ")"
>                         if args = "" || args |> SpiralSm.contains ", " then "" 
> else "(Nil)"
>                     ]]
>                     |> SpiralSm.concat ""
>                 if args = "" then
>                     // trace Verbose (fun () -> $"""CodegenGleam.codegenGleam / 
> """) _locals
>                     $"fn (x) {{ {code}(#(x))(   Nil) }}"
>                 else code
>         let free_vars do_annot x =
>             let f (L(i,t)) = if do_annot then sprintf "v%i :  %s" i (tyv t) else
> sprintf "v%i" i
>             match data_free_vars x with
>             | [[||]] -> "Nil   "
>             | [[|x|]] -> f x
>             | x -> Array.map f x |> String.concat ", " |> sprintf "#(%s)   "
>         let simple x = 
>             match d with
>             | None -> x
>             | Some d ->
>                 match free_vars false d |> SpiralSm.trim with
>                 | "Nil" -> x
>                 | d -> sprintf "let %s = %s" d x
>             |> line s
>         let complex f =
>             match d with
>             | None -> f s : unit
>             | Some d ->
>                 match free_vars false d |> SpiralSm.trim with
>                 | "Nil" -> f s
>                 | d ->
>                     line s (sprintf "let %s =" d)
>                     f (indent s)
>         let layout_vars a =
>             let f i x =
>                 match x with
>                 | WV(L(i',_)) -> sprintf "l%i :  v%i" i i'
>                 | WLit x -> sprintf "l%i :  %s" i (litGleam x)
>             a |> data_term_vars |> Array.mapi f |> String.concat ", "
>         let layout_index i x =
>             x |> Array.map (fun (L(i',_)) -> sprintf "v%i.l%i " i i')
>             |> String.concat ", "
>             |> function "" -> () | x -> simple x
>         let length (a,b) =
>             global' "import gleam/string"
>             sprintf "string.length(%s)" (tup b)
>             |> simple
>         match a with
>         | TyMacro a -> a |> List.map (function CMText x -> x | CMTerm x -> tup x
> | CMType x -> tup_ty x | CMTypeLit x -> type_litGleam x) |> String.concat "" |> 
> simple
>         | TySizeOf t -> simple $"0"
>         | TyIf(cond,tr,fl) ->
>             complex <| fun s ->
>             // line s (sprintf "if %s then" (tup cond))
>             line s (sprintf "case %s {" (tup cond))
>             line (indent s) "True -> {"
>             binds (indent (indent s)) tr
>             line (indent s) "}"
>             line (indent s) "False -> {"
>             match fl with
>             | [[|TyLocalReturnData(DB,_)|]] ->
>                 line (indent s) "Nil"
>             | _ ->
>                 binds (indent (indent s)) fl
>             line (indent s) "}"
>             line s "}"
>         | TyJoinPoint(a,args) -> simple (jp (a, args))
>         | TyBackend(_,_,r) -> raise_codegen_error_backend r "The Gleam backend 
> does not support nesting other backends."
>         | TyWhile(a,b) ->
>             complex <| fun s ->
>             line s (sprintf "while %s {" (jp a))
>             binds (indent s) b
>             line s "}"
>         | TyDo a ->
>             complex <| fun s ->
>             line s "{"
>             binds (indent s) a
>             line s "}"
>         | TyIndent a ->
>             complex <| fun s ->
>             binds (indent s) a
>         | TyIntSwitch(L(i,_),on_succ,on_fail) ->
>             complex <| fun s ->
>             line s (sprintf "case v%i {" i)
>             Array.iteri (fun i x ->
>                 line (indent s) (sprintf "%i -> {" i)
>                 binds (indent (indent s)) x
>                 line (indent s) "}"
>                 ) on_succ
>             line (indent s) "_ -> {"
>             binds (indent (indent s)) on_fail
>             line (indent s) "}"
>         | TyUnionUnbox(is,x,on_succs,on_fail) ->
>             complex <| fun s ->
>             let case_tags = x.Item.tags
>             line s (sprintf "case %s {" (is |> List.map (fun (L(i,_)) -> 
> $"v{i}") |> String.concat ", "))
>             let prefix = 
>                 let x = x.Item
>                 match x.layout with
>                 | UHeap -> sprintf "Uh%i" (uheap x.cases).tag
>                 | UStack -> sprintf "Us%i" (ustack x.cases).tag
>             Map.iter (fun k (a,b) ->
>                 let i = case_tags.[[k]]
>                 let cases = 
>                     a |> List.map (fun a ->
>                         match data_free_vars a with
>                         | [[||]] -> ""
>                         | x -> sprintf "(%s)" (args x)
>                         |> sprintf "%si%i%s" prefix i
>                         )
>                     |> String.concat ", "
>                 line (indent s) (sprintf "%s -> { // %s" cases k)
>                 binds (indent (indent s)) b
>                 line (indent s) "}"
>                 ) on_succs
>             on_fail |> Option.iter (fun b ->
>                 line (indent s) "_ -> {"
>                 binds (indent (indent s)) b
>                 line (indent s) "}"
>                 )
>             line s "}"
>         | TyUnionBox(a,b,c) ->
>             let c = c.Item
>             let i = c.tags.[[a]]
>             let vars =
>                 match data_term_vars b with
>                 | [[||]] -> ""
>                 | x -> Array.map show_w x |> String.concat ", " |> sprintf 
> "(%s)"
>             match c.layout with
>             | UHeap -> sprintf "Uh%ii%i%s" (uheap c.cases).tag i vars
>             | UStack -> sprintf "Us%ii%i%s" (ustack c.cases).tag i vars
>             |> simple
>         | TyToLayout(a,b) -> 
>             let a = layout_vars a
>             match b with
>             | YLayout(_,layout) -> 
>                 match layout with
>                 | Heap -> if a = "" then sprintf "Heap%i()" (heap b).tag else 
> sprintf "Heap%i(%s)" (heap b).tag a
>                 | HeapMutable -> if a = "" then sprintf "Mut%i()" (mut b).tag 
> else sprintf "Mut%i(%s)" (mut b).tag a
>                 | StackMutable -> raise_codegen_error "The F# backend doesn't 
> support stack mutable layout types."
>             | _ -> raise_codegen_error $"Compiler error: Expected a layout type 
> (4).\nGot: %s{show_ty b}"
>             |> simple
>         | TyLayoutIndexAll(L(i,YLayout(_,lay) & a)) -> 
>             match lay with
>             | Heap -> heap a 
>             | HeapMutable -> mut a 
>             | StackMutable -> raise_codegen_error "The F# backend doesn't 
> support indexing into stack mutable layout types."
>             |> fun x -> x.free_vars |> layout_index i
>         | TyLayoutIndexByKey(L(i,YLayout(_,lay) & a),key) -> 
>             match lay with
>             | Heap -> heap a
>             | HeapMutable -> mut a 
>             | StackMutable -> raise_codegen_error "The F# backend doesn't 
> support indexing into stack mutable layout types."
>             |> fun x ->
>                 x.free_vars_by_key
>                 |> Map.tryPick (fun (_, k) v -> if k = key then Some v else 
> None)
>                 |> Option.iter (layout_index i)
>         | TyLayoutIndexAll _ | TyLayoutIndexByKey _ -> raise_codegen_error 
> "Compiler error: Expected the TyV in layout index to be a layout type."
>         | TyLayoutMutableSet(L(i,t),b,c) ->
>             let a = List.fold (fun s k ->
>                 match s with
>                 | DRecord l -> l |> Map.pick (fun (_,k') v -> if k' = k then 
> Some v else None)
>                 | _ -> raise_codegen_error "Compiler error: Expected a record.")
> (mut t).data b
>             let a_vars = data_free_vars a
>             Array.iter2 (fun (L(i',_)) b ->
>                 if a_vars |> Array.length > 1
>                 then line s (sprintf "let v%i = %s(..v%i, l%i: %s)" i (tup_ty t)
> i i' (show_w b))
>                 else line s (sprintf "let v%i = %s(l%i: %s)" i (tup_ty t) i' 
> (show_w b))
>                 ) a_vars (data_term_vars c)
>         | TyArrayLiteral(a,b) -> simple <| sprintf "[[ %s ]]" (List.map tup b |>
> String.concat ", ")
>         | TyArrayCreate(a,b) -> simple "[[]]"
>         | TyArrayLength(a,b) -> length (a,b)
>         | TyStringLength(a,b) -> length (a,b)
>         | TyFailwith(a,b) -> simple (sprintf "panic as %s" (tup b))
>         | TyConv(a,b) ->
>             let b = tup b
>             match a with
>             | YPrim Int8T -> $"{b}"
>             | YPrim Int16T -> $"{b}"
>             | YPrim Int32T -> $"{b}"
>             | YPrim Int64T -> $"{b}"
>             | YPrim UInt8T -> $"{b}"
>             | YPrim UInt16T -> $"{b}"
>             | YPrim UInt32T -> $"{b}"
>             | YPrim UInt64T -> $"{b}"
>             | YPrim Float32T -> $"{b}"
>             | YPrim Float64T -> $"{b}"
>             | _ -> raise_codegen_error $"Compiler error: Unexpected type in 
> Conv. Got: {show_ty a}"
>             |> simple
>         | TyApply(L(i,t),b) ->
>             match tup b with
>             | "Nil " when tup_ty t |> SpiralSm.starts_with "fn(Nil  ) -> " -> 
> $"v{i}(Nil     ) "
>             | "Nil " -> $"v{i} "
>             | b' -> $"v{i}({b'})"
>             |> simple
>         | TyOp(Global, [[DLit (LitString x)]]) -> global' x
>         | TyOp(op,l) ->
>             match op, l with
>             | Dyn,[[a]] -> tup a
>             | TypeToVar, _ -> raise_codegen_error "The use of `` should never 
> appear in generated code."
>             | StringIndex, [[a;b]] ->
>                 global' "import gleam/string"
>                 sprintf "%s |> string.slice(%s, 1)" (tup a) (tup b)
>             | StringSlice, [[a;b;c]] ->
>                 global' "import gleam/string"
>                 sprintf "%s |> string.slice(%s, %s)" (tup a) (tup b) (tup c)
>             | ArrayIndex, [[a;b]] ->
>                 global' "import gary/array"
>                 global' "import gleam/result"
>                 sprintf "%s |> array.get(%s) |> result.unwrap" (tup a) (tup b)
>             | ArrayIndexSet, [[a;b;c]] ->
>                 global' "import gary/array"
>                 global' "import gleam/result"
>                 sprintf "%s |> array.set(%s, %s) |> result.unwrap" (tup a) (tup 
> b) (tup c)
> 
>             // Math
>             | Add, [[a;b]] -> sprintf "%s + %s" (tup a) (tup b)
>             | Sub, [[a;b]] -> sprintf "%s - %s" (tup a) (tup b)
>             | Mult, [[a;b]] -> sprintf "%s * %s" (tup a) (tup b)
>             | Div, [[a;b]] -> sprintf "%s / %s" (tup a) (tup b)
>             | Mod, [[a;b]] -> sprintf "%s %% %s" (tup a) (tup b)
>             | Pow, [[a;b]] -> sprintf "%s ** %s" (tup a) (tup b)
>             | LT, [[a;b]] -> sprintf "%s < %s" (tup a) (tup b)
>             | LTE, [[a;b]] -> sprintf "%s <= %s" (tup a) (tup b)
>             | EQ, [[a;b]] -> sprintf "%s == %s" (tup a) (tup b)
>             | NEQ, [[a;b]] -> sprintf "%s != %s" (tup a) (tup b)
>             | GT, [[a;b]] -> sprintf "%s > %s" (tup a) (tup b)
>             | GTE, [[a;b]] -> sprintf "%s >= %s" (tup a) (tup b)
>             | BoolAnd, [[a;b]] -> sprintf "%s && %s" (tup a) (tup b)
>             | BoolOr, [[a;b]] -> sprintf "%s || %s" (tup a) (tup b)
>             | BitwiseAnd, [[a;b]] -> sprintf "%s &&& %s" (tup a) (tup b)
>             | BitwiseOr, [[a;b]] -> sprintf "%s ||| %s" (tup a) (tup b)
>             | BitwiseXor, [[a;b]] -> sprintf "%s ^^^ %s" (tup a) (tup b)
>             | BitwiseComplement, [[a]] -> sprintf "~~~%s" (tup a)
> 
>             | ShiftLeft, [[a;b]] -> sprintf "%s <<< %s" (tup a) (tup b)
>             | ShiftRight, [[a;b]] -> sprintf "%s >>> %s" (tup a) (tup b)
> 
>             | Neg, [[x]] -> sprintf " -%s" (tup x)
>             | Log, [[x]] -> sprintf "log %s" (tup x)
>             | Exp, [[x]] -> sprintf "exp %s" (tup x)
>             | Tanh, [[x]] -> sprintf "tanh %s" (tup x)
>             | Sqrt, [[x]] -> sprintf "sqrt %s" (tup x)
>             | Sin, [[x]] -> sprintf "sin %s" (tup x)
>             | Cos, [[x]] -> sprintf "cos %s" (tup x)
>             | NanIs, [[x]] -> 
>                 match x with
>                 | DLit(LitFloat32 _) | DV(L(_,YPrim Float32T)) -> sprintf 
> "System.Single.IsNaN(%s)" (tup x)
>                 | DLit(LitFloat64 _) | DV(L(_,YPrim Float64T)) -> sprintf 
> "System.Double.IsNaN(%s)" (tup x)
>                 | _ -> raise_codegen_error "Compiler error: Invalid type in 
> NanIs."
>             | UnionTag, [[DV(L(i,YUnion h))]] -> 
>                 let h = h.Item
>                 let ty =
>                     match h.layout with
>                     | UHeap -> sprintf "Uh%i" (uheap h.cases).tag
>                     | UStack -> sprintf "Us%i" (ustack h.cases).tag
>                 let items =
>                     h.cases
>                     |> Seq.map (fun (KeyValue ((i, _), _)) ->
>                         $"#({ty}i{i}, {i})"
>                     )
>                     |> String.concat ", "
>                 global' "import gleam/dict"
>                 global' "import gleam/result"
>                 $"[[ {items} ]] |> dict.from_list |> dict.get(v{i}) |> 
> result.unwrap(0)"
>             | _ -> raise_codegen_error <| sprintf "Compiler error: %A with %i 
> args not supported" op l.Length
>             |> simple
>     and heap : _ -> LayoutRecGleam = layout (fun s x ->
>         let b = x.free_vars |> Array.map (fun (L(i,t)) -> sprintf "l%i : %s" i 
> (tyv t)) |> String.concat ", "
>         if b = "" then line s (sprintf "Heap%i { Heap%i() }" x.tag x.tag)
>         else line s (sprintf "Heap%i { Heap%i(%s) }" x.tag x.tag b)
>         )
>     and mut : _ -> LayoutRecGleam = layout (fun s x ->
>         let b = x.free_vars |> Array.map (fun (L(i,t)) -> sprintf "l%i : %s" i 
> (tyv t)) |> String.concat ", "
>         if b = "" then line s (sprintf "Mut%i { Mut%i() }" x.tag x.tag)
>         else line s (sprintf "Mut%i { Mut%i(%s) }" x.tag x.tag b)
>         )
>     and uheap : _ -> UnionRecGleam = union (fun s x ->
>         line s (sprintf "Uh%i {" x.tag)
>         let mutable i = 0
>         x.free_vars |> Map.iter (fun _ a ->
>             match a with
>             | [[||]] -> line (indent s) (sprintf "Uh%ii%i" x.tag i)
>             | a -> line (indent s) (sprintf "Uh%ii%i(%s)" x.tag i (a |> 
> Array.map (fun (L(_,t)) -> tyv t) |> String.concat ", "))
>             i <- i+1
>             )
>         line s "}"
>         )
>     and ustack : _ -> UnionRecGleam = union (fun s x ->
>         line s (sprintf "Us%i {" x.tag)
>         let mutable i = 0
>         x.free_vars |> Map.iter (fun _ a ->
>             match a with
>             | [[||]] -> line (indent s) (sprintf "Us%ii%i" x.tag i)
>             | a -> line (indent s) (sprintf "Us%ii%i(%s)" x.tag i (a |> 
> Array.mapi (fun i' (L(_,t)) -> sprintf "f%ii%i : %s" i i' (tyv t)) |> 
> String.concat ", "))
>             i <- i+1
>             )
>         line s "}"
>         )
>     and method : _ -> MethodRecGleam =
>         jp (fun ((jp_body,key & (C(args,_))),i) ->
>             match (fst env.join_point_method.[[jp_body]]).[[key]] with
>             | Some a, Some range, _ -> {tag=i; free_vars=rdata_free_vars args; 
> range=range; body=a}
>             | _ -> raise_codegen_error "Compiler error: The method dictionary is
> malformed"
>             ) (fun s x ->
>             let range_ty = tup_ty x.range
>             let is_fn = range_ty |> SpiralSm.starts_with "fn(Nil  ) -> "
>             let ret =
>                 if is_fn
>                 then $"{range_ty} {{ fn(_)"
>                 else range_ty
>             line s (sprintf "method%i (%s) -> %s {" x.tag (args_tys x.free_vars)
> ret)
>             binds (indent s) x.body
>             if is_fn
>             then line s "}}"
>             else line s "}"
>             )
>     and closure : _ -> ClosureRecGleam =
>         jp (fun ((jp_body,key & (C(args,_,fun_ty))),i) ->
>             match fun_ty with
>             | YFun(domain,range,FT_Vanilla) ->
>                 match (fst env.join_point_closure.[[jp_body]]).[[key]] with
>                 | Some(domain_args, body) -> {tag=i; free_vars=rdata_free_vars 
> args; domain_args=data_free_vars domain_args; range=range; body=body}
>                 | _ -> raise_codegen_error "Compiler error: The method 
> dictionary is malformed"
>             | YFun(_,_,_) -> raise_codegen_error "Non-standard functions are not
> supported in the F# backend."
>             | _ -> raise_codegen_error "Compiler error: Unexpected type in the 
> closure join point."
>             ) (fun s x ->
>             let domain = 
>                 let domain_args =
>                     if x.domain_args |> Array.length < 1 then
>                         x.domain_args
>                         |> Array.map (fun (L(i,t)) ->
>                             sprintf "v%i :   %s" i (tyv t)
>                         )
>                     else
>                         let t =
>                             x.domain_args
>                             |> Array.map (fun (L(_,t)) -> $"{tyv t}")
>                             |> String.concat ", "
>                         if x.domain_args |> Array.length > 1
>                         then [[| $"x : #(#( {t}))" |]]
>                         else [[| $"x : #( {t})" |]]
>                 match domain_args with
>                 | [[||]] -> ""
>                 | [[|x|]] -> x
>                 | x -> String.concat ", " x
>             let free_vars_tys =
>                 if x.domain_args |> Array.length < 1 then
>                     let t =
>                         x.free_vars
>                         |> Array.map (fun (L(_,t)) -> tup_ty t)
>                         |> String.concat ", "
>                     $"x : #(  {t})"
>                 else args_tys x.free_vars
>             let args =
>                 [[| free_vars_tys; domain |]]
>                 |> Array.filter ((<>) "")
>                 |> String.concat ", "
>             let args' =
>                 if x.domain_args |> Array.length < 0 then
>                     ""
>                 else
>                     let args =
>                         (if x.domain_args |> Array.isEmpty then x.free_vars else
> x.domain_args)
>                         |> Array.map (fun (L(i,_)) -> $"v{i}")
>                         |> String.concat ", "
>                     if x.domain_args |> Array.length > 1
>                     then $"let #(#(   {args})) = x"
>                     else $"let #(   {args}) = x"
>             // line s (sprintf "closure%i () -> fn(_) -> %s { fn(%s) { %s" x.tag
> (tup_ty x.range) args args')
>             line s (sprintf "closure%i () -> fn(_) -> fn(Nil) -> %s { fn(%s) { 
> %s\nfn (_) {" x.tag (tup_ty x.range) args args')
>             binds (indent s) x.body
>             line s "}}}"
>             )
> 
>     let main = System.Text.StringBuilder()
>     binds {text=main; indent=0} x
> 
>     let program = System.Text.StringBuilder()
>     env.globals |> Seq.iter (fun (x : string) -> program.AppendLine(x) |> 
> ignore)
>     types |> Seq.iteri (fun i x -> program.Append("pub type ").Append(x) |> 
> ignore)
>     functions |> Seq.iteri (fun i x -> program.Append("pub fn ").Append(x) |> 
> ignore)
>     program.Append($"pub fn main () {{ {main} }}").ToString()
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> ── [ 3.16s - diagnostics ] ─────────────────────────────────────────────────────
> │ input.fsx (374,81)-(374,84) typecheck warning This and other
> recursive references to the object(s) being defined will be checked for 
> initialization-soundness at runtime through the use of a delayed reference. This
> is because you are defining one or more recursive objects, rather than recursive
> functions. This warning may be suppressed by using '#nowarn "40"' or 
> '--nowarn:40'.
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## RefCounting
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // Here are the reference counting analysis passes.
> open System.Collections.Generic
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### varc_add
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let varc_add x i v =
>     let c = Option.defaultValue 0 (Map.tryFind x v) + i
>     if c = 0 then Map.remove x v else Map.add x c v
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### varc_union
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let varc_union a b = Map.foldBack varc_add a b
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### varc_data
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let varc_data call_data =
>     let mutable v = Map.empty
>     let rec f = function
>         | DPair(a,b) -> f a; f b
>         | DForall(_,a,_,_,_) | DFunction(_,_,a,_,_,_) -> Array.iter f a
>         | DRecord l -> Map.iter (fun _ -> f) l
>         | DV x -> v <- varc_add x 1 v
>         | DExists(_,a) | DUnion(a,_) | DNominal(a,_) -> f a
>         | DLit _ | DTLit _ | DSymbol _ | DB -> ()
>         | DHashSet x -> Seq.iter f x
>         | DHashMap(x,_) -> x |> Seq.iter (fun kv -> f kv.Value)
>     f call_data
>     v
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### varc_set
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let varc_set x i = Set.fold (fun s v -> Map.add v i s) Map.empty x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### refc_used_vars
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let refc_used_vars (x : TypedBind [[]]) =
>     let g_bind : Dictionary<TypedBind, TyV Set> = 
> Dictionary(HashIdentity.Reference)
>     let fv x = x |> data_free_vars |> Set
>     let jp (x : JoinPointCall) = snd x |> Set
>     let rec binds x =
>         Array.foldBack (fun k vs ->
>             match k with
>             | TyLet(d,_,o) -> vs + op o - fv d
>             | TyLocalReturnOp(_,o,_) -> vs + op o
>             | TyLocalReturnData(d,_) -> vs + fv d
>             |> fun vs -> g_bind.Add(k,vs); vs
>             ) x Set.empty
>     and op (x : TypedOp) : TyV Set =
>         match x with
>         | TySizeOf _ -> Set.empty
>         | TyMacro l -> List.fold (fun s -> function CMTerm d -> s + fv d | _ -> 
> s) Set.empty l
>         | TyArrayLiteral(_,l) | TyOp(_,l) -> List.fold (fun s x -> s + fv x) 
> Set.empty l
>         | TyToLayout(x,_) | TyUnionBox(_,x,_) | TyFailwith(_,x) | TyConv(_,x) | 
> TyArrayCreate(_,x) | TyArrayLength(_,x) | TyStringLength(_,x) -> fv x
>         | TyWhile(cond,body) -> jp cond + binds body
>         | TyDo body | TyIndent body -> binds body
>         | TyLayoutIndexAll(i) | TyLayoutIndexByKey(i,_) -> Set.singleton i
>         | TyApply(i,d) | TyLayoutMutableSet(i,_,d) -> Set.singleton i + fv d
>         | TyJoinPoint x -> jp x
>         | TyBackend(_,_,_) -> Set.empty
>         | TyIf(cond,tr',fl') -> fv cond + binds tr' + binds fl'
>         | TyUnionUnbox(vs,_,on_succs',on_fail') ->
>             let vs = vs |> Set
>             let on_fail = 
>                 match on_fail' with
>                 | Some x -> binds x
>                 | None -> Set.empty
>             Map.fold (fun s k (lets,body) -> 
>                 let lets = List.fold (fun s x -> s + fv x) Set.empty lets
>                 s + (binds body - lets)
>                 ) (vs + on_fail) on_succs'
>         | TyIntSwitch(tag,on_succs',on_fail') ->
>             let vs = Set.singleton tag
>             let on_fail = binds on_fail'
>             Array.fold (fun s body -> s + binds body) (vs + on_fail) on_succs'
>     binds x |> ignore
>     g_bind
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### RefcVars
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type RefcVars = {g_incr : Dictionary<TypedBind,TyV Set>; g_decr : 
> Dictionary<TypedBind,TyV Set>; g_op : Dictionary<TypedBind,Map<TyV, int>>; 
> g_op_decr : Dictionary<TypedBind,TyV Set>}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### refc_prepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let refc_prepass (new_vars : TyV Set) (increfed_vars : TyV Set) (x : TypedBind 
> [[]]) =
>     let used_vars = refc_used_vars x
>     let g_incr : Dictionary<TypedBind, TyV Set> = 
> Dictionary(HashIdentity.Reference)
>     let g_decr : Dictionary<TypedBind, TyV Set> = 
> Dictionary(HashIdentity.Reference)
>     let g_op : Dictionary<TypedBind, _> = Dictionary(HashIdentity.Reference)
>     let g_op_decr : Dictionary<TypedBind, TyV Set> = 
> Dictionary(HashIdentity.Reference)
> 
>     let add (d : Dictionary<TypedBind, TyV Set>) k x = if Set.isEmpty x then () 
> else d.Add(k,x)
>     let add' (d : Dictionary<TypedBind, Map<TyV,int>>) k x = if Map.isEmpty x 
> then () else d.Add(k,x)
>     let fv x = x |> data_free_vars |> Set
>     let rec binds (new_vars : TyV Set) (increfed_vars : TyV Set) (k : TypedBind 
> [[]]) =
>         Array.fold (fun (new_vars, increfed_vars) k ->
>             add g_incr k new_vars
>             let increfed_vars = new_vars + increfed_vars
> 
>             let used_vars = used_vars.[[k]]
>             let decref_vars = increfed_vars - used_vars
>             add g_decr k decref_vars
>             let r = increfed_vars - decref_vars
>             match k with
>             | TyLet(d,_,o) ->
>                 op k Set.empty o
>                 let new_vars = fv d
>                 match o with
>                 | TyLayoutIndexAll _ | TyLayoutIndexByKey _ | TyOp(ArrayIndex,_)
> -> new_vars, r
>                 | _ -> Set.empty, r + new_vars
>             | TyLocalReturnOp(_,o,_) -> 
>                 op k r o
>                 Set.empty, r
>             | TyLocalReturnData(d,_) ->
>                 add' g_op k (varc_data d)
>                 add g_op_decr k r
>                 Set.empty, r
>             ) (new_vars, increfed_vars) k
>         |> ignore
>     and op k increfed_vars (x : TypedOp) : unit =
>         let fun_call q = add' g_op k q; add g_op_decr k increfed_vars
>         match x with
>         | TyApply(a,b) -> varc_add a 1 (varc_data b) |> fun_call
>         | TyJoinPoint(_,x) -> Array.fold (fun s x -> varc_add x 1 s) Map.empty x
> |> fun_call
>         | TyArrayLiteral(_,x) -> List.fold (fun s x -> varc_union s (varc_data 
> x)) Map.empty x |> fun_call
>         | TyUnionBox(_,x,_) | TyToLayout(x,_) -> varc_data x |> fun_call
>         | TySizeOf _ | TyLayoutIndexAll _ | TyLayoutIndexByKey _ | TyMacro _ | 
> TyOp _ | TyFailwith _ | TyConv _ 
>         | TyArrayCreate _ | TyArrayLength _ | TyStringLength _ | 
> TyLayoutMutableSet _ | TyBackend _ -> ()
>         | TyWhile(_,body) -> binds Set.empty Set.empty body
>         | TyDo body | TyIndent body -> binds Set.empty Set.empty body
>         | TyIf(_,tr',fl') -> binds Set.empty increfed_vars tr'; binds Set.empty 
> increfed_vars fl'
>         | TyUnionUnbox(_,_,on_succs',on_fail') ->
>             Map.iter (fun _ (lets,body) -> 
>                 binds (List.fold (fun s x -> s + fv x) Set.empty lets) 
> increfed_vars body
>                 ) on_succs'
>             Option.iter (binds Set.empty increfed_vars) on_fail'
>         | TyIntSwitch(_,on_succs',on_fail') ->
>             Array.iter (binds Set.empty increfed_vars) on_succs'
>             binds Set.empty increfed_vars on_fail'
>     binds new_vars increfed_vars x
>     
>     {g_incr=g_incr; g_op=g_op; g_decr=g_decr; g_op_decr=g_op_decr}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## CodegenC
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> module CodegenC =
>     // open System
>     // open System.Text
>     open System.Collections.Generic
> 
>     let sizeof_tyvC = function
>         | YPrim (Int64T | UInt64T | Float64T) -> 8
>         | YPrim (Int32T | UInt32T | Float32T) -> 4
>         | YPrim (Int16T | UInt16T) -> 2
>         | YPrim (Int8T | UInt8T | CharT | BoolT) -> 1
>         | _ -> 8
>     let order_argsC v = v |> Array.sortWith (fun (L(_,t)) (L(_,t')) -> compare 
> (sizeof_tyvC t') (sizeof_tyvC t))
>     let lineC x s = if s <> "" then x.text.Append(' ', x.indent).AppendLine s |>
> ignore
>     let line' x s = line x (String.concat " " s)
> 
>     let rec is_heap f x = 
>         Array.exists (fun (L(i,t)) -> 
>             match t with
>             | YUnion a when a.Item.layout = UStack -> Array.exists (snd >> f >> 
> is_heap f) a.Item.tag_cases
>             | YPrim StringT -> true
>             | YPrim _ -> false
>             | _ -> true
>             ) x
>     let is_stringC = function DV(L(_,YPrim StringT)) | DLit(LitString _) -> true
> | _ -> false
> 
>     type BindsReturnC =
>         | BindsTailEnd
>         | BindsLocal of TyV [[]]
> 
>     let term_vars_to_tysC x = x |> Array.map (function WV(L(_,t)) -> t | WLit x 
> -> YPrim (lit_to_primitive_type x))
>     let binds_last_dataC x = x |> Array.last |> function TyLocalReturnData(x,_) 
> | TyLocalReturnOp(_,_,x) -> x | TyLet _ -> raise_codegen_error "Compiler error: 
> Cannot find the return data of the last bind."
> 
>     type UnionRecC = {tag : int; free_vars : Map<int * string, TyV[[]]>}
>     type LayoutRecC = {tag : int; data : Data; free_vars : TyV[[]]; 
> free_vars_by_key : Map<int * string, TyV[[]]>}
>     type MethodRecC = {tag : int; free_vars : L<Tag,Ty>[[]]; range : Ty; body : 
> TypedBind[[]]; name : string option}
>     type ClosureRecC = {tag : int; free_vars : L<Tag,Ty>[[]]; domain : Ty; 
> domain_args : TyV[[]]; range : Ty; body : TypedBind[[]]}
>     type TupleRecC = {tag : int; tys : Ty [[]]}
>     type ArrayRecC = {tag : int; ty : Ty; tyvs : TyV[[]]}
>     type CFunRecC = {tag : int; domain_args_ty : Ty[[]]; range : Ty}
> 
>     let size_t = UInt32T
> 
>     let lit_stringC x =
>         let strb = System.Text.StringBuilder(String.length x + 2)
>         strb.Append '"' |> ignore
>         String.iter (function
>             | '"' -> strb.Append "\\\"" 
>             | '\b' -> strb.Append @"\b"
>             | '\t' -> strb.Append @"\t"
>             | '\n' -> strb.Append @"\n"
>             | '\r' -> strb.Append @"\r"
>             | '\\' -> strb.Append @"\\"
>             | x -> strb.Append x
>             >> ignore 
>             ) x
>         strb.Append '"' |> ignore
>         strb.ToString()
> 
>     let codegenC (env : PartEvalResult) (x : TypedBind [[]]) =
>         let globals = ResizeArray()
>         let fwd_dcls = ResizeArray()
>         let types = ResizeArray()
>         let functions = ResizeArray()
> 
>         let malloc, free = "malloc", "free"
> 
>         let print_decref s_fun name_fun type_arg name_decref =
>             line s_fun (sprintf "void %s(%s * x){" name_fun type_arg)
>             let _ =
>                 let s_fun = indent s_fun
>                 line s_fun (sprintf "if (x != NULL && --(x->refc) == 0) { %s(x);
> %s(x); }" name_decref free)
>             line s_fun "}"
> 
>         let print show r =
>             let s_typ_fwd = {text=System.Text.StringBuilder(); indent=0}
>             let s_typ = {text=System.Text.StringBuilder(); indent=0}
>             let s_fun = {text=System.Text.StringBuilder(); indent=0}
>             show s_typ_fwd s_typ s_fun r
>             let f (a : _ ResizeArray) (b : CodegenEnv) = 
>                 let text = b.text.ToString()
>                 if text <> "" then a.Add(text)
>             f fwd_dcls s_typ_fwd
>             f types s_typ
>             f functions s_fun
> 
>         let layout show =
>             let dict' = Dictionary(HashIdentity.Structural)
>             let dict = Dictionary(HashIdentity.Reference)
>             let f x : LayoutRecC = 
>                 match x with
>                 | YLayout(x,_) ->
>                     let x = env.ty_to_data x
>                     let a, b =
>                         match x with
>                         | DRecord a -> let a = Map.map (fun _ -> data_free_vars)
> a in a |> Map.toArray |> Array.collect snd, a
>                         | _ -> data_free_vars x, Map.empty
>                     {data=x; free_vars=a; free_vars_by_key=b; tag=dict'.Count}
>                 | _ -> raise_codegen_error $"Compiler error: Expected a layout 
> type (7).\nGot: %s{show_ty x}"
>             fun x ->
>                 let mutable dirty = false
>                 let r = memoize dict (memoize dict' (fun x -> dirty <- true; f 
> x)) x
>                 if dirty then print show r
>                 r
> 
>         let union show =
>             let dict = Dictionary(HashIdentity.Reference)
>             let f (a : Union) : UnionRecC = 
>                 let free_vars = a.Item.cases |> Map.map (fun _ -> env.ty_to_data
> >> data_free_vars)
>                 {free_vars=free_vars; tag=dict.Count}
>             fun x ->
>                 let mutable dirty = false
>                 let r = memoize dict (fun x -> dirty <- true; f x) x
>                 if dirty then print show r
>                 r
> 
>         let jp f show =
>             let dict = Dictionary(HashIdentity.Structural)
>             let f x = f (x, dict.Count)
>             fun x ->
>                 let mutable dirty = false
>                 let r = memoize dict (fun x -> dirty <- true; f x) x
>                 if dirty then print show r
>                 r
> 
>         let tuple show =
>             let dict = Dictionary(HashIdentity.Structural)
>             let f x = {tag=dict.Count; tys=x}
>             fun x ->
>                 let mutable dirty = false
>                 let r = memoize dict (fun x -> dirty <- true; f x) x
>                 if dirty then print show r
>                 r
> 
>         let carray' show =
>             let dict = Dictionary(HashIdentity.Structural)
>             let f x = {tag=dict.Count; ty=x; tyvs = env.ty_to_data x |> 
> data_free_vars}
>             fun x ->
>                 let mutable dirty = false
>                 let r = memoize dict (fun x -> dirty <- true; f x) x
>                 if dirty then print show r
>                 r
> 
>         let cstring' show =
>             let mutable dirty = true
>             fun () ->
>                 if dirty then print show ()
>                 dirty <- false
> 
>         let cfun' show =
>             let dict = Dictionary(HashIdentity.Structural)
>             let f (a : Ty, b : Ty) = {tag=dict.Count; domain_args_ty=a |> 
> env.ty_to_data |> data_free_vars |> Array.map (fun (L(_,t)) -> t); range=b}
>             fun x ->
>                 let mutable dirty = false
>                 let r = memoize dict (fun x -> dirty <- true; f x) x
>                 if dirty then print show r
>                 r
> 
>         let args x = x |> Array.map (fun (L(i,_)) -> sprintf "v%i" i) |> 
> String.concat ", "
> 
>         let tmp =
>             let mutable i = 0u
>             fun () -> let x = i in i <- i + 1u; x
> 
>         let global' =
>             let has_added = HashSet()
>             fun x -> if has_added.Add(x) then globals.Add x
> 
>         let import x = global' $"#include <{x}>"
>         let import' x = global' $"#include \"{x}\""
> 
>         let tyvs_to_tys (x : TyV [[]]) = Array.map (fun (L(i,t)) -> t) x
>         
>         let rec binds_start (args : TyV [[]]) (s : CodegenEnv) (x : TypedBind 
> [[]]) = binds (refc_prepass Set.empty (Set args) x) s BindsTailEnd x
>         and return_local s ret (x : string) = 
>             match ret with
>             | [[||]] -> line s $"{x};"
>             | [[|L(i,_)|]] -> line s $"v{i} = {x};"
>             | ret ->
>                 let tmp_i = tmp()
>                 line s $"{tup_ty_tyvs ret} tmp{tmp_i} = {x};"
>                 Array.mapi (fun i (L(i',_)) -> $"v{i'} = tmp{tmp_i}.v{i};") ret 
> |> line' s
>         and binds (vars : RefcVars) (s : CodegenEnv) (ret : BindsReturnC) (stmts
> : TypedBind [[]]) = 
>             let tup_destruct (a,b) =
>                 Array.map2 (fun (L(i,_)) b -> 
>                     match b with
>                     | WLit b -> $"v{i} = {lit b};"
>                     | WV (L(i',_)) -> $"v{i} = v{i'};"
>                     ) a b
>             Array.iter (fun x ->
>                 // This complicated looking piece of code is responsible for 
> putting the incref and decref statements at the beginning of every
>                 // statement. It's actually the only place where ref counting 
> code is outputted in the codegen.
>                 let _ =
>                     let f k = get_default k x (fun () -> Set.empty)
>                     let f' k = get_default k x (fun () -> Map.empty)
>                     let incr, decr, op, op_decr = varc_set (f vars.g_incr) 1, 
> varc_set (f vars.g_decr) -1, f' vars.g_op, varc_set (f vars.g_op_decr) -1
>                     let incr, decr = varc_union incr decr |> varc_union op |> 
> varc_union op_decr |> Map.partition (fun _ v -> 0 < v)
>                     refc_varc incr |> line' s; refc_varc decr |> line' s
>                 match x with
>                 | TyLet(d,trace,a) ->
>                     try let d = data_free_vars d
>                         let decl_vars = Array.map (fun (L(i,t)) -> $"{tyv t} 
> v{i};") d
>                         match a with
>                         | TyMacro a ->
>                             let m = a |> List.map (function CMText x -> x | 
> CMTerm x -> tup_data x | CMType x -> tup_ty x | CMTypeLit x -> type_lit x) |> 
> String.concat ""
>                             let q = m.Split("\\v")
>                             if q.Length = 1 then 
>                                 decl_vars |> line' s
>                                 return_local s d m 
>                             else
>                                 if d.Length = q.Length-1 then
>                                     let w = 
> System.Text.StringBuilder(m.Length+8)
>                                     let tag (L(i,_)) = i : int
>                                     Array.iteri (fun i v -> 
> w.Append(q.[[i]]).Append('v').Append(tag v) |> ignore) d
>                                     
> w.Append(q.[[d.Length]]).Append(';').ToString() |> line s
>                                 else
>                                     raise_codegen_error "The special \\v macro 
> requires the same number of free vars in its binding as there are \\v in the 
> code."
>                         | _ ->
>                             decl_vars |> line' s
>                             op vars s (BindsLocal d) a
>                     with :? CodegenError as e -> raise_codegen_error' trace 
> (e.Data0, e.Data1)
>                 | TyLocalReturnOp(trace,a,_) ->
>                     try op vars s ret a
>                     with :? CodegenError as e -> raise_codegen_error' trace 
> (e.Data0, e.Data1)
>                 | TyLocalReturnData(d,trace) ->
>                     try match ret with
>                         | BindsLocal l -> line' s (tup_destruct 
> (l,data_term_vars d))
>                         | BindsTailEnd -> line s $"return {tup_data d};"
>                     with :? CodegenError as e -> raise_codegen_error' trace 
> (e.Data0, e.Data1)
>                 ) stmts
>         and refc_change'' (f : int * Ty -> string) count (L(i,t')) =
>             let v = i,t'
>             let inline g decref =
>                 if count = -1 then Some (decref())
>                 elif count = 1 then Some $"{f v}->refc++;"
>                 elif 1 < count then Some $"{f v}->refc += {count};"
>                 else raise_codegen_error $"Compiler error: Invalid count in 
> refc_change''. Got: {count}"
>             match t' with
>             | YUnion t -> 
>                 match t.Item.layout with
>                 | UStack -> 
>                     if count = -1 then Some $"USDecref{(ustack t).tag}(&({f 
> v}));"
>                     elif 0 < count then Some (String.replicate count 
> $"USIncref{(ustack t).tag}(&({f v}));")
>                     else raise_codegen_error $"Compiler error: Invalid count in 
> refc_change''. UStack case. Got: {count}"
>                 | UHeap -> g (fun () -> $"UHDecref{(uheap t).tag}({f v});")
>             | YArray t -> g (fun () -> $"ArrayDecref{(carray t).tag}({f v});")
>             | YFun(a,b,FT_Vanilla) -> g (fun () ->  $"{f v}->decref_fptr({f 
> v});")
>             | YPrim StringT -> g (fun () ->  $"StringDecref({f v});" )
>             | YLayout(_,Heap) as a -> g (fun () ->  $"HeapDecref{(heap 
> a).tag}({f v});")
>             | YLayout(_,HeapMutable) as a -> g (fun () ->  $"MutDecref{(mut 
> a).tag}({f v});")
>             | _ -> None
>         and refc_change' (f : int * Ty -> string) count (x : TyV [[]]) : string 
> [[]] = Array.choose (refc_change'' f count) x
>         and refc_change f c x = refc_change' (fun (i,t) -> f i) c x
>         and refc_varc x = 
>             let ar = ResizeArray(Map.count x)
>             Map.iter (fun k v -> refc_change'' (fun (i,_) -> $"v{i}") v k |> 
> Option.iter ar.Add) x
>             ar
>         //and refc_incr x : string [[]] = refc_change (fun i -> $"v{i}") 1 x
>         //and refc_decr x : string [[]] = refc_change (fun i -> $"v{i}") -1 x
>         and show_w = function WV(L(i,_)) -> sprintf "v%i" i | WLit a -> lit a
>         and args' b = data_term_vars b |> Array.map show_w |> String.concat ", "
>         and tup_term_vars x =
>             let args = Array.map show_w x |> String.concat ", "
>             if 1 < x.Length then sprintf "TupleCreate%i(%s)" (tup 
> (term_vars_to_tysC x)).tag args else args
>         and tup_data x = tup_term_vars (data_term_vars x)
>         and tup_ty_tys = function
>             | [[||]] -> "void"
>             | [[|x|]] -> tyv x
>             | x -> sprintf "Tuple%i" (tup x).tag
>         and tup_ty_tyvs (x : TyV [[]]) = tup_ty_tys (tyvs_to_tys x)
>         and tup_ty x = env.ty_to_data x |> data_free_vars |> tup_ty_tyvs
>         and tyv x =
>             match x with
>             | YUnion a ->
>                 match a.Item.layout with
>                 | UStack -> sprintf "US%i" (ustack a).tag
>                 | UHeap -> sprintf "UH%i *" (uheap a).tag
>             | YLayout(_,lay) as a -> 
>                 match lay with
>                 | Heap -> sprintf "Heap%i *" (heap a).tag
>                 | HeapMutable -> sprintf "Mut%i *" (mut a).tag
>                 | StackMutable -> raise_codegen_error "Compiler error: The C 
> backend doesn't support stack mutable layout types."
>             | YMacro a -> a |> List.map (function Text a -> a | Type a -> tup_ty
> a | TypeLit a -> type_lit a) |> String.concat ""
>             | YPrim a -> prim a
>             | YArray a -> sprintf "Array%i *" (carray a).tag
>             | YFun(a,b,FT_Vanilla) -> sprintf "Fun%i *" (cfun (a,b)).tag
>             | YExists -> raise_codegen_error "Existentials are not supported at 
> runtime. They are a compile time feature only."
>             | YForall -> raise_codegen_error "Foralls are not supported at 
> runtime. They are a compile time feature only."
>             | a -> raise_codegen_error (sprintf "Compiler error: Type not 
> supported in the codegen.\nGot: %A" a)
>         and prim = function
>             | Int8T -> "int8_t" 
>             | Int16T -> "int16_t"
>             | Int32T -> "int32_t"
>             | Int64T -> "int64_t"
>             | UInt8T -> "uint8_t"
>             | UInt16T -> "uint16_t"
>             | UInt32T -> "uint32_t"
>             | UInt64T -> "uint64_t" // are defined in stdint.h
>             | Float32T -> "float"
>             | Float64T -> "double"
>             | BoolT -> "bool" // is defined in stdbool.h
>             | CharT -> "char"
>             | StringT -> cstring(); "String *"
>         and lit = function
>             | LitInt8 x -> sprintf "%i" x
>             | LitInt16 x -> sprintf "%i" x
>             | LitInt32 x -> sprintf "%il" x
>             | LitInt64 x -> sprintf "%ill" x
>             | LitUInt8 x -> sprintf "%iu" x
>             | LitUInt16 x -> sprintf "%iu" x
>             | LitUInt32 x -> sprintf "%iul" x
>             | LitUInt64 x -> sprintf "%iull" x
>             | LitFloat32 x -> 
>                 if x = infinityf then "HUGE_VALF" // nan/inf macros are defined 
> in math.h
>                 elif x = -infinityf then "-HUGE_VALF"
>                 elif System.Single.IsNaN x then "NAN"
>                 else x.ToString("R") |> add_dec_point |> sprintf "%sf"
>             | LitFloat64 x ->
>                 if x = infinity then "HUGE_VAL"
>                 elif x = -infinity then "-HUGE_VAL"
>                 elif System.Double.IsNaN x then "NAN"
>                 else x.ToString("R") |> add_dec_point
>             | LitString x ->
>                 cstring()
>                 lit_stringC x |> sprintf "StringLit(%i, %s)" (x.Length + 1)
>             | LitChar x -> 
>                 match x with
>                 | '\b' -> @"\b"
>                 | '\n' -> @"\n"
>                 | '\t' -> @"\t"
>                 | '\r' -> @"\r"
>                 | '\\' -> @"\\"
>                 | x -> string x
>                 |> sprintf "'%s'"
>             | LitBool x -> if x then "true" else "false" // true and false are 
> defined in stddef.h
>         and type_lit = function
>             | YLit x -> lit x
>             | YSymbol x -> x
>             | YNominal _ | YApply _ as x -> type_lit (env.nominal_apply x)
>             | x -> raise_codegen_error "Compiler error: Expecting a type literal
> in the macro." 
>         and op (vars : RefcVars) s (ret : BindsReturnC) a =
>             let binds a b = binds vars a b
>             let return' (x : string) =
>                 match ret with
>                 | BindsLocal ret -> return_local s ret x
>                 | BindsTailEnd -> line s $"return {x};"
>             let layout_index (x'_i : int) (x' : TyV [[]]) =
>                 match ret with
>                 | BindsLocal x -> Array.map2 (fun (L(i,_)) (L(i',_)) -> $"v{i} =
> v{x'_i}->v{i'};") x x' |> line' s
>                 | BindsTailEnd -> raise_codegen_error "Compiler error: Layout 
> index should never come in end position."
>             let jp (a,b') =
>                 let args = args b'
>                 match a with
>                 | JPMethod(a,b) -> 
>                     let x = method (a,b)
>                     sprintf "%s%i(%s)" (Option.defaultValue "method" x.name) 
> x.tag args
>                 | JPClosure(a,b) -> sprintf "ClosureCreate%i(%s)" (closure 
> (a,b)).tag args
>             let string_in_op = function DLit (LitString b) -> lit_stringC b | b 
> -> $"{tup_data b}->ptr"
>             match a with
>             | TySizeOf t -> return' $"sizeof({tup_ty t})"
>             | TyMacro _ -> raise_codegen_error "Macros are supposed to be taken 
> care of in the `binds` function."
>             | TyIf(cond,tr,fl) ->
>                 line s (sprintf "if (%s){" (tup_data cond))
>                 binds (indent s) ret tr
>                 line s "} else {"
>                 binds (indent s) ret fl
>                 line s "}"
>             | TyJoinPoint(a,args) -> return' (jp (a, args))
>             | TyBackend(_,_,r) -> raise_codegen_error_backend r "The C backend 
> does not support nesting of other backends."
>             | TyWhile(a,b) ->
>                 let cond =
>                     match a with
>                     | JPMethod(a,b),b' -> sprintf "method_while%i(%s)" 
> (method_while (a,b)).tag (args b')
>                     | _ -> raise_codegen_error "Expected a regular method rather
> than closure create in the while conditional."
>                 line s (sprintf "while (%s){" cond)
>                 binds (indent s) (BindsLocal [[||]]) b
>                 line s "}"
>             | TyDo a | TyIndent a ->
>                 binds s ret a
>             | TyIntSwitch(L(v_i,_),on_succ,on_fail) ->
>                 line s (sprintf "switch (v%i) {" v_i)
>                 let _ =
>                     let s = indent s
>                     Array.iteri (fun i x ->
>                         line s (sprintf "case %i: {" i)
>                         binds (indent s) ret x
>                         line (indent s) "break;"
>                         line s "}"
>                         ) on_succ
>                     line s "default: {"
>                     binds (indent s) ret on_fail
>                     line s "}"
>                 line s "}"
>             | TyUnionUnbox(is,x,on_succs,on_fail) ->
>                 let case_tags = x.Item.tags
>                 let acs = match x.Item.layout with UHeap -> "->" | UStack -> "."
>                 let head = List.head is |> fun (L(i,_)) -> $"v{i}{acs}tag"
>                 List.pairwise is
>                 |> List.map (fun (L(i,_), L(i',_)) -> $"v{i}{acs}tag == 
> v{i'}{acs}tag")
>                 |> String.concat " && "
>                 |> function "" -> head | x -> $"{x} ? {head} : -1"
>                 |> sprintf "switch (%s) {" |> line s
>                 let _ =
>                     let s = indent s
>                     Map.iter (fun k (a,b) ->
>                         let union_i = case_tags.[[k]]
>                         let decr = get_default vars.g_decr (Array.head b) (fun 
> () -> Set.empty)
>                         line s (sprintf "case %i: { // %s" union_i k)
>                         List.iter2 (fun (L(data_i,_)) a ->
>                             let a, s = data_free_vars a, indent s
>                             let qs = ResizeArray(a.Length)
>                             Array.iteri (fun field_i (L(v_i,t) as v) -> 
>                                 if Set.contains v decr = false then qs.Add 
> $"{tyv t} v{v_i} = v{data_i}{acs}case{union_i}.v{field_i};"
>                                 ) a 
>                             line' s qs
>                             ) is a
>                         binds (indent s) ret b
>                         line (indent s) "break;"
>                         line s "}"
>                         ) on_succs
>                     on_fail |> Option.iter (fun b ->
>                         line s "default: {"
>                         binds (indent s) ret b
>                         line s "}"
>                         )
>                 line s "}"
>             | TyUnionBox(a,b,c') ->
>                 let c = c'.Item
>                 let i = c.tags.[[a]]
>                 let vars = args' b
>                 match c.layout with
>                 | UHeap -> sprintf "UH%i_%i(%s)" (uheap c').tag i vars
>                 | UStack -> sprintf "US%i_%i(%s)" (ustack c').tag i vars
>                 |> return'
>             | TyToLayout(a,b) -> 
>                 match b with
>                 | YLayout(_,layout) -> 
>                     match layout with
>                     | Heap -> sprintf "HeapCreate%i(%s)" (heap b).tag (args' a)
>                     | HeapMutable -> sprintf "MutCreate%i(%s)" (mut b).tag 
> (args' a)
>                     | StackMutable -> raise_codegen_error "The C backend doesn't
> support stack mutable layout types."
>                 | _ -> raise_codegen_error $"Compiler error: Expected a layout 
> type (8).\nGot: %s{show_ty b}"
>                 |> return'
>             | TyLayoutIndexAll(L(i,YLayout(_,lay) & a)) ->
>                 match lay with
>                 | Heap -> heap a 
>                 | HeapMutable -> mut a
>                 | StackMutable -> raise_codegen_error "The C backend doesn't 
> support indexing into stack mutable layout types."
>                 |> fun x -> x.free_vars |> layout_index i 
>             | TyLayoutIndexByKey(L(i,YLayout(_,lay) & a),key) ->
>                 match lay with
>                 | Heap -> heap a 
>                 | HeapMutable -> mut a
>                 | StackMutable -> raise_codegen_error "The C backend doesn't 
> support indexing into stack mutable layout types."
>                 |> fun x ->
>                     x.free_vars_by_key
>                     |> Map.tryPick (fun (_, k) v -> if k = key then Some v else 
> None)
>                     |> Option.iter (layout_index i)
>             | TyLayoutIndexAll _ | TyLayoutIndexByKey _ -> raise_codegen_error 
> "Compiler error: Expected the TyV in layout index to be a layout type."
>             | TyLayoutMutableSet(L(i,t),b,c) ->
>                 let q = mut t // `mut t` is correct here, peval strips the 
> YLayout.
>                 let a = List.fold (fun s k ->
>                     match s with
>                     | DRecord l -> l |> Map.pick (fun (_,k') v -> if k' = k then
> Some v else None)
>                     | _ -> raise_codegen_error "Compiler error: Expected a 
> record.") q.data b 
>                 Array.map2 (fun (L(i',_)) b -> $"&(v{i}->v{i'}), {show_w b}") 
> (data_free_vars a) (data_term_vars c) |> String.concat ", " 
>                 |> sprintf "AssignMut%i(%s)" (assign_mut (tyvs_to_tys 
> q.free_vars)).tag |> return'
>             | TyArrayLiteral(a,b') ->
>                 let b = List.map tup_data b' |> String.concat "," |> sprintf 
> "{%s}"
>                 $"ArrayLit{(carray a).tag}({b'.Length}, ({tup_ty a} [[]]){b})" 
> |> return'
>             | TyArrayCreate(a,b) -> 
>                 let a = carray a
>                 let is_heap : string = is_heap (env.ty_to_data >> 
> data_free_vars) a.tyvs |> sprintf "%b"
>                 $"ArrayCreate{a.tag}({tup_data b}, {is_heap})" |> return'
>             | TyFailwith(a,b) -> 
>                 let fmt = @"%s\n"
>                 line s $"fprintf(stderr, \"{fmt}\", {string_in_op b});"
>                 line s "exit(EXIT_FAILURE);" // TODO: Print out the error traces
> as well.
>             | TyConv(a,b) -> return' $"({tyv a}){tup_data b}"
>             | TyApply(L(i,_),b) -> 
>                 match args' b with
>                 | "" -> $"v{i}->fptr(v{i})"
>                 | b -> $"v{i}->fptr(v{i}, {b})"
>                 |> return'
>             | TyArrayLength(_,b) -> return' $"{tup_data b}->len"
>             | TyStringLength(_,b) -> return' $"{tup_data b}->len-1"
>             | TyOp(Global,[[DLit (LitString x)]]) -> global' x
>             | TyOp(op,l) ->
>                 let float_suffix = function
>                     | DV(L(_,YPrim Float32T)) | DLit(LitFloat32 _) -> "f"
>                     | _ -> ""
>                 match op, l with
>                 | Dyn,[[a]] -> tup_data a
>                 | TypeToVar, _ -> raise_codegen_error "The use of `` should 
> never appear in generated code."
>                 | StringIndex, [[a;b]] -> sprintf "%s->ptr[[%s]]" (tup_data a) 
> (tup_data b)
>                 | StringSlice, [[a;b;c]] -> raise_codegen_error "String slice is
> not supported natively in the C backend. Use a library implementation instead."
>                 | ArrayIndex, [[DV(L(_,YArray t)) & a;b]] -> 
>                     match tup_ty t with
>                     | "void" -> "/* void array index */"
>                     | _ -> sprintf "%s->ptr[[%s]]" (tup_data a) (tup_data b)
>                 | ArrayIndexSet, [[DV(L(_,YArray t)) as a;b;c]] -> 
>                     let a',b',c' = tup_data a, tup_data b, tup_data c
>                     match c' with
>                     | "" -> "/* void array set */"
>                     | _ -> $"AssignArray{(assign_array (tyvs_to_tys (carray 
> t).tyvs)).tag}(&({a'}->ptr[[{b'}]]), {c'})"
>                 // Math
>                 | Add, [[a;b]] -> sprintf "%s + %s" (tup_data a) (tup_data b)
>                 | Sub, [[a;b]] -> sprintf "%s - %s" (tup_data a) (tup_data b)
>                 | Mult, [[a;b]] -> sprintf "%s * %s" (tup_data a) (tup_data b)
>                 | Div, [[a;b]] -> sprintf "%s / %s" (tup_data a) (tup_data b)
>                 | Mod, [[a;b]] -> sprintf "%s %% %s" (tup_data a) (tup_data b)
>                 | Pow, [[a;b]] -> sprintf "pow%s(%s,%s)" (float_suffix a) 
> (tup_data a) (tup_data b)
>                 | LT, [[a;b]] -> sprintf "%s < %s" (tup_data a) (tup_data b)
>                 | LTE, [[a;b]] -> sprintf "%s <= %s" (tup_data a) (tup_data b)
>                 | EQ, [[a;b]] when is_stringC a -> import "string.h"; sprintf 
> "strcmp(%s->ptr, %s->ptr) == 0" (string_in_op a) (string_in_op b) // TODO: 
> Optimize string structural comparison in the real_core
>                 | NEQ, [[a;b]] when is_stringC a -> import "string.h"; sprintf 
> "strcmp(%s->ptr, %s->ptr) != 0" (string_in_op a) (string_in_op b)
>                 | GT, [[a;b]] when is_stringC a -> import "string.h"; sprintf 
> "strcmp(%s->ptr, %s->ptr) > 0" (string_in_op a) (string_in_op b)
>                 | GTE, [[a;b]] when is_stringC a -> import "string.h"; sprintf 
> "strcmp(%s->ptr, %s->ptr) >= 0" (string_in_op a) (string_in_op b)
>                 | EQ, [[a;b]] -> sprintf "%s == %s" (tup_data a) (tup_data b)
>                 | NEQ, [[a;b]] -> sprintf "%s != %s" (tup_data a) (tup_data b)
>                 | GT, [[a;b]] -> sprintf "%s > %s" (tup_data a) (tup_data b)
>                 | GTE, [[a;b]] -> sprintf "%s >= %s" (tup_data a) (tup_data b)
>                 | BoolAnd, [[a;b]] -> sprintf "%s && %s" (tup_data a) (tup_data 
> b)
>                 | BoolOr, [[a;b]] -> sprintf "%s || %s" (tup_data a) (tup_data 
> b)
>                 | BitwiseAnd, [[a;b]] -> sprintf "%s & %s" (tup_data a) 
> (tup_data b)
>                 | BitwiseOr, [[a;b]] -> sprintf "%s | %s" (tup_data a) (tup_data
> b)
>                 | BitwiseXor, [[a;b]] -> sprintf "%s ^ %s" (tup_data a) 
> (tup_data b)
>                 | BitwiseComplement, [[a]] -> sprintf "~%s" (tup_data a)
> 
>                 | ShiftLeft, [[a;b]] -> sprintf "%s << %s" (tup_data a) 
> (tup_data b)
>                 | ShiftRight, [[a;b]] -> sprintf "%s >> %s" (tup_data a) 
> (tup_data b)
> 
>                 | Neg, [[x]] -> sprintf "-%s" (tup_data x)
>                 | Log, [[x]] -> import "math.h"; sprintf "log%s(%s)" 
> (float_suffix x) (tup_data x)
>                 | Exp, [[x]] -> import "math.h"; sprintf "exp%s(%s)" 
> (float_suffix x) (tup_data x)
>                 | Tanh, [[x]] -> import "math.h"; sprintf "tanh%s(%s)" 
> (float_suffix x) (tup_data x)
>                 | Sqrt, [[x]] -> import "math.h"; sprintf "sqrt%s(%s)" 
> (float_suffix x) (tup_data x)
>                 | NanIs, [[x]] -> import "math.h"; sprintf "isnan(%s)" (tup_data
> x)
>                 | UnionTag, [[DV(L(i,YUnion l)) as x]] -> 
>                     match l.Item.layout with
>                     | UHeap -> "->tag"
>                     | UStack -> ".tag"
>                     |> sprintf "v%i%s" i
>                 | _ -> raise_codegen_error <| sprintf "Compiler error: %A with 
> %i args not supported" op l.Length
>                 |> return'
>         and print_ordered_args s v = // Unlike C# for example, C keeps the 
> struct fields in input order. To reduce padding, it is best to order the fields 
> from largest to smallest.
>             order_argsC v |> Array.iter (fun (L(i,x)) -> line s $"{tyv x} 
> v{i};")
>         and method_templ is_while fun_name : _ -> MethodRecC =
>             jp (fun ((jp_body,key & (C(args,_))),i) ->
>                 match (fst env.join_point_method.[[jp_body]]).[[key]] with
>                 | Some a, Some range, name -> {tag=i; free_vars=rdata_free_vars 
> args; range=range; body=a; name=name}
>                 | _ -> raise_codegen_error "Compiler error: The method 
> dictionary is malformed"
>                 ) (fun _ s_typ s_fun x ->
>                 let ret_ty = tup_ty x.range
>                 let args = x.free_vars |> Array.mapi (fun i (L(_,x)) -> $"{tyv 
> x} v{i}") |> String.concat ", "
>                 let fun_name = Option.defaultValue fun_name x.name
>                 line s_fun (sprintf "%s %s%i(%s){" ret_ty fun_name x.tag args)
>                 binds_start (if is_while then [[||]] else x.free_vars) (indent 
> s_fun) x.body
>                 line s_fun "}"
>                 )
>         and method_while : _ -> MethodRecC = method_templ true "method_while"
>         and method : _ -> MethodRecC = method_templ false "method"
>         and closure : _ -> ClosureRecC =
>             jp (fun ((jp_body,key & (C(args,_,fun_ty))),i) ->
>                 match fun_ty with
>                 | YFun(domain,range,FT_Vanilla) ->
>                     match (fst env.join_point_closure.[[jp_body]]).[[key]] with
>                     | Some(domain_args, body) -> {tag=i; 
> free_vars=rdata_free_vars args; domain=domain; domain_args=data_free_vars 
> domain_args; range=range; body=body}
>                     | _ -> raise_codegen_error "Compiler error: The method 
> dictionary is malformed"
>                 | YFun(_,_,_)-> raise_codegen_error "Non-standard functions are 
> not supported in the C backend."
>                 | _ -> raise_codegen_error "Compiler error: Unexpected type in 
> the closure join point."
>                 ) (fun _ s_typ s_fun x ->
>                 let i, range = x.tag, tup_ty x.range
>                 line s_typ (sprintf "typedef struct Closure%i Closure%i;" i i)
>                 line s_typ (sprintf "struct Closure%i {" i)
>                 let _ =
>                     let s_typ = indent s_typ
>                     line s_typ $"int refc;"
>                     line s_typ $"void (*decref_fptr)(Closure{i} *);"
>                     match x.domain_args |> Array.map (fun (L(_,t)) -> tyv t) |> 
> String.concat ", " with
>                     | "" -> $"{range} (*fptr)(Closure{i} *);"
>                     | domain_args_ty -> $"{range} (*fptr)(Closure{i} *, 
> {domain_args_ty});"
>                     |> line s_typ
>                     print_ordered_args s_typ x.free_vars
>                 line s_typ "};"
> 
>                 line s_fun (sprintf "static inline void 
> ClosureDecrefBody%i(Closure%i * x){" i i)
>                 let _ =
>                     let s_fun = indent s_fun
>                     x.free_vars |> refc_change (fun i -> $"x->v{i}") -1 |> line'
> s_fun
>                 line s_fun "}"
> 
>                 print_decref s_fun $"ClosureDecref{i}" $"Closure{i}" 
> $"ClosureDecrefBody{i}"
>                 
>                 match x.domain_args |> Array.map (fun (L(i,t)) -> $"{tyv t} 
> v{i}") |> String.concat ", " with
>                 | "" -> sprintf "%s ClosureMethod%i(Closure%i * x){" range i i
>                 | domain_args -> sprintf "%s ClosureMethod%i(Closure%i * x, 
> %s){" range i i domain_args
>                 |> line s_fun
>                 let _ =
>                     let s_fun = indent s_fun
>                     x.free_vars |> Array.map (fun (L(i,t)) -> $"{tyv t} v{i} = 
> x->v{i};") |> line' s_fun
>                     line s_fun $"ClosureDecref{i}(x);"
>                     binds_start x.domain_args s_fun x.body
>                 line s_fun "}"
> 
>                 let fun_tag = (cfun (x.domain,x.range)).tag
>                 let free_vars = x.free_vars |> Array.map (fun (L(i,t)) -> $"{tyv
> t} v{i}")
>                 line s_fun (sprintf "Fun%i * ClosureCreate%i(%s){" fun_tag i 
> (String.concat ", " free_vars))
>                 let _ =
>                     let s_fun = indent s_fun
>                     line s_fun $"Closure{i} * x = {malloc}(sizeof(Closure{i}));"
>                     line s_fun "x->refc = 1;"
>                     line s_fun $"x->decref_fptr = ClosureDecref{i};"
>                     line s_fun $"x->fptr = ClosureMethod{i};"
>                     x.free_vars |> Array.map (fun (L(i,_)) -> $"x->v{i} = 
> v{i};")  |> line' s_fun
>                     line s_fun $"return (Fun{fun_tag} *) x;"
>                 line s_fun "}"
>                 )
>         and cfun : _ -> CFunRecC =
>             cfun' (fun _ s_typ s_fun x ->
>                 let i, range = x.tag, tup_ty x.range
>                 line s_typ $"typedef struct Fun{i} Fun{i};"
>                 line s_typ (sprintf "struct Fun%i{" i)
>                 let _ =
>                     let s_typ = indent s_typ
>                     line s_typ $"int refc;"
>                     line s_typ $"void (*decref_fptr)(Fun{i} *);"
>                     match x.domain_args_ty |> Array.map tyv |> String.concat ", 
> " with
>                     | "" -> $"{range} (*fptr)(Fun{i} *);"
>                     | domain_args_ty -> $"{range} (*fptr)(Fun{i} *, 
> {domain_args_ty});"
>                     |> line s_typ
>                 line s_typ "};"
>                 )
>         and tup : _ -> TupleRecC =
>             tuple (fun _ s_typ s_fun x ->
>                 let name = sprintf "Tuple%i" x.tag
>                 line s_typ "typedef struct {"
>                 x.tys |> Array.mapi (fun i x -> L(i,x)) |> print_ordered_args 
> (indent s_typ)
>                 line s_typ (sprintf "} %s;" name)
> 
>                 let args = x.tys |> Array.mapi (fun i x -> $"{tyv x} v{i}")
>                 line s_fun (sprintf "static inline %s TupleCreate%i(%s){" name 
> x.tag (String.concat ", " args))
>                 let _ =
>                     let s_fun = indent s_fun
>                     line s_fun $"{name} x;"
>                     Array.init args.Length (fun i -> $"x.v{i} = v{i};") |> line'
> s_fun
>                     line s_fun $"return x;"
>                 line s_fun "}"
>                 )
>         and assign_mut : _ -> TupleRecC = 
>             tuple (fun _ s_typ s_fun x ->
>                 let tyvs = Array.mapi (fun i t -> L(i,t)) x.tys
>                 let args = Array.mapi (fun i t -> let t = tyv t in $"{t} * a{i},
> {t} b{i}") x.tys |> String.concat ", "
>                 line s_fun (sprintf "static inline void AssignMut%i(%s){" x.tag 
> args)
>                 let _ =
>                     let s_fun = indent s_fun
>                     refc_change (fun i -> $"b{i}") 1 tyvs |> line' s_fun
>                     refc_change (fun i -> $"*a{i}") -1 tyvs |> line' s_fun
>                     Array.init tyvs.Length (fun i -> $"*a{i} = b{i};") |> line' 
> s_fun
>                 line s_fun "}"
>                 )
>         and assign_array : _ -> TupleRecC = 
>             tuple (fun _ s_typ s_fun x ->
>                 let tyvs, T = Array.mapi (fun i t -> L(i,t)) x.tys, tup_ty_tys 
> x.tys
>                 line s_fun (sprintf "static inline void AssignArray%i(%s * a, %s
> b){" x.tag T T)
>                 let _ =
>                     let s_fun = indent s_fun
>                     match tyvs with
>                     | [[||]] -> raise_codegen_error "Compiler error: Void types 
> not allowed in assign."
>                     | [[|t|]] -> 
>                         refc_change (fun i -> "b") 1 tyvs |> line' s_fun
>                         refc_change (fun i -> "*a") -1 tyvs |> line' s_fun
>                         $"*a = b;" |> line s_fun
>                     | _ ->
>                         refc_change (fun i -> $"b.v{i}") 1 tyvs |> line' s_fun
>                         refc_change (fun i -> $"a->v{i}") -1 tyvs |> line' s_fun
>                         $"*a = b;" |> line s_fun
>                 line s_fun "}"
>                 )
>         and layout_tmpl name : _ -> LayoutRecC =
>             layout (fun _ s_typ s_fun (x : LayoutRecC) ->
>                 let i = x.tag
>                 let name' = sprintf "%s%i" name i
> 
>                 line s_typ "typedef struct {"
>                 let _ =
>                     let s_typ = indent s_typ
>                     line s_typ "int refc;"
>                     print_ordered_args s_typ x.free_vars
>                 line s_typ (sprintf "} %s;" name')
> 
>                 line s_fun (sprintf "static inline void %sDecrefBody%i(%s * x){"
> name i name')
>                 let _ =
>                     let s_fun = indent s_fun
>                     x.free_vars |> refc_change (fun i -> $"x->v{i}") -1 |> line'
> s_fun
>                 line s_fun "}"
> 
>                 print_decref s_fun $"{name}Decref{i}" name' 
> $"{name}DecrefBody{i}"
> 
>                 let args = x.free_vars |> Array.map (fun (L(i,x)) -> $"{tyv x} 
> v{i}")
>                 line s_fun (sprintf "%s * %sCreate%i(%s){" name' name i 
> (String.concat ", " args))
>                 let _ =
>                     let s_fun = indent s_fun
>                     line s_fun $"{name'} * x = {malloc}(sizeof({name'}));"
>                     line s_fun "x->refc = 1;"
>                     Array.init args.Length (fun i -> $"x->v{i} = v{i};") |> 
> line' s_fun
>                     line s_fun $"return x;"
>                 line s_fun "}"
>                 )
>         and heap : _ -> LayoutRecC = layout_tmpl "Heap"
>         and mut : _ -> LayoutRecC = layout_tmpl "Mut"
>         and union_tmpl is_stack : Union -> UnionRecC = 
>             let inline map_iteri f x = Map.fold (fun i k v -> f i k v; i+1) 0 x 
> |> ignore
>             union (fun s_fwd s_typ s_fun x ->
>                 let i = x.tag
>                 match is_stack with
>                 | true  -> line s_typ "typedef struct {"
>                 | false -> 
>                     line s_fwd (sprintf "typedef struct UH%i UH%i;" i i)
>                     line s_typ (sprintf "struct UH%i {" i)
>                 let _ =
>                     let s_typ = indent s_typ
>                     match is_stack with
>                     | true -> ()
>                     | false -> line s_typ "int refc;"
>                     line s_typ "int tag;"
>                     line s_typ "union {"
>                     let _ =
>                         let s_typ = indent s_typ
>                         map_iteri (fun tag (_, k) v -> 
>                             if Array.isEmpty v = false then
>                                 line s_typ "struct {"
>                                 print_ordered_args (indent s_typ) v
>                                 line s_typ (sprintf "} case%i; // %s" tag k)
>                             ) x.free_vars
>                     line s_typ "};"
>                 match is_stack with
>                 | true  -> line s_typ (sprintf "} US%i;" i)
>                 | false -> line s_typ "};"
> 
>                 let print_refc name typ q =
>                     line s_fun (sprintf "static inline void %s(%s * x){" name 
> typ)
>                     let _ =
>                         let s_fun = indent s_fun
>                         line s_fun "switch (x->tag) {"
>                         map_iteri (fun tag k v -> 
>                             let s_fun = indent s_fun
>                             let refc = v |> refc_change (fun i -> 
> $"x->case{tag}.v{i}") q
>                             if refc.Length <> 0 then
>                                 line s_fun (sprintf "case %i: {" tag)
>                                 let _ =
>                                     let s_fun = indent s_fun
>                                     refc |> line' s_fun
>                                     line s_fun "break;"
>                                 line s_fun "}"
>                             ) x.free_vars
>                         line s_fun "}"
>                     line s_fun "}"
> 
>                 match is_stack with
>                 | true  -> 
>                     print_refc $"USIncrefBody{i}" $"US{i}" 1
>                     print_refc $"USDecrefBody{i}" $"US{i}" -1
>                 | false -> print_refc $"UHDecrefBody{i}" $"UH{i}" -1
> 
>                 match is_stack with
>                 | true  -> 
>                     line s_fun (sprintf "void USIncref%i(US%i * x){ 
> USIncrefBody%i(x); }" i i i)
>                     line s_fun (sprintf "void USDecref%i(US%i * x){ 
> USDecrefBody%i(x); }" i i i)
>                 | false -> 
>                     line s_fwd (sprintf "void UHDecref%i(UH%i * x);" i i)
>                     print_decref s_fun $"UHDecref{i}" $"UH{i}" 
> $"UHDecrefBody{i}"
>                 
>                 map_iteri (fun tag (_, k) v -> 
>                     let args = v |> Array.map (fun (L(i,t)) -> $"{tyv t} v{i}") 
> |> String.concat ", "
>                     if is_stack then
>                         line s_fun (sprintf "US%i US%i_%i(%s) { // %s" i i tag 
> args k)
>                         let _ =
>                             let s_fun = indent s_fun
>                             line s_fun $"US{i} x;"
>                             line s_fun $"x.tag = {tag};"
>                             if v.Length <> 0 then
>                                 v |> Array.map (fun (L(i,t)) -> 
> $"x.case{tag}.v{i} = v{i};") |> line' s_fun
>                             line s_fun "return x;"
>                         line s_fun "}"
>                     else
>                         line s_fun (sprintf "UH%i * UH%i_%i(%s) { // %s" i i tag
> args k)
>                         let _ =
>                             let s_fun = indent s_fun
>                             line s_fun $"UH{i} * x = {malloc}(sizeof(UH{i}));"
>                             line s_fun $"x->tag = {tag};"
>                             line s_fun "x->refc = 1;"
>                             if v.Length <> 0 then
>                                 v |> Array.map (fun (L(i,t)) -> 
> $"x->case{tag}.v{i} = v{i};") |> line' s_fun
>                             line s_fun $"return x;"
>                         line s_fun "}"
>                     ) x.free_vars
>                 )
>         and ustack : _ -> UnionRecC = union_tmpl true
>         and uheap : _ -> UnionRecC = union_tmpl false
>         and carray : _ -> ArrayRecC =
>             carray' (fun _ s_typ s_fun x ->
>                 let i, len_t, ptr_t = x.tag, prim size_t, tup_ty_tyvs x.tyvs
>                 line s_typ "typedef struct {"
>                 let _ =
>                     let s_typ = indent s_typ
>                     line s_typ "int refc;"
>                     line s_typ $"{len_t} len;"
>                     if ptr_t <> "void" then line s_typ $"{ptr_t} ptr[[]];" // 
> flexible array member
>                 line s_typ (sprintf "} Array%i;" i)
> 
> 
>                 let print_body p s_fun q =
>                     let refcs = x.tyvs |> refc_change (fun i -> if 1 < 
> x.tyvs.Length then $"v.v{i}" else "v") q
>                     if refcs.Length <> 0 then
>                         p()
>                         line s_fun (sprintf "for (%s i=0; i < len; i++){" len_t)
>                         let _ =
>                             let s_fun = indent s_fun
>                             line s_fun $"{ptr_t} v = ptr[[i]];"
>                             refcs |> line' s_fun
>                         line s_fun "}"
> 
>                 line s_fun (sprintf "static inline void 
> ArrayDecrefBody%i(Array%i * x){" i i)
>                 let _ =
>                     let s_fun = indent s_fun
>                     print_body (fun () ->
>                         line s_fun $"{len_t} len = x->len;"
>                         line s_fun $"{ptr_t} * ptr = x->ptr;"
>                         ) s_fun -1
>                 line s_fun "}"
> 
>                 print_decref s_fun $"ArrayDecref{i}" $"Array{i}" 
> $"ArrayDecrefBody{i}"
>                 
>                 line s_fun (sprintf "Array%i * ArrayCreate%i(%s len, bool 
> init_at_zero){" i i len_t)
>                 let _ =
>                     let s_fun = indent s_fun
>                     match ptr_t with
>                     | "void" -> line s_fun $"{len_t} size = sizeof(Array{i});"
>                     | _ -> line s_fun $"{len_t} size = sizeof(Array{i}) + 
> sizeof({ptr_t}) * len;"
>                     line s_fun $"Array{i} * x = {malloc}(size);"
>                     line s_fun "if (init_at_zero) { memset(x,0,size); }"
>                     line s_fun "x->refc = 1;"
>                     line s_fun "x->len = len;"
>                     line s_fun "return x;"
>                 line s_fun "}"
> 
>                 line s_fun (sprintf "Array%i * ArrayLit%i(%s len, %s * ptr){" i 
> i len_t ptr_t)
>                 let _ =
>                     let s_fun = indent s_fun
>                     line s_fun $"Array{i} * x = ArrayCreate{i}(len, false);"
>                     if ptr_t <> "void" then 
>                         line s_fun $"memcpy(x->ptr, ptr, sizeof({ptr_t}) * 
> len);"
>                         print_body (fun () -> ()) (indent s_fun) 1
>                     line s_fun "return x;"
>                 line s_fun "}"
>                 )
>         and cstring : unit -> unit =
>             cstring' (fun _ s_typ s_fun () ->
>                 let char = YPrim CharT
>                 let size_t, ptr_t, tag = prim size_t, tyv char, (carray 
> char).tag
>                 line s_typ $"typedef Array{tag} String;"
> 
>                 line s_fun "static inline void StringDecref(String * x){"
>                 line (indent s_fun) $"return ArrayDecref{tag}(x);"
>                 line s_fun "}"
> 
>                 line s_fun (sprintf "static inline String * StringLit(%s len, %s
> * ptr){" size_t ptr_t)
>                 line (indent s_fun) $"return ArrayLit{tag}(len, ptr);"
>                 line s_fun "}"
>                 )
> 
>         match binds_last_dataC x |> data_term_vars |> term_vars_to_tysC with
>         | [[|YPrim Int32T|]] ->
>             import "stdbool.h"
>             import "stdint.h"
>             import "stdio.h"
>             import "stdlib.h"
> 
>             let main_defs = {text=System.Text.StringBuilder(); indent=0}
>             import "string.h" // for memcpy
> 
>             line main_defs (sprintf "%s main(){" (prim Int32T))
>             binds_start [[||]] (indent main_defs) x
>             line main_defs "}"
> 
>             let program = System.Text.StringBuilder()
> 
>             globals |> Seq.iter (fun x -> program.AppendLine(x) |> ignore)
>             fwd_dcls |> Seq.iter (fun x -> program.Append(x) |> ignore)
>             types |> Seq.iter (fun x -> program.Append(x) |> ignore)
>             functions |> Seq.iter (fun x -> program.Append(x) |> ignore)
>             program.Append(main_defs.text).ToString()
>         | _ ->
>             raise_codegen_error "The return type of main in the C backend should
> be a 32-bit int."
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> ── [ 5.96s - diagnostics ] ─────────────────────────────────────────────────────
> │ input.fsx (572,39)-(572,45) typecheck warning This and other
> recursive references to the object(s) being defined will be checked for 
> initialization-soundness at runtime through the use of a delayed reference. This
> is because you are defining one or more recursive objects, rather than recursive
> functions. This warning may be suppressed by using '#nowarn "40"' or 
> '--nowarn:40'.
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## CodegenCuda
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> module CodegenCuda =
>     // open System
>     // open System.Text
>     open System.Collections.Generic
> 
>     let backend_nameCuda = "Cuda"
>     let max_tag = 255uy
> 
>     let is_stringCuda = function DV(L(_,YPrim StringT)) | DLit(LitString _) -> 
> true | _ -> false
>     let sizeof_tyvCuda = function
>         | YPrim (Int64T | UInt64T | Float64T) -> 8
>         | YPrim (Int32T | UInt32T | Float32T) -> 4
>         | YPrim (Int16T | UInt16T) -> 2
>         | YPrim (Int8T | UInt8T | CharT | BoolT) -> 1
>         | _ -> 8
>     let order_args v = v |> Array.sortWith (fun (L(_,t)) (L(_,t')) -> compare 
> (sizeof_tyvCuda t') (sizeof_tyvCuda t))
>     let lineCuda x s = if s <> "" then x.text.Append(' ', x.indent).AppendLine s
> |> ignore
>     let lineCuda' x s = line x (String.concat " " s)
> 
>     type BindsReturnCuda =
>         | BindsTailEnd
>         | BindsLocal of TyV [[]]
> 
>     let term_vars_to_tysCuda x = x |> Array.map (function WV(L(_,t)) -> t | WLit
> x -> YPrim (lit_to_primitive_type x))
>     let binds_last_dataCuda x = x |> Array.last |> function 
> TyLocalReturnData(x,_) | TyLocalReturnOp(_,_,x) -> x | TyLet _ -> 
> raise_codegen_error "Compiler error: Cannot find the return data of the last 
> bind."
> 
>     type LayoutRecCuda = {tag : int; data : Data; free_vars : TyV[[]]; 
> free_vars_by_key : Map<int * string, TyV[[]]>}
>     type UnionRecCuda = {tag : int; free_vars : Map<int * string, TyV[[]]>; 
> is_heap : bool}
>     type MethodRecCuda = {tag : int; free_vars : TyV[[]]; range : Ty; body : 
> TypedBind[[]]; name : string option}
>     type ClosureRecCuda = {tag : int; free_vars : TyV[[]]; domain : Ty; range : 
> Ty; funtype : FunType; body : TypedBind[[]]}
>     type TupleRecCuda = {tag : int; tys : Ty [[]]}
>     type CFunRecCuda = {tag : int; domain : Ty; range : Ty; funtype : FunType}
> 
>     //let size_t = UInt32T
> 
>     // Replaces the invalid symbols in Spiral method names for the C backend.
>     let fix_method_name (x : string) = x.Replace(''','_') + "_"
> 
>     let unroll_pop (s : Stack<int>) = if s.Count > 0 then s.Pop() else -1
>     let unroll_peek (s : Stack<int>) = if s.Count > 0 then s.Peek() else -1
> 
>     let lit_stringCuda x =
>         let strb = System.Text.StringBuilder(String.length x + 2)
>         strb.Append '"' |> ignore
>         String.iter (function
>             | '"' -> strb.Append "\\\"" 
>             | '\b' -> strb.Append @"\b"
>             | '\t' -> strb.Append @"\t"
>             | '\n' -> strb.Append @"\n"
>             | '\r' -> strb.Append @"\r"
>             | '\\' -> strb.Append @"\\"
>             | x -> strb.Append x
>             >> ignore 
>             ) x
>         strb.Append '"' |> ignore
>         strb.ToString()
> 
>     let codegenCuda (default_env : DefaultEnv) (globals : _ ResizeArray, 
> fwd_dcls : _ ResizeArray, types : _ ResizeArray, functions : _ ResizeArray, 
> main_defs : _ ResizeArray) (env : PartEvalResult) =
>         let print show r =
>             let s_typ_fwd = {text=System.Text.StringBuilder(); indent=0}
>             let s_typ = {text=System.Text.StringBuilder(); indent=0}
>             let s_fun = {text=System.Text.StringBuilder(); indent=0}
>             show s_typ_fwd s_typ s_fun r
>             let f (a : _ ResizeArray) (b : CodegenEnv) = 
>                 let text = b.text.ToString()
>                 if text <> "" then a.Add(text)
>             f fwd_dcls s_typ_fwd
>             f types s_typ
>             f functions s_fun
> 
>         let layout show =
>             let dict' = Dictionary(HashIdentity.Structural)
>             let dict = Dictionary(HashIdentity.Reference)
>             let f x : LayoutRecCuda = 
>                 match x with
>                 | YLayout(x,_) ->
>                 let x = env.ty_to_data x
>                 let a, b =
>                     match x with
>                     | DRecord a -> let a = Map.map (fun _ -> data_free_vars) a 
> in a |> Map.toArray |> Array.collect snd, a
>                     | _ -> data_free_vars x, Map.empty
>                 {data=x; free_vars=a; free_vars_by_key=b; tag=dict'.Count}
>                 | _ -> raise_codegen_error $"Compiler error: Expected a layout 
> type (1).\nGot: %s{show_ty x}"
>             fun x ->
>                 let mutable dirty = false
>                 let r = memoize dict (memoize dict' (fun x -> dirty <- true; f 
> x)) x
>                 if dirty then print show r
>                 r
> 
>         let union show =
>             let dict = Dictionary(HashIdentity.Reference)
>             let f (a : Union) : UnionRecCuda = 
>                 let free_vars = a.Item.cases |> Map.map (fun _ -> env.ty_to_data
> >> data_free_vars)
>                 {free_vars=free_vars; tag=dict.Count; is_heap=a.Item.layout = 
> UHeap}
>             fun x ->
>                 let mutable dirty = false
>                 let r = memoize dict (fun x -> dirty <- true; f x) x
>                 if dirty then print show r
>                 r
> 
>         let jp f show =
>             let dict = Dictionary(HashIdentity.Structural)
>             let f x = f (x, dict.Count)
>             fun x ->
>                 let mutable dirty = false
>                 let r = memoize dict (fun x -> dirty <- true; f x) x
>                 if dirty then print show r
>                 r
> 
>         let tuple show =
>             let dict = Dictionary(HashIdentity.Structural)
>             let f x = {tag=dict.Count; tys=x}
>             fun x ->
>                 let mutable dirty = false
>                 let r = memoize dict (fun x -> dirty <- true; f x) x
>                 if dirty then print show r
>                 r
> 
>         let cfun' show =
>             let dict = Dictionary(HashIdentity.Structural)
>             let f (a : Ty, b : Ty, t : FunType) = {tag=dict.Count; domain=a; 
> range=b; funtype=t}
>             fun x ->
>                 let mutable dirty = false
>                 let r = memoize dict (fun x -> dirty <- true; f x) x
>                 if dirty then print show r
>                 r
> 
>         let args x = x |> Array.map (fun (L(i,_)) -> sprintf "v%i" i) |> 
> String.concat ", "
> 
>         let tmp =
>             let mutable i = 0u
>             fun () -> let x = i in i <- i + 1u; x
> 
>         let global' =
>             let has_added = HashSet()
>             fun x -> if has_added.Add(x) then globals.Add x
> 
>         let import x = global' $"#include <{x}>"
>         let import' x = global' $"#include \"{x}\""
> 
>         let tyvs_to_tys (x : TyV [[]]) = Array.map (fun (L(i,t)) -> t) x
> 
>         let rec binds_start (s : CodegenEnv) (x : TypedBind [[]]) = binds 
> (Stack()) s BindsTailEnd x
>         and return_local s ret (x : string) = 
>             match ret with
>             | [[||]] -> line s $"{x};"
>             | [[|L(i,_)|]] -> line s $"v{i} = {x};"
>             | ret ->
>                 let tmp_i = tmp()
>                 line s $"{tup_ty_tyvs ret} tmp{tmp_i} = {x};"
>                 Array.mapi (fun i (L(i',_)) -> $"v{i'} = tmp{tmp_i}.v{i};") ret 
> |> lineCuda' s
>         and get_layout_rec lay a =
>             match lay with 
>             | Heap -> heap a 
>             | HeapMutable -> mut a
>             | StackMutable -> stack_mut a
>         and binds (unroll : Stack<int>) (s : CodegenEnv) (ret : BindsReturnCuda)
> (stmts : TypedBind [[]]) =
>             let tup_destruct (a,b) =
>                 Array.map2 (fun (L(i,_)) b ->
>                     match b with
>                     | WLit b -> $"v{i} = {lit b};"
>                     | WV (L(i',_)) -> $"v{i} = v{i'};"
>                     ) a b
>             Array.forall (fun x ->
>                 match x with
>                 | TyLet(d,trace,a) ->
>                     try let d = data_free_vars d
>                         let decl_vars () = Array.map (fun (L(i,t)) -> $"{tyv t} 
> v{i};") d
>                         let layout_index layout (x'_i : int) (x' : TyV [[]]) = 
>                             match layout with
>                             | Heap | HeapMutable -> Array.map2 (fun (L(i,t)) 
> (L(i',_)) -> $"{tyv t} & v{i} = v{x'_i}.base->v{i'};") d x' |> lineCuda' s
>                             | StackMutable -> Array.map2 (fun (L(i,t)) (L(i',_))
> -> $"{tyv t} & v{i} = v{x'_i}.v{i'};") d x' |> lineCuda' s
>                         match a with
>                         | TyToLayout(a,YLayout(_,StackMutable) & b) ->
>                             match d with
>                             | [[|L(i,YLayout(_,StackMutable))|]] -> // For the 
> regular arrays.
>                                 let tag = (stack_mut b).tag
>                                 line s $"StackMut{tag} v{i}{{{args' a}}};"
>                                 true
>                             | _ ->
>                                 raise_codegen_error "Compiler error: Expected a 
> stack mutable layout type."
>                         | TyLayoutIndexAll(x) -> 
>                             match x with 
>                             | L(i,YLayout(_,lay) & a) -> (get_layout_rec lay 
> a).free_vars |> layout_index lay i 
>                             | _ -> raise_codegen_error "Compiler error: Expected
> the TyV in layout index to be a layout type."
>                             true
>                         | TyLayoutIndexByKey(x,key) -> 
>                             match x with 
>                             | L(i,YLayout(_,lay) & a) -> (get_layout_rec lay 
> a).free_vars_by_key |> Map.pick (fun (_, k') v' -> if key = k' then Some v' else
> None) |> layout_index lay i 
>                             | _ -> raise_codegen_error "Compiler error: Expected
> the TyV in layout index by key to be a layout type."
>                             true
>                         | TyMacro a ->
>                             let m = a |> List.map (function CMText x -> x | 
> CMTerm x -> tup_data x | CMType x -> tup_ty x | CMTypeLit x -> type_lit x) |> 
> String.concat ""
>                             if m.StartsWith("#pragma") then 
>                                 line s m
>                                 true
>                             elif m = "break" then
>                                 line s "break;"
>                                 false
>                             elif m.StartsWith("return") then
>                                 line s $"{m};"
>                                 false
>                             else
>                                 let q = m.Split("\\v")
>                                 if q.Length = 1 then 
>                                     decl_vars() |> lineCuda' s
>                                     return_local s d m 
>                                     true
>                                 else
>                                     if d.Length = q.Length-1 then
>                                         let w = 
> System.Text.StringBuilder(m.Length+8)
>                                         let tag (L(i,_)) = i : int
>                                         Array.iteri (fun i v -> 
> w.Append(q.[[i]]).Append('v').Append(tag v) |> ignore) d
>                                         
> w.Append(q.[[d.Length]]).Append(';').ToString() |> line s
>                                         true
>                                     else
>                                         raise_codegen_error "The special \\v 
> macro requires the same number of free vars in its binding as there are \\v in 
> the code."
>                         | TyArrayLiteral(a,b') -> 
>                             let inits = List.map tup_data b' |> String.concat 
> "," |> sprintf "{%s}"
>                             match d with
>                             | [[|L(i,YArray t)|]] -> // For the regular arrays.
>                                 line s $"%s{tup_ty t} v{i}[[]] = %s{inits};"
>                                 true
>                             | _ ->
>                                 raise_codegen_error "Compiler error: Expected a 
> single variable on the left side of an array literal op."
>                         | TyArrayCreate(a,b) ->  
>                             match d with
>                             | [[|L(i,YArray t)|]] -> 
>                                 match tup_ty t with
>                                 | "void" -> line s "/* void array create */"
>                                 | t -> line s $"{t} v{i}[[{tup_data b}]];"
>                                 true
>                             | _ -> raise_codegen_error "Compiler error: Expected
> a single variable on the left side of an array create op."
>                         | TyJoinPoint(JPClosure(a,b),b') ->
>                             match d with
>                             | [[|L(i,_)|]] -> 
>                                 let x = closure (a,b)
>                                 match x.funtype with
>                                 | FT_Pointer ->
>                                     let y = cfun (x.domain,x.range,x.funtype)
>                                     line s $"Fun{y.tag} v{i} = 
> FunPointerMethod{x.tag};"
>                                 | FT_Vanilla ->
>                                     let args = args b'
>                                     line s $"Closure{x.tag} v{i}{{{args}}};"
>                                 | FT_Closure -> 
>                                     let y = cfun (x.domain,x.range,x.funtype)
>                                     let args = args b'
>                                     line s $"Fun{y.tag} v{i}{{new 
> Closure{x.tag}{{{args}}}}};"
>                                 true
>                             | _ -> raise_codegen_error "Compiler error: Expected
> a single variable on the left side of a closure join point."
>                         | _ ->
>                             decl_vars() |> lineCuda' s
>                             op unroll s (BindsLocal d) a
>                             true
>                     with :? CodegenError as e -> raise_codegen_error' trace 
> (e.Data0, e.Data1)
>                 | TyLocalReturnOp(trace,a,_) ->
>                     try op unroll s ret a
>                         true
>                     with :? CodegenError as e -> raise_codegen_error' trace 
> (e.Data0, e.Data1)
>                 | TyLocalReturnData(d,trace) ->
>                     try match ret with
>                         | BindsLocal l -> lineCuda' s (tup_destruct 
> (l,data_term_vars d))
>                         | BindsTailEnd -> line s $"return {tup_data d};"
>                         true
>                     with :? CodegenError as e -> raise_codegen_error' trace 
> (e.Data0, e.Data1)
>                 ) stmts
>             |> ignore
>         and show_w = function WV(L(i,_)) -> sprintf "v%i" i | WLit a -> lit a
>         and args' b = data_term_vars b |> Array.map show_w |> String.concat ", "
>         and tup_term_vars x =
>             let args = Array.map show_w x |> String.concat ", "
>             if 1 < x.Length then sprintf "Tuple%i{%s}" (tup 
> (term_vars_to_tysCuda x)).tag args else args
>         and tup_data x = tup_term_vars (data_term_vars x)
>         and tup_ty_tys = function
>             | [[||]] -> "void"
>             | [[|x|]] -> tyv x
>             | x -> sprintf "Tuple%i" (tup x).tag
>         and tup_ty_tyvs (x : TyV [[]]) = tup_ty_tys (tyvs_to_tys x)
>         and tup_ty x = env.ty_to_data x |> data_free_vars |> tup_ty_tyvs
>         and tyv x =
>             match x with
>             | YUnion a ->
>                 match a.Item.layout with
>                 | UStack -> sprintf "Union%i" (unions a).tag
>                 | UHeap -> sprintf "sptr<Union%i>" (unions a).tag
>             | YLayout(_,lay) as a -> 
>                 match lay with
>                 | Heap -> sprintf "sptr<Heap%i>" (heap a).tag
>                 | HeapMutable -> sprintf "sptr<Mut%i>" (mut a).tag
>                 | StackMutable -> sprintf "StackMut%i &" (stack_mut a).tag
>             | YMacro [[Text "backend_switch "; Type (YRecord r)]] ->
>                 match r |> Map.tryPick (fun (_, k) v -> if k = backend_nameCuda 
> then Some v else None) with
>                 | Some x -> tup_ty x
>                 | None -> raise_codegen_error $"In the backend_switch, expected 
> a record with the '{backend_nameCuda}' field."
>             | YMacro a -> a |> List.map (function Text a -> a | Type a -> tup_ty
> a | TypeLit a -> type_lit a) |> String.concat ""
>             | YPrim a -> prim a
>             | YArray a -> sprintf "%s *" (tup_ty a)
>             | YFun(a,b,t) -> $"Fun%i{(cfun (a,b,t)).tag}"
>             | YExists -> raise_codegen_error "Existentials are not supported at 
> runtime. They are a compile time feature only."
>             | YForall -> raise_codegen_error "Foralls are not supported at 
> runtime. They are a compile time feature only."
>             | a -> raise_codegen_error (sprintf "Compiler error: Type not 
> supported in the codegen.\nGot: %A" a)
>         and prim = function
>             | Int8T -> "char" 
>             | Int16T -> "short"
>             | Int32T -> "int"
>             | Int64T -> "long long"
>             | UInt8T -> "unsigned char"
>             | UInt16T -> "unsigned short"
>             | UInt32T -> "unsigned int"
>             | UInt64T -> "unsigned long long"
>             | Float32T -> "float"
>             | Float64T -> "double"
>             | BoolT -> "bool" // part of c++ standard
>             | CharT -> "char"
>             | StringT -> "const char *"
>         and lit = function
>             | LitInt8 x -> sprintf "%i" x
>             | LitInt16 x -> sprintf "%i" x
>             | LitInt32 x -> sprintf "%i" x
>             | LitInt64 x -> sprintf "%ill" x
>             | LitUInt8 x -> sprintf "%iu" x
>             | LitUInt16 x -> sprintf "%iu" x
>             | LitUInt32 x -> sprintf "%iu" x
>             | LitUInt64 x -> sprintf "%iull" x
>             | LitFloat32 x -> 
>                 if x = infinityf then "1.0f / 0.0f"
>                 elif x = -infinityf then "-1.0f / 0.0f"
>                 elif System.Single.IsNaN x then "0.0f / 0.0f"
>                 else x.ToString("R") |> add_dec_point |> sprintf "%sf"
>             | LitFloat64 x ->
>                 if x = infinity then "1.0 / 0.0"
>                 elif x = -infinity then "-1.0 / 0.0"
>                 elif System.Double.IsNaN x then "0.0 / 0.0"
>                 else x.ToString("R") |> add_dec_point
>             | LitString x -> lit_stringCuda x
>             | LitChar x -> 
>                 match x with
>                 | '\b' -> @"\b"
>                 | '\n' -> @"\n"
>                 | '\t' -> @"\t"
>                 | '\r' -> @"\r"
>                 | '\\' -> @"\\"
>                 | x -> string x
>                 |> sprintf "'%s'"
>             | LitBool x -> if x then "true" else "false" // true and false are 
> defined in stddef.h
>         and type_lit = function
>             | YLit x -> lit x
>             | YSymbol x -> x
>             | x -> raise_codegen_error "Compiler error: Expecting a type literal
> in the macro." 
>         and op (unroll : Stack<int>)s (ret : BindsReturnCuda) a =
>             let binds a b = binds unroll a b
>             let return' (x : string) =
>                 match ret with
>                 | BindsLocal ret -> return_local s ret x
>                 | BindsTailEnd -> line s $"return {x};"
>             let jp (a,b') =
>                 let args = args b'
>                 match a with
>                 | JPMethod(a,b) -> 
>                     let x = method (a,b)
>                     let method_name = Option.defaultValue "method_" x.name
>                     $"{method_name}{x.tag}({args})"
>                 | JPClosure(a,b) ->
>                     let x = closure (a,b)
>                     match x.funtype with
>                     | FT_Vanilla -> raise_codegen_error "Compiler error: The 
> vanilla function case should have been blocked elsewhere."
>                     | FT_Pointer -> $"FunPointerMethod{x.tag}"
>                     | FT_Closure -> $"csptr<ClosureBase{x.tag}>{{new 
> Closure{x.tag}{{{args}}}}}"
>             match a with
>             | TyMacro _ -> raise_codegen_error "Macros are supposed to be taken 
> care of in the `binds` function."
>             | TyIf(cond,tr,fl) ->
>                 line s (sprintf "if (%s){" (tup_data cond))
>                 binds (indent s) ret tr
>                 line s "} else {"
>                 binds (indent s) ret fl
>                 line s "}"
>             | TyJoinPoint(a,args) -> return' (jp (a, args))
>             | TyBackend(_,_,r) -> raise_codegen_error_backend r "The Cuda 
> backend does not support the nesting of other backends."
>             | TyWhile(a,b) ->
>                 let cond =
>                     match a with
>                     | JPMethod(a,b),b' -> sprintf "while_method_%i(%s)" 
> (method_while (a,b)).tag (args b')
>                     | _ -> raise_codegen_error "Expected a regular method rather
> than closure create in the while conditional."
>                 match unroll_peek unroll with
>                 | -1 -> ()
>                 | 0 -> line s $"#pragma unroll"
>                 | i -> line s $"#pragma unroll %i{i}"
>                 line s (sprintf "while (%s){" cond)
>                 binds (indent s) (BindsLocal [[||]]) b
>                 line s "}"
>             | TyDo a | TyIndent a ->
>                 binds s ret a
>             | TyIntSwitch(L(v_i,_),on_succ,on_fail) ->
>                 line s (sprintf "switch (v%i) {" v_i)
>                 let _ =
>                     let s = indent s
>                     Array.iteri (fun i x ->
>                         line s (sprintf "case %i: {" i)
>                         binds (indent s) ret x
>                         line (indent s) "break;"
>                         line s "}"
>                         ) on_succ
>                     line s "default: {"
>                     binds (indent s) ret on_fail
>                     line s "}"
>                 line s "}"
>             | TyUnionUnbox(is,x,on_succs,on_fail) ->
>                 let case_tags = x.Item.tags
>                 let acs = match x.Item.layout with UHeap -> ".base->" | UStack 
> -> "."
>                 let head = List.head is |> fun (L(i,_)) -> $"v{i}{acs}tag"
>                 List.pairwise is
>                 |> List.map (fun (L(i,_), L(i',_)) -> $"v{i}{acs}tag == 
> v{i'}{acs}tag")
>                 |> String.concat " && "
>                 |> function "" -> head | x -> $"{x} ? {head} : {max_tag}"
>                 |> sprintf "switch (%s) {" |> line s
>                 let _ =
>                     let s = indent s
>                     Map.iter (fun k (a,b) ->
>                         let union_i = case_tags.[[k]]
>                         line s (sprintf "case %i: { // %s" union_i k)
>                         List.iter2 (fun (L(data_i,_)) a ->
>                             let a, s = data_free_vars a, indent s
>                             let qs = ResizeArray(a.Length)
>                             Array.iteri (fun field_i (L(v_i,t) as v) -> 
>                                 qs.Add $"{tyv t} v{v_i} = 
> v{data_i}{acs}case{union_i}.v{field_i};"
>                                 ) a 
>                             lineCuda' s qs
>                             ) is a
>                         binds (indent s) ret b
>                         line (indent s) "break;"
>                         line s "}"
>                         ) on_succs
>                     line s "default: {"
>                     let _ =
>                         let s = indent s
>                         match on_fail with
>                         | Some b -> binds s ret b
>                         | None -> line s "assert(\"Invalid tag.\" && false); 
> __trap();"
>                     line s "}"
>                 line s "}"
>             | TyUnionBox(a,b,c') ->
>                 let c = c'.Item
>                 let i = c.tags.[[a]]
>                 let vars = args' b
>                 let tag = (unions c').tag
>                 match c.layout with
>                 | UHeap -> $"sptr<Union{tag}>{{new 
> Union{tag}{{Union{tag}_{i}{{{vars}}}}}}}"
>                 | UStack -> $"Union{tag}{{Union{tag}_{i}{{{vars}}}}}"
>                 |> return'
>             | TyToLayout(a,b) -> 
>                 match b with
>                 | YLayout(_,layout) -> 
>                     match layout with
>                     | Heap ->
>                         let tag = (heap b).tag
>                         $"sptr<Heap{tag}>{{new Heap{tag}{{{args' a}}}}}"
>                     | HeapMutable ->
>                         let tag = (mut b).tag
>                         $"sptr<Mut{tag}>{{new Mut{tag}{{{args' a}}}}}"
>                     | StackMutable -> raise_codegen_error "The Cuda backend 
> doesn't support stack mutable layout types."
>                 | _ -> raise_codegen_error "Compiler error: Expected a layout 
> type (2)."
>                 |> return'
>             | TyLayoutIndexAll(x) -> raise_codegen_error "Compiler error: 
> TyLayoutIndexAll should have been taken care of in TyLet."
>             | TyLayoutIndexByKey(x,key) -> raise_codegen_error "Compiler error: 
> TyLayoutIndexByKey should have been taken care of in TyLet."
>             | TyLayoutMutableSet(L(i,t),b,c) ->
>                 match t with
>                 | YLayout(_,lay) ->
>                     match lay with
>                     | HeapMutable -> 
>                         let a =
>                             List.fold
>                                 (fun s k ->
>                                     match s with
>                                     | DRecord l -> l |> Map.pick (fun (_, k') v'
> -> if k = k' then Some v' else None)
>                                     | _ -> raise_codegen_error "Compiler error: 
> Expected a record.")
>                                 (mut t).data b
>                         Array.map2 (fun (L(i',_)) b -> $"v{i}.base->v{i'} = 
> {show_w b};") (data_free_vars a) (data_term_vars c)
>                     | StackMutable -> 
>                         let a = List.fold (fun s k -> match s with DRecord l -> 
> l |> Map.pick (fun (_, k') v' -> if k = k' then Some v' else None) | _ -> 
> raise_codegen_error "Compiler error: Expected a record.") (stack_mut t).data b
>                         Array.map2 (fun (L(i',_)) b -> $"v{i}.v{i'} = {show_w 
> b};") (data_free_vars a) (data_term_vars c)
>                     | Heap -> raise_codegen_error "Compiler error (1): 
> TyLayoutMutableSet should only be HeapMutable or StackMutable."
>                 | _ -> raise_codegen_error "Compiler error (2): 
> TyLayoutMutableSet should only be HeapMutable or StackMutable."
>                 |> String.concat " " |> line s
>             | TyArrayLiteral(a,b') -> raise_codegen_error "Compiler error: 
> TyArrayLiteral should have been taken care of in TyLet."
>             | TyArrayCreate(a,b) ->  raise_codegen_error "Compiler error: 
> TyArrayCreate should have been taken care of in TyLet."
>             | TyFailwith(a,b) ->
>                 let string_in_op = function DLit (LitString b) -> lit_stringCuda
> b | b -> raise_codegen_error "In the Cuda backend, the exception string must be 
> a literal."
>                 let fmt = @"%s\n"
>                 line s $"printf(\"{fmt}\", {string_in_op b});"
>                 line s "__trap();" // TODO: Print out the error traces as well.
>             | TyConv(a,b) -> return' $"({tyv a}){tup_data b}"
>             | TyApply(L(i,_),b) -> 
>                 let rec loop = function
>                     | DPair(a,b) -> tup_data a :: loop b
>                     | a -> [[tup_data a]]
>                 let args = loop b |> List.filter ((<>) "") |> String.concat ", "
>                 $"v{i}({args})" |> return'
>             | TyArrayLength(_,b) -> raise_codegen_error "Array length is not 
> supported in the Cuda C++ backend as they are bare pointers."
>             | TyStringLength(_,b) -> raise_codegen_error "String length is not 
> supported in the Cuda C++ backend."
>             | TySizeOf t -> return' $"sizeof({tup_ty t})"
>             | TyOp(Global,[[DLit (LitString x)]]) -> global' x
>             | TyOp(PragmaUnrollPush,[[DLit (LitInt32 x)]]) -> unroll.Push(x); 
> line s $"// Pushing the loop unrolling to: {x}"
>             | TyOp(PragmaUnrollPop,[[]]) -> line s $"// Poping the loop 
> unrolling to: {unroll_pop unroll}"
>             | TyOp(op,l) ->
>                 match op, l with
>                 | Dyn,[[a]] -> tup_data a
>                 | TypeToVar, _ -> raise_codegen_error "The use of `` should 
> never appear in generated code."
>                 | StringIndex, [[a;b]] -> sprintf "%s[[%s]]" (tup_data a) 
> (tup_data b)
>                 | StringSlice, [[a;b;c]] -> raise_codegen_error "String slice is
> not supported natively in the C backend. Use a library implementation instead."
>                 | ArrayIndex, [[DV(L(_,YArray t)) & a;b]] -> 
>                     match tup_ty t with
>                     | "void" -> "/* void array index */"
>                     | _ -> sprintf "%s[[%s]]" (tup_data a) (tup_data b)
>                 | ArrayIndexSet, [[DV(L(_,YArray t)) as a;b;c]] -> 
>                     let a',b',c' = tup_data a, tup_data b, tup_data c
>                     match c' with
>                     | "" -> "/* void array set */"
>                     | _ -> $"{a'}[[{b'}]] = {c'}"
>                 // Math
>                 | Add, [[a;b]] -> sprintf "%s + %s" (tup_data a) (tup_data b)
>                 | Sub, [[a;b]] -> sprintf "%s - %s" (tup_data a) (tup_data b)
>                 | Mult, [[a;b]] -> sprintf "%s * %s" (tup_data a) (tup_data b)
>                 | Div, [[a;b]] -> sprintf "%s / %s" (tup_data a) (tup_data b)
>                 | Mod, [[a;b]] -> sprintf "%s %% %s" (tup_data a) (tup_data b)
>                 | Pow, [[a;b]] -> sprintf "pow(%s,%s)" (tup_data a) (tup_data b)
>                 | LT, [[a;b]] -> sprintf "%s < %s" (tup_data a) (tup_data b)
>                 | LTE, [[a;b]] -> sprintf "%s <= %s" (tup_data a) (tup_data b)
>                 | EQ, [[a;b]] | NEQ, [[a;b]] | GT, [[a;b]] | GTE, [[a;b]] when 
> is_stringCuda a -> raise_codegen_error "String comparison operations are not 
> supported in the Cuda C++ backend."
>                 | EQ, [[a;b]] -> sprintf "%s == %s" (tup_data a) (tup_data b)
>                 | NEQ, [[a;b]] -> sprintf "%s != %s" (tup_data a) (tup_data b)
>                 | GT, [[a;b]] -> sprintf "%s > %s" (tup_data a) (tup_data b)
>                 | GTE, [[a;b]] -> sprintf "%s >= %s" (tup_data a) (tup_data b)
>                 | BoolAnd, [[a;b]] -> sprintf "%s && %s" (tup_data a) (tup_data 
> b)
>                 | BoolOr, [[a;b]] -> sprintf "%s || %s" (tup_data a) (tup_data 
> b)
>                 | BitwiseAnd, [[a;b]] -> sprintf "%s & %s" (tup_data a) 
> (tup_data b)
>                 | BitwiseOr, [[a;b]] -> sprintf "%s | %s" (tup_data a) (tup_data
> b)
>                 | BitwiseXor, [[a;b]] -> sprintf "%s ^ %s" (tup_data a) 
> (tup_data b)
>                 | BitwiseComplement, [[a]] -> sprintf "~%s" (tup_data a)
> 
>                 | ShiftLeft, [[a;b]] -> sprintf "%s << %s" (tup_data a) 
> (tup_data b)
>                 | ShiftRight, [[a;b]] -> sprintf "%s >> %s" (tup_data a) 
> (tup_data b)
> 
>                 | Neg, [[x]] -> sprintf "-%s" (tup_data x)
>                 | Log, [[x]] -> sprintf "log(%s)" (tup_data x)
>                 | Exp, [[x]] -> sprintf "exp(%s)" (tup_data x)
>                 | Tanh, [[x]] -> sprintf "tanh(%s)" (tup_data x)
>                 | Sqrt, [[x]] -> sprintf "sqrt(%s)" (tup_data x)
>                 | Sin, [[x]] -> sprintf "sin(%s)" (tup_data x)
>                 | Cos, [[x]] -> sprintf "cos(%s)" (tup_data x)
>                 | NanIs, [[x]] -> sprintf "isnan(%s)" (tup_data x)
>                 | Printf, [[fmt;str]] -> 
>                     match args' str with
>                     | "" -> sprintf "printf(%s)" (tup_data fmt)
>                     | str -> sprintf "printf(%s,%s)" (tup_data fmt) str
>                 | UnionTag, [[DV(L(i,YUnion l)) as x]] -> 
>                     match l.Item.layout with
>                     | UHeap -> ".base->tag"
>                     | UStack -> ".tag"
>                     |> sprintf "v%i%s" i
>                 | _ -> raise_codegen_error <| sprintf "Compiler error: %A with 
> %i args not supported" op l.Length
>                 |> return'
>         and print_ordered_args s v = // Unlike C# for example, C keeps the 
> struct fields in input order. To reduce padding, it is best to order the fields 
> from largest to smallest.
>             order_args v |> Array.iter (fun (L(i,x)) -> line s $"{tyv x} v{i};")
>         and method_template is_while : _ -> MethodRecCuda =
>             jp (fun ((jp_body,key & (C(args,_))),i) ->
>                 match (fst env.join_point_method.[[jp_body]]).[[key]] with
>                 | Some a, Some range, name -> {tag=i; free_vars=rdata_free_vars 
> args; range=range; body=a; name=Option.map fix_method_name name}
>                 | _ -> raise_codegen_error "Compiler error: The method 
> dictionary is malformed"
>                 ) (fun s_fwd s_typ s_fun x ->
>                 let ret_ty = tup_ty x.range
>                 let fun_name = Option.defaultValue (if is_while then 
> "while_method_" else "method_") x.name
>                 let args = x.free_vars |> Array.mapi (fun i (L(_,x)) -> $"{tyv 
> x} v{i}") |> String.concat ", "
>                 let inline_ = 
>                     if is_while then "inline "
>                     else 
>                         line s_fwd $"__device__ {ret_ty} 
> {fun_name}{x.tag}({args});"
>                         if fun_name.StartsWith "noinline" then "__noinline__ " 
> else ""
>                 line s_fun $"__device__ {inline_}{ret_ty} 
> {fun_name}{x.tag}({args}){{"
>                 binds_start (indent s_fun) x.body
>                 line s_fun "}"
>                 )
>         and method : _ -> MethodRecCuda = method_template false
>         and method_while : _ -> MethodRecCuda = method_template true
>         and closure_args domain count_start =
>             let rec loop = function
>                 | YPair(a,b) -> a :: loop b
>                 | a -> [[a]]
>             let mutable count = count_start
>             let rename x = Array.map (fun (L(i,t)) -> let x = L(count,t) in 
> count <- count+1; x) x
>             let mutable i = 0
>             loop domain |> List.choose (fun x -> 
>                 let n = env.ty_to_data x |> data_free_vars 
>                 let x = if n.Length <> 0 then Some(i, tup_ty_tyvs n, n |> 
> rename) else None
>                 i <- i+1
>                 x
>                 )
>         and closure : _ -> ClosureRecCuda =
>             jp (fun ((jp_body,key & (C(args,_,fun_ty))),i) ->
>                 match fun_ty with
>                 | YFun(domain,range,t) ->
>                     match (fst env.join_point_closure.[[jp_body]]).[[key]] with
>                     | Some(domain_args, body) -> {tag=i; domain=domain; 
> range=range; body=body; free_vars=rdata_free_vars args; funtype=t}
>                     | _ -> raise_codegen_error "Compiler error: The method 
> dictionary is malformed"
>                 | _ -> raise_codegen_error "Compiler error: Unexpected type in 
> the closure join point."
>                 ) (fun _ s_typ s_fun x ->
>                 let i, range = x.tag, tup_ty x.range
>                 let closure_args = closure_args x.domain x.free_vars.Length
>                 let args = closure_args |> List.map (fun (i,ty,_) -> $"{ty} 
> tup{i}") |> String.concat ", "
>                 let print_body s_fun =
>                     let s_fun = indent s_fun
>                     x.free_vars |> Array.map (fun (L(i,t)) ->
>                         $"{tyv t} & v{i} = this->v{i};"
>                         ) |> String.concat " " |> line s_fun
>                     closure_args |> List.map (fun (i'',_,vars) ->
>                         Array.mapi (fun i' (L(i,t)) -> 
>                             if vars.Length <> 1 then $"{tyv t} v{i} = 
> tup{i''}.v{i'};"
>                             else $"{tyv t} v{i} = tup{i''};"
>                             ) vars
>                         |> String.concat " "
>                         ) |> String.concat " " |> line s_fun
>                     binds_start s_fun x.body
>                 match x.funtype with
>                 | FT_Pointer ->
>                     $"__device__ {range} FunPointerMethod{i}({args}){{" |> line 
> s_fun
>                     print_body s_fun
>                     line s_fun "}"
>                 | FT_Vanilla | FT_Closure ->
>                     match x.funtype with
>                     | FT_Pointer -> raise_codegen_error "Compiler error: The 
> pointer case have been taken care of (1)."
>                     | FT_Closure ->
>                         let i' = (cfun (x.domain,x.range,x.funtype)).tag
>                         line s_typ $"struct Closure{i} : public ClosureBase{i'} 
> {{"
>                     | FT_Vanilla ->
>                         line s_typ $"struct Closure{i} {{"
>                     let () =
>                         let s_typ = indent s_typ
>                         let () = // free vars in the environment
>                             print_ordered_args s_typ x.free_vars
>                         let () = // operator()
>                             match x.funtype with
>                             | FT_Pointer -> raise_codegen_error "Compiler error:
> The pointer case have been taken care of (2)."
>                             | FT_Vanilla -> line s_typ $"__device__ {range} 
> operator()({args}){{"
>                             | FT_Closure -> line s_typ $"__device__ {range} 
> operator()({args}) override {{"
>                             print_body s_typ
>                             line s_typ "}"
>                         let () = // constructor
>                             match x.free_vars with
>                             | [[||]] -> ()
>                             | _ ->
>                                 let constructor_args = 
>                                     x.free_vars 
>                                     |> Array.map (fun (L(i,t)) -> $"{tyv t} 
> _v{i}")
>                                     |> String.concat ", "
>                                 let initializer_args = 
>                                     x.free_vars 
>                                     |> Array.map (fun (L(i,t)) -> 
> $"v{i}(_v{i})")
>                                     |> String.concat ", "
>                                 line s_typ $"__device__ 
> Closure{i}({constructor_args}) : {initializer_args} {{ }}"
>                         let () = // destructor
>                             match x.funtype with
>                             | FT_Pointer | FT_Vanilla -> ()
>                             | FT_Closure -> line s_typ $"__device__ 
> ~Closure{i}() override = default;"
>                         ()
>                     line s_typ "};"
>                 )
>         and cfun : _ -> CFunRecCuda =
>             cfun' (fun s_fwd s_typ s_fun x ->
>                 let i, range = x.tag, tup_ty x.range
>                 let domain_args_ty = closure_args x.domain 0 |> List.map (fun 
> (_,ty,_) -> ty) |> String.concat ", "
>                 match x.funtype with
>                 | FT_Vanilla -> raise_codegen_error "Regular functions do not 
> have a composable type in the Cuda backend. Consider explicitly converting them 
> to either closures or pointers using `to_closure` or `to_fptr` if you want to 
> pass them through boundaries."
>                 | FT_Pointer -> line s_fwd $"typedef {range} (* 
> Fun{i})({domain_args_ty});"
>                 | FT_Closure ->
>                     line s_fwd $"struct ClosureBase{i} {{ int refc{{0}}; 
> __device__ virtual {range} operator()({domain_args_ty}) = 0; __device__ virtual 
> ~ClosureBase{i}() = default; }};"
>                     line s_fwd $"typedef csptr<ClosureBase{i}> Fun{i};"
>                 )
>         and tup : _ -> TupleRecCuda = 
>             tuple (fun s_fwd s_typ s_fun x ->
>                 let name = sprintf "Tuple%i" x.tag
>                 line s_fwd $"struct {name};"
>                 line s_typ $"struct {name} {{"
>                 x.tys |> Array.mapi (fun i x -> L(i,x)) |> print_ordered_args 
> (indent s_typ)
>                 let concat x = String.concat ", " x
>                 let args = x.tys |> Array.mapi (fun i x -> $"{tyv x} t{i}")
>                 let con_init = x.tys |> Array.mapi (fun i x -> $"v{i}(t{i})")
>                 if args.Length <> 0 then
>                     line (indent s_typ) $"__device__ {name}() = default;"
>                     line (indent s_typ) $"__device__ {name}({concat args}) : 
> {concat con_init} {{}}"
>                 line s_typ "};"
>                 )
>         and unions : _ -> UnionRecCuda = 
>             let inline map_iteri f x = Map.fold (fun i k v -> f i k v; i+1) 0 x 
> |> ignore
>             union (fun s_fwd s_typ s_fun x ->
>                 let i = x.tag
>                 line s_fwd $"struct Union{i};" // Forward declaration for the 
> union.
>                 map_iteri (fun tag k v -> // The individual union cases.
>                     line s_typ $"struct Union{i}_{tag} {{ // {k}"
>                     // The free vars in the env.
>                     print_ordered_args (indent s_typ) v
>                     let () = // constructors
>                         let s_typ = indent s_typ
>                         let concat x = String.concat ", " x
>                         let args = v |> Array.map (fun (L(i,x)) -> $"{tyv x} 
> t{i}")
>                         let con_init = v |> Array.map (fun (L(i,x)) -> 
> $"v{i}(t{i})")
>                         if v.Length <> 0 then 
>                             line s_typ $"__device__ Union{i}_{tag}({concat 
> args}) : {concat con_init} {{}}" 
>                             line s_typ $"__device__ Union{i}_{tag}() = delete;" 
>                     line s_typ "};"
>                     ) x.free_vars
>                     
>                 line s_typ $"struct Union{i} {{" // The union definition.
>                 let _ = // Union cases inside the union.
>                     let s_typ = indent s_typ
>                     line s_typ $"union {{"
>                     let _ =
>                         let s_typ = indent s_typ
>                         map_iteri (fun tag (_,k) v -> line s_typ 
> $"Union{i}_{tag} case{tag}; // {k}") x.free_vars
>                     line s_typ "};"
> 
>                     if x.is_heap then line s_typ "int refc{0};"
>                     if x.free_vars.Count > int max_tag then raise_codegen_error 
> $"Too many union cases. They should not be more than {max_tag}."
>                     line s_typ $"unsigned char tag{{{max_tag}}};"
>                     line s_typ $"__device__ Union{i}() {{}}" // default 
> constructor, the refc and tag have def value so we don't have to do anything 
> here.
>                     
>                     map_iteri (fun tag k v -> // The constructors for all the 
> union cases.
>                         line s_typ $"__device__ Union{i}(Union{i}_{tag} t) : 
> tag({tag}), case{tag}(t) {{}} // {k}"
>                         ) x.free_vars
>                     
>                     line s_typ $"__device__ Union{i}(Union{i} & x) : tag(x.tag) 
> {{" // copy constructor
>                     let () =
>                         let s_typ = indent s_typ
>                         line s_typ "switch(x.tag){"
>                         let () = // copy constructor cases
>                             let s_typ = indent s_typ
>                             map_iteri (fun tag k v -> 
>                                 line s_typ $"case {tag}: new (&this->case{tag}) 
> Union{i}_{tag}(x.case{tag}); break; // {k}"
>                                 ) x.free_vars
>                         line s_typ "}"
>                     line s_typ "}"
>                     line s_typ $"__device__ Union{i}(Union{i} && x) : tag(x.tag)
> {{" // move constructor
>                     let () =
>                         let s_typ = indent s_typ
>                         line s_typ "switch(x.tag){"
>                         let () = // move constructor cases
>                             let s_typ = indent s_typ
>                             map_iteri (fun tag k v -> 
>                                 line s_typ $"case {tag}: new (&this->case{tag}) 
> Union{i}_{tag}(std::move(x.case{tag})); break; // {k}"
>                                 ) x.free_vars
>                         line s_typ "}"
>                     line s_typ "}"
>                     line s_typ $"__device__ Union{i} & operator=(Union{i} & x) 
> {{" // copy assignment operator
>                     let () =
>                         let s_typ = indent s_typ
>                         line s_typ "if (this->tag == x.tag) {" 
>                         let () =
>                             let s_typ = indent s_typ
>                             line s_typ "switch(x.tag){"
>                             let () = // copy assignment cases
>                                 let s_typ = indent s_typ
>                                 map_iteri (fun tag k v -> 
>                                     line s_typ $"case {tag}: this->case{tag} = 
> x.case{tag}; break; // {k}"
>                                     ) x.free_vars
>                             line s_typ "}"
>                         line s_typ "} else {"
>                         let () =
>                             let s_typ = indent s_typ
>                             line s_typ $"this->~Union{i}();"
>                             line s_typ $"new (this) Union{i}{{x}};"
>                         line s_typ "}"
>                         line s_typ "return *this;"
>                     line s_typ "}"
>                     line s_typ $"__device__ Union{i} & operator=(Union{i} && x) 
> {{" // move assignment operator
>                     let () =
>                         let s_typ = indent s_typ
>                         line s_typ "if (this->tag == x.tag) {" 
>                         let () =
>                             let s_typ = indent s_typ
>                             line s_typ "switch(x.tag){"
>                             let () = // move assignment cases
>                                 let s_typ = indent s_typ
>                                 map_iteri (fun tag k v -> 
>                                     line s_typ $"case {tag}: this->case{tag} = 
> std::move(x.case{tag}); break; // {k}"
>                                     ) x.free_vars
>                             line s_typ "}"
>                         line s_typ "} else {"
>                         let () =
>                             let s_typ = indent s_typ
>                             line s_typ $"this->~Union{i}();"
>                             line s_typ $"new (this) Union{i}{{std::move(x)}};"
>                         line s_typ "}"
>                         line s_typ "return *this;"
>                     line s_typ "}"
>                     line s_typ $"__device__ ~Union{i}() {{"
>                     let () = // destructor
>                         let s_typ = indent s_typ
>                         line s_typ "switch(this->tag){"
>                         let () = // destructor cases
>                             let s_typ = indent s_typ
>                             map_iteri (fun tag k v -> 
>                                 line s_typ $"case {tag}: 
> this->case{tag}.~Union{i}_{tag}(); break; // {k}"
>                                 ) x.free_vars
>                         line s_typ "}"
>                         line s_typ $"this->tag = {max_tag};"
>                     line s_typ "}"
>                 line s_typ "};"
>                 )
>         and layout_tmpl is_heap name : _ -> LayoutRecCuda =
>             layout (fun s_fwd s_typ s_fun (x : LayoutRecCuda) ->
>                 let name = sprintf "%s%i" name x.tag
>                 line s_fwd $"struct {name};"
>                 line s_typ $"struct {name} {{"
>                 let () =
>                     let s_typ = indent s_typ
>                     if is_heap then line s_typ "int refc{0};"
>                     x.free_vars |> print_ordered_args s_typ
>                     let concat x = String.concat ", " x
>                     let args = x.free_vars |> Array.map (fun (L(i,x)) -> $"{tyv 
> x} t{i}")
>                     let con_init = x.free_vars |> Array.map (fun (L(i,x)) -> 
> $"v{i}(t{i})")
>                     if args.Length <> 0 then
>                         line s_typ $"__device__ {name}() = default;"
>                         line s_typ $"__device__ {name}({concat args}) : {concat 
> con_init} {{}}" 
>                 line s_typ "};"
>                 )
>         and heap : _ -> LayoutRecCuda = layout_tmpl true "Heap"
>         and mut : _ -> LayoutRecCuda = layout_tmpl true "Mut"
>         and stack_mut : _ -> LayoutRecCuda = layout_tmpl false "StackMut"
> 
>         fun vs (x : TypedBind [[]]) ->
>             let ret_ty =
>                 let er() = raise_codegen_error "The return type of the 
> __global__ kernel in the Cuda backend should be a void type or a record of type 
> {cluster_dims : {x : int; y : int; z : int}}."
>                 match binds_last_dataCuda x with
>                 | DRecord m when m.Count = 1 ->
>                     match Map.tryPick (fun (_, k) v -> if k = "cluster_dims" 
> then Some v else None) m with
>                     | Some(DRecord m) when m.Count = 3 ->
>                         match
>                             Map.tryPick (fun (_, k) v -> if k = "x" then Some v 
> else None) m,
>                             Map.tryPick (fun (_, k) v -> if k = "y" then Some v 
> else None) m,
>                             Map.tryPick (fun (_, k) v -> if k = "z" then Some v 
> else None) m
>                         with
>                         | Some(DSymbol x), Some(DSymbol y), Some(DSymbol z) ->  
> $"void __cluster_dims__({x},{y},{z})"
>                         | Some(DV _), _, _
>                         | _, Some(DV _), _
>                         | _, _, Some(DV _) ->  raise_codegen_error "All the 
> variables have to be known at compile time."
>                         | _ -> er()
>                     | _ -> er()
>                 | DB -> "void"
>                 | _ -> er()
>             let main_defs' = {text=System.Text.StringBuilder(); indent=0}
>             let args = vs |> Array.mapi (fun i (L(_,x)) -> $"{tyv x} v{i}") |> 
> String.concat ", "
>             line main_defs' $"extern \"C\" __global__ {ret_ty} 
> entry%i{main_defs.Count}(%s{args}) {{"
>             binds_start (indent main_defs') x
>             line main_defs' "}"
>             main_defs.Add(main_defs'.text.ToString())
> 
>             global' $"using default_int = {prim default_env.default_int};"
>             global' $"using default_uint = {prim default_env.default_uint};"
>             global' (System.IO.File.ReadAllText(System.IO.Path.Join(
>                 // AppDomain.CurrentDomain.BaseDirectory,
>                 System.IO.Path.Combine (SpiralFileSystem.get_workspace_root (), 
> "deps/The-Spiral-Language/The Spiral Language 2"),
>                 "reference_counting.cuh"
>             )))
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> ── [ 4.19s - diagnostics ] ─────────────────────────────────────────────────────
> │ input.fsx (606,39)-(606,45) typecheck warning This and other
> recursive references to the object(s) being defined will be checked for 
> initialization-soundness at runtime through the use of a delayed reference. This
> is because you are defining one or more recursive objects, rather than recursive
> functions. This warning may be suppressed by using '#nowarn "40"' or 
> '--nowarn:40'.
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## CodegenPython
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> module CodegenPython =
>     // open System
>     // open System.Text
>     open System.Collections.Generic
> 
>     let backend_namePython = "Python"
> 
>     let litPython = function
>         | LitInt8 x -> sprintf "%i" x
>         | LitInt16 x -> sprintf "%i" x
>         | LitInt32 x -> sprintf "%i" x
>         | LitInt64 x -> sprintf "%i" x
>         | LitUInt8 x -> sprintf "%i" x
>         | LitUInt16 x -> sprintf "%i" x
>         | LitUInt32 x -> sprintf "%i" x
>         | LitUInt64 x -> sprintf "%i" x
>         | LitFloat32 x -> 
>             if x = infinityf then "float('inf')"
>             elif x = -infinityf then "float('-inf')"
>             elif System.Single.IsNaN x then "float()"
>             else x.ToString("R") |> add_dec_point
>         | LitFloat64 x ->
>             if x = infinity then "float('inf')"
>             elif x = -infinity then "float('-inf')"
>             elif System.Double.IsNaN x then "float()"
>             else x.ToString("R") |> add_dec_point
>         | LitString x -> 
>             let strb = System.Text.StringBuilder(x.Length+2)
>             strb.Append '"' |> ignore
>             String.iter (function
>                 | '"' -> strb.Append "\\\"" 
>                 | '\b' -> strb.Append @"\b"
>                 | '\t' -> strb.Append @"\t"
>                 | '\n' -> strb.Append @"\n"
>                 | '\r' -> strb.Append @"\r"
>                 | '\\' -> strb.Append @"\\"
>                 | x -> strb.Append x
>                 >> ignore 
>                 ) x
>             strb.Append '"' |> ignore
>             strb.ToString()
>         | LitChar x -> 
>             match x with
>             | '\b' -> @"\b"
>             | '\n' -> @"\n"
>             | '\t' -> @"\t"
>             | '\r' -> @"\r"
>             | '\\' -> @"\\"
>             | ''' -> @"\'"
>             | x -> string x
>             |> sprintf "'%s'"
>         | LitBool x -> if x then "True" else "False"
> 
>     let type_litPython = function
>         | YLit x -> litPython x
>         | YSymbol x -> x
>         | x -> raise_codegen_error "Compiler error: Expecting a type literal in 
> the macro." 
> 
>     let show_w = function WV(L(i,_)) -> sprintf "v%i" i | WLit a -> litPython a
>     let args x = x |> Array.map (fun (L(i,_)) -> sprintf "v%i" i) |> 
> String.concat ", "
>     let primPython x = show_primt x
>     let cupy_ty x =
>         match x with
>         | [[|L(_,x)|]] ->
>             match x with
>             | YPrim x ->
>                 match x with
>                 | Int8T -> "cp.int8"
>                 | Int16T -> "cp.int16"
>                 | Int32T -> "cp.int32"
>                 | Int64T -> "cp.int64"
>                 | UInt8T -> "cp.uint8"
>                 | UInt16T -> "cp.uint16"
>                 | UInt32T -> "cp.uint32"
>                 | UInt64T -> "cp.uint64"
>                 | Float32T -> "cp.float32"
>                 | Float64T -> "cp.float64"
>                 | BoolT -> "cp.bool_"
>                 | _ -> "object"
>             | _ -> "object"
>         | _ -> "object"
> 
>     type UnionRecPython = {tag : int; free_vars : Map<int * string, TyV[[]]>}
>     type LayoutRecPython = {tag : int; data : Data; free_vars : TyV[[]]; 
> free_vars_by_key : Map<int * string, TyV[[]]>}
>     type MethodRecPython = {tag : int; free_vars : L<Tag,Ty>[[]]; range : Ty; 
> body : TypedBind[[]]}
>     type ClosureRecPython = {tag : int; free_vars : L<Tag,Ty>[[]]; domain : Ty; 
> domain_args : TyV[[]]; range : Ty; body : TypedBind[[]]}
> 
>     type BindsReturnPython =
>         | BindsTailEnd
>         | BindsLocal of TyV [[]]
> 
>     let linePython x s = if s <> "" then x.text.Append(' ', x.indent).AppendLine
> s |> ignore
> 
>     let codegen' backend_handler (env : PartEvalResult) (x : TypedBind [[]]) =
>         let fwd_dcls = ResizeArray()
>         let types = ResizeArray()
>         let functions = ResizeArray()
> 
>         let global' =
>             let has_added = HashSet env.globals
>             fun x -> if has_added.Add(x) then env.globals.Add x
> 
>         let import x = global' $"import {x}"
>         let from x = global' $"from {x}"
> 
>         let print is_type show r =
>             let s = {text=System.Text.StringBuilder(); indent=0}
>             show s r
>             let text = s.text.ToString()
>             if is_type then types.Add(text) else functions.Add(text)
> 
>         let union show =
>             let dict = Dictionary(HashIdentity.Reference)
>             let f (a : Union) : UnionRecPython =
>                 let free_vars = a.Item.cases |> Map.map (fun _ -> env.ty_to_data
> >> data_free_vars)
>                 {free_vars=free_vars; tag=dict.Count}
>             fun x ->
>                 let mutable dirty = false
>                 let r = memoize dict (fun x -> dirty <- true; f x) x
>                 if dirty then print true show r
>                 r
> 
>         let layout show =
>             let dict' = Dictionary(HashIdentity.Structural)
>             let dict = Dictionary(HashIdentity.Reference)
>             let f x : LayoutRecPython = 
>                 match x with
>                 | YLayout(x,_) ->
>                 let x = env.ty_to_data x
>                 let a, b =
>                     match x with
>                     | DRecord a -> let a = Map.map (fun _ -> data_free_vars) a 
> in a |> Map.toArray |> Array.collect snd, a
>                     | _ -> data_free_vars x, Map.empty
>                 {data=x; free_vars=a; free_vars_by_key=b; tag=dict'.Count}
>                 | _ -> raise_codegen_error $"Compiler error: Expected a layout 
> type (5).\nGot: %s{show_ty x}"
>             fun x ->
>                 let mutable dirty = false
>                 let r = memoize dict (memoize dict' (fun x -> dirty <- true; f 
> x)) x
>                 if dirty then print true show r
>                 r
> 
>         let jp is_type f show =
>             let dict = Dictionary(HashIdentity.Structural)
>             let f x = f (x, dict.Count)
>             fun x ->
>                 let mutable dirty = false
>                 let r = memoize dict (fun x -> dirty <- true; f x) x
>                 if dirty then print is_type show r
>                 r
> 
>         let cupy_ty x = env.ty_to_data x |> data_free_vars |> cupy_ty
>         let rec binds_start (args : TyV [[]]) (s : CodegenEnv) (x : TypedBind 
> [[]]) = binds (refc_prepass Set.empty (Set args) x).g_decr s BindsTailEnd x
>         and binds g_decr (s : CodegenEnv) (ret : BindsReturnPython) (stmts : 
> TypedBind [[]]) = 
>             let s_len = s.text.Length
>             let tup_destruct (a,b) =
>                 if 0 < Array.length a then
>                     let a = args a
>                     let b = Array.map show_w (data_term_vars b) |> String.concat
> ", "
>                     sprintf "%s = %s" a b |> line s
>             Array.iter (fun x ->
>                 let _ =
>                     let f (g : Dictionary<_,_>) = match g.TryGetValue(x) with 
> true, x -> Seq.toArray x | _ -> [[||]]
>                     match args (f g_decr) with "" -> () | x -> sprintf "del %s" 
> x |> line s
>                 match x with
>                 | TyLet(d,trace,a) ->
>                     try op g_decr s (BindsLocal (data_free_vars d)) a
>                     with :? CodegenError as e -> raise_codegen_error' trace 
> (e.Data0,e.Data1)
>                 | TyLocalReturnOp(trace,a,_) ->
>                     try op g_decr s ret a
>                     with :? CodegenError as e -> raise_codegen_error' trace 
> (e.Data0,e.Data1)
>                 | TyLocalReturnData(d,trace) ->
>                     try match ret with
>                         | BindsLocal l -> tup_destruct (l, d) 
>                         | BindsTailEnd -> line s $"return {tup_data' d}"
>                     with :? CodegenError as e -> raise_codegen_error' trace 
> (e.Data0,e.Data1)
>                 ) stmts
>             if s.text.Length = s_len then line s "pass"
>         and tup_data' x = 
>             match Array.map show_w (data_term_vars x) with
>             | [[||]] -> ""
>             | [[|x|]] -> x
>             | args -> String.concat ", " args
>         and tup_data x = 
>             match Array.map show_w (data_term_vars x) with
>             | [[||]] -> "None"
>             | [[|x|]] -> x
>             | args -> sprintf "(%s)" (String.concat ", " args)
>         and tyv x =
>             match x with
>             | YUnion a ->
>                 match a.Item.layout with
>                 | UHeap -> sprintf "UH%i" (uheap a).tag
>                 | UStack -> sprintf "US%i" (ustack a).tag
>             | YLayout(_,lay) as a -> 
>                 match lay with
>                 | Heap -> sprintf "Heap%i" (heap a).tag
>                 | HeapMutable -> sprintf "Mut%i" (mut a).tag
>                 | StackMutable -> raise_codegen_error "Compiler error: The 
> Python backend doesn't support stack mutable layout types."
>             | YMacro [[Text "backend_switch "; Type (YRecord r)]] ->
>                 match r |> Map.tryPick (fun (_, k) v -> if k = 
> backend_namePython then Some v else None) with
>                 | Some x -> tup_ty x
>                 | None -> raise_codegen_error $"In the backend_switch, expected 
> a record with the '{backend_namePython}' field."
>             | YMacro a ->
>                 a
>                 |> List.map (function
>                     | Text a -> a
>                     | Type a -> tup_ty a
>                     | TypeLit a -> type_litPython a
>                 )
>                 |> String.concat ""
>             | YPrim a -> primPython a
>             | YArray a -> "(cp if cuda else np).ndarray"
>             | YFun(a,b,FT_Vanilla) -> 
>                 let a = env.ty_to_data a |> data_free_vars |> Array.map (fun 
> (L(_,t)) -> tyv t) |> String.concat ", "
>                 $"Callable[[[[{a}]], {tup_ty b}]]"
>             | YExists -> raise_codegen_error "Existentials are not supported at 
> runtime. They are a compile time feature only."
>             | YForall -> raise_codegen_error "Foralls are not supported at 
> runtime. They are a compile time feature only."
>             | a -> raise_codegen_error $"Complier error: Type not supported in 
> the codegen.\nGot: %A{a}"
>         and tup_ty x =
>             match env.ty_to_data x |> data_free_vars |> Array.map (fun (L(_,t)) 
> -> tyv t) with
>             | [[||]] -> "None"
>             | [[|x|]] -> x
>             | x -> String.concat ", " x |> sprintf "Tuple[[%s]]"
>         and op g_decr s (ret : BindsReturnPython) a =
>             let return' (x : string) =
>                 match ret with
>                 | BindsTailEnd -> line s $"return {x}"
>                 | BindsLocal ret -> line s (if ret.Length = 0 then x else 
> sprintf "%s = %s" (args ret) x)
>             let jp (a,b) =
>                 let args = args b
>                 match a with
>                 | JPMethod(a,b) -> sprintf "method%i(%s)" (method (a,b)).tag 
> args
>                 | JPClosure(a,b) -> sprintf "Closure%i(%s)" (closure (a,b)).tag 
> args
>             let layout_index i x' =
>                 x' |> Array.map (fun (L(i',_)) -> $"v{i}.v{i'}")
>                 |> String.concat ", "
>                 |> return'
> 
>             match a with
>             | TySizeOf t -> raise_codegen_error $"The following type in `sizeof`
> is not supported in the Python back end.\nGot: {show_ty t}"
>             | TyMacro a ->
>                 // System.Console.WriteLine $"CodegenPython.TyMacro / a: %A{a}"
>                 a
>                 |> List.map (function
>                     | CMText x when x |> SpiralSm.starts_with "$\"" ->
>                         let x = x |> SpiralSm.replace "%A{" "{"
>                         $"f\"{x.[[2..]]}"
>                     | CMText x -> x
>                     | CMTerm x -> tup_data x
>                     | CMType x -> tup_ty x
>                     | CMTypeLit a -> type_litPython a
>                 )
>                 |> String.concat ""
>                 |> return'
>             | TyIf(cond,tr,fl) ->
>                 line s (sprintf "if %s:" (tup_data cond))
>                 binds g_decr (indent s) ret tr
>                 line s "else:"
>                 binds g_decr (indent s) ret fl
>             | TyJoinPoint(a,args) -> return' (jp (a, args))
>             | TyBackend(a,b,c) -> return' (backend_handler (a,b,c))
>             | TyWhile(a,b) ->
>                 line s (sprintf "while %s:" (jp a))
>                 binds g_decr (indent s) (BindsLocal [[||]]) b
>             | TyDo a ->
>                 binds g_decr s ret a
>             | TyIndent a ->
>                 binds g_decr (indent s) ret a
>             | TyIntSwitch(L(v_i,_),on_succ,on_fail) ->
>                 Array.iteri (fun i x ->
>                     if i = 0 then line s $"if v{v_i} == {i}:"
>                     else line s $"elif v{v_i} == {i}:"
>                     binds g_decr (indent s) ret x
>                     ) on_succ
>                 line s "else:"
>                 binds g_decr (indent s) ret on_fail
>             | TyUnionUnbox(is,x,on_succs,on_fail) ->
>                 let case_tags = x.Item.tags
>                 line s (sprintf "match %s:" (is |> List.map (fun (L(i,_)) -> 
> $"v{i}") |> String.concat ", "))
>                 let s = indent s
>                 let prefix = 
>                     match x.Item.layout with
>                     | UHeap -> sprintf "UH%i" (uheap x).tag
>                     | UStack -> sprintf "US%i" (ustack x).tag
>                 Map.iter (fun k (a,b) ->
>                     let i = case_tags.[[k]]
>                     let cases = 
>                         a |> List.map (fun a ->
>                             let x = data_free_vars a
>                             let g_decr' = get_default g_decr (Array.head b) (fun
> () -> Set.empty)
>                             let x,g_decr' = Array.mapFold (fun g_decr (L(i,_) as
> v) -> if Set.contains v g_decr then "_", Set.remove v g_decr else sprintf "v%i" 
> i, g_decr) g_decr' x
>                             g_decr.[[Array.head b]] <- g_decr'
>                             sprintf "%s_%i(%s)" prefix i (String.concat ", " x)
>                             )
>                         |> String.concat ", "
>                     line s (sprintf "case %s: # %s" cases k)
>                     binds g_decr (indent s) ret b
>                     ) on_succs
>                 line s "case t:"
>                 match on_fail with
>                 | Some b -> binds g_decr (indent s) ret b
>                 | None -> line (indent s) "raise Exception(f'Pattern matching 
> miss. Got: {t}')"
>             | TyUnionBox(a,b,c') ->
>                 let c = c'.Item
>                 let i = c.tags.[[a]]
>                 let vars = tup_data' b
>                 match c.layout with
>                 | UHeap -> sprintf "UH%i_%i(%s)" (uheap c').tag i vars
>                 | UStack -> sprintf "US%i_%i(%s)" (ustack c').tag i vars
>                 |> return'
>             | TyToLayout(a,b) -> 
>                 match b with
>                 | YLayout(_,layout) -> 
>                     match layout with
>                     | Heap -> sprintf "Heap%i(%s)" (heap b).tag (tup_data' a)
>                     | HeapMutable -> sprintf "Mut%i(%s)" (mut b).tag (tup_data' 
> a)
>                     | StackMutable -> raise_codegen_error "The Python backend 
> doesn't support stack mutable layout types."
>                 | _ -> raise_codegen_error "Compiler error: Expected a layout 
> type (6)."
>                 |> return'
>             | TyLayoutIndexAll(L(i,YLayout(_,lay) & a)) -> 
>                 match lay with
>                 | Heap -> heap a 
>                 | HeapMutable -> mut a
>                 | StackMutable -> raise_codegen_error "The Python backend 
> doesn't support indexing into stack mutable layout types."
>                 |> fun x -> x.free_vars |> layout_index i
>             | TyLayoutIndexByKey(L(i,YLayout(_,lay) & a),key) ->
>                 match lay with
>                 | Heap -> heap a 
>                 | HeapMutable -> mut a
>                 | StackMutable -> raise_codegen_error "The Python backend 
> doesn't support indexing into stack mutable layout types."
>                 |> fun x ->
>                     x.free_vars_by_key
>                     |> Map.tryPick (fun (_, k) v -> if k = key then Some v else 
> None)
>                     |> Option.iter (layout_index i)
>             | TyLayoutIndexAll _ | TyLayoutIndexByKey _ -> raise_codegen_error 
> "Compiler error: Expected the TyV in layout index to be a layout type."
>             | TyLayoutMutableSet(L(i,t),b,c) ->
>                 let a = List.fold (fun s k ->
>                     match s with
>                     | DRecord l -> l |> Map.pick (fun (_,k') v -> if k = k' then
> Some v else None)
>                     | _ -> raise_codegen_error "Compiler error: Expected a 
> record.") (mut t).data b
>                 Array.iter2 (fun (L(i',_)) b -> line s $"v{i}.v{i'} = {show_w 
> b}") (data_free_vars a) (data_term_vars c)
>             | TyArrayLiteral(a,b) -> return' <| sprintf "(cp if cuda else 
> np).array([[%s]],dtype=%s)" (List.map tup_data' b |> String.concat ", ") 
> (cupy_ty a)
>             | TyArrayCreate(a,b) -> return' $"(cp if cuda else 
> np).empty({tup_data b},dtype={cupy_ty a})" 
>             | TyFailwith(a,b) -> line s $"raise Exception({tup_data' b})"
>             | TyConv(a,b) -> return' $"{tyv a}({tup_data b})"
>             | TyApply(L(i,_),b) -> return' $"v{i}({tup_data' b})"
>             | TyArrayLength(a,b) -> return' $"{tup_data b}.__len__()"
>             | TyStringLength(a,b) -> return' $"len({tup_data b})"
>             | TyOp(Global,[[DLit (LitString x)]]) -> global' x
>             | TyOp(op,l) ->
>                 match op, l with
>                 | ToPythonRecord,[[DRecord x]] -> Map.foldBack (fun k v l -> 
> $"'{k}': {tup_data v}" :: l) x [[]] |> String.concat ", " |> sprintf "{%s}"
>                 | ToPythonNamedTuple,[[n;DRecord x]] -> 
>                     import "collections"
>                     let field_names = Map.foldBack (fun k v l -> $"'{k}'" :: l) 
> x [[]] |> String.concat ", "
>                     let args = Map.foldBack (fun k v l -> tup_data v :: l) x 
> [[]] |> String.concat ", "
>                     $"collections.namedtuple({tup_data 
> n},[[{field_names}]])({args})"
>                 | Dyn,[[a]] -> tup_data a
>                 | TypeToVar, _ -> raise_codegen_error "The use of `` should 
> never appear in generated code."
>                 | StringIndex, [[a;b]] -> sprintf "%s[[%s]]" (tup_data a) 
> (tup_data b)
>                 | StringSlice, [[a;b;c]] -> sprintf "%s[[%s:%s]]" (tup_data a) 
> (tup_data b) (tup_data c)
>                 | ArrayIndex, [[a;b]] -> sprintf "%s[[%s]].item()" (tup_data a) 
> (tup_data b)
>                 | ArrayIndexSet, [[a;b;c]] -> 
>                     match tup_data' c with
>                     | "" -> "pass # void array set"
>                     | c -> sprintf "%s[[%s]] = %s" (tup_data a) (tup_data b) c
>                 // Math
>                 | Add, [[a;b]] -> sprintf "%s + %s" (tup_data a) (tup_data b)
>                 | Sub, [[a;b]] -> sprintf "%s - %s" (tup_data a) (tup_data b)
>                 | Mult, [[a;b]] -> sprintf "%s * %s" (tup_data a) (tup_data b)
>                 | Div, [[(DV(L(_,YPrim (Float32T | Float64T))) | DLit(LitFloat32
> _ | LitFloat64 _)) & a;b]] -> sprintf "%s / %s" (tup_data a) (tup_data b)
>                 | Div, [[a;b]] -> sprintf "%s // %s" (tup_data a) (tup_data b)
>                 | Mod, [[a;b]] -> sprintf "%s %% %s" (tup_data a) (tup_data b)
>                 | Pow, [[a;b]] -> sprintf "pow(%s,%s)" (tup_data a) (tup_data b)
>                 | LT, [[a;b]] -> sprintf "%s < %s" (tup_data a) (tup_data b)
>                 | LTE, [[a;b]] -> sprintf "%s <= %s" (tup_data a) (tup_data b)
>                 | EQ, [[a;b]] -> sprintf "%s == %s" (tup_data a) (tup_data b)
>                 | NEQ, [[a;b]] -> sprintf "%s != %s" (tup_data a) (tup_data b)
>                 | GT, [[a;b]] -> sprintf "%s > %s" (tup_data a) (tup_data b)
>                 | GTE, [[a;b]] -> sprintf "%s >= %s" (tup_data a) (tup_data b)
>                 | BoolAnd, [[a;b]] -> sprintf "%s and %s" (tup_data a) (tup_data
> b)
>                 | BoolOr, [[a;b]] -> sprintf "%s or %s" (tup_data a) (tup_data 
> b)
>                 | BitwiseAnd, [[a;b]] -> sprintf "%s & %s" (tup_data a) 
> (tup_data b)
>                 | BitwiseOr, [[a;b]] -> sprintf "%s | %s" (tup_data a) (tup_data
> b)
>                 | BitwiseXor, [[a;b]] -> sprintf "%s ^ %s" (tup_data a) 
> (tup_data b)
>                 | BitwiseComplement, [[a]] -> sprintf "~%s" (tup_data a)
> 
>                 | ShiftLeft, [[a;b]] -> sprintf "%s << %s" (tup_data a) 
> (tup_data b)
>                 | ShiftRight, [[a;b]] -> sprintf "%s >> %s" (tup_data a) 
> (tup_data b)
> 
>                 | Neg, [[x]] -> sprintf "-%s" (tup_data x)
>                 | Log, [[x]] -> import "math"; sprintf "math.log(%s)" (tup_data 
> x)
>                 | Exp, [[x]] -> import "math"; sprintf "math.exp(%s)" (tup_data 
> x)
>                 | Tanh, [[x]] -> import "math"; sprintf "math.tanh(%s)" 
> (tup_data x)
>                 | Sqrt, [[x]] -> import "math"; sprintf "math.sqrt(%s)" 
> (tup_data x)
>                 | Sin, [[x]] -> import "math"; sprintf "math.sin(%s)" (tup_data 
> x)
>                 | Cos, [[x]] -> import "math"; sprintf "math.cos(%s)" (tup_data 
> x)
>                 | NanIs, [[x]] -> import "math"; sprintf "math.isnan(%s)" 
> (tup_data x)
>                 | UnionTag, [[DUnion(_,l) | DV(L(_,YUnion l)) as x]] -> sprintf 
> "%s.tag" (tup_data x) 
>                 | _ -> raise_codegen_error <| sprintf "Compiler error: %A with 
> %i args not supported" op l.Length
>                 |> return'
>         and uheap : _ -> UnionRecPython = union (fun s x ->
>             let cases = Array.init x.free_vars.Count (fun i -> 
> $"\"UH{x.tag}_{i}\"") |> function [[|x|]] -> x | x -> x |> String.concat ", " |>
> sprintf "Union[[%s]]"
>             fwd_dcls.Add $"UH{x.tag} = {cases}"
>             let mutable i = 0
>             x.free_vars |> Map.iter (fun k a ->
>                 line s $"class UH{x.tag}_{i}(NamedTuple): # {k}"
>                 let s = indent s
>                 a |> Array.iter (fun (L(i,t)) -> line s $"v{i} : {tyv t}")
>                 line s $"tag = {i}"
>                 i <- i+1
>                 )
>             )
>         and ustack : _ -> UnionRecPython = union (fun s x ->
>             let mutable i = 0
>             x.free_vars |> Map.iter (fun k a ->
>                 line s $"class US{x.tag}_{i}(NamedTuple): # {k}"
>                 let s = indent s
>                 a |> Array.iter (fun (L(i,t)) -> line s $"v{i} : {tyv t}")
>                 line s $"tag = {i}"
>                 i <- i+1
>                 )
>             let cases = Array.init x.free_vars.Count (fun i -> $"US{x.tag}_{i}")
> |> function [[|x|]] -> x | x -> x |> String.concat ", " |> sprintf "Union[[%s]]"
>             line s $"US{x.tag} = {cases}"
>             )
>         and heap : _ -> LayoutRecPython = layout (fun s x -> 
>             line s $"class Heap{x.tag}(NamedTuple):"
>             let s = indent s
>             if x.free_vars.Length = 0 then line s "pass" 
>             else x.free_vars |> Array.iter (fun (L(i,t)) -> line s $"v{i} : {tyv
> t}")
>             )
>         and mut : _ -> LayoutRecPython = layout (fun s x -> 
>             line s "@dataclass"
>             line s $"class Mut{x.tag}:"
>             let s = indent s
>             if x.free_vars.Length = 0 then line s "pass" 
>             else x.free_vars |> Array.iter (fun (L(i,t)) -> line s $"v{i} : {tyv
> t}")
>             )
>         and method : _ -> MethodRecPython =
>             jp false (fun ((jp_body,key & (C(args,_))),i) ->
>                 match (fst env.join_point_method.[[jp_body]]).[[key]] with
>                 | Some a, Some range, _ -> {tag=i; free_vars=rdata_free_vars 
> args; range=range; body=a}
>                 | _ -> raise_codegen_error "Compiler error: The method 
> dictionary is malformed"
>                 ) (fun s x ->
>                 let method_args = x.free_vars |> Array.map (fun (L(i,t)) -> 
> $"v{i} : {tyv t}") |> String.concat ", "
>                 line s $"def method{x.tag}({method_args}) -> {tup_ty x.range}:"
>                 binds_start x.free_vars (indent s) x.body
>                 )
>         and closure : _ -> ClosureRecPython =
>             jp true (fun ((jp_body,key & (C(args,_,fun_ty))),i) ->
>                 match fun_ty with
>                 | YFun(domain,range,FT_Vanilla) ->
>                     match (fst env.join_point_closure.[[jp_body]]).[[key]] with
>                     | Some(domain_args, body) -> {tag=i; 
> free_vars=rdata_free_vars args; domain=domain; domain_args=data_free_vars 
> domain_args; range=range; body=body}
>                     | _ -> raise_codegen_error "Compiler error: The method 
> dictionary is malformed"
>                 | YFun _ -> raise_codegen_error "Non-standard functions are not 
> supported in the Python backend."
>                 | _ -> raise_codegen_error "Compiler error: Unexpected type in 
> the closure join point."
>                 ) (fun s x ->
>                 let env_args = x.free_vars |> Array.map (fun (L(i,t)) -> 
> $"env_v{i} : {tyv t}") |> String.concat ", "
>                 line s $"def Closure{x.tag}({env_args}):"
>                 let s = indent s
>                 let inner_args = x.domain_args |> Array.map (fun (L(i,t)) -> 
> $"v{i} : {tyv t}") |> String.concat ", "
>                 line s $"def inner({inner_args}) -> {tup_ty x.range}:"
>                 let _ =
>                     let s = indent s
>                     if x.free_vars.Length > 0 then 
>                         let nonlocal_args = x.free_vars |> Array.map (fun 
> (L(i,t)) -> $"env_v{i}") |> String.concat ", "
>                         line s $"nonlocal {nonlocal_args}"
>                         x.free_vars |> Array.map (fun (L(i,t)) -> $"v{i} = 
> env_v{i}") |> String.concat "; " |> line s
>                     binds_start x.free_vars s x.body
>                 line s "return inner"
>                 )
> 
>         import "cupy as cp"
>         import "numpy as np"
>         from "dataclasses import dataclass"
>         from "typing import NamedTuple, Union, Callable, Tuple"
>         env.globals.Add "i8 = int; i16 = int; i32 = int; i64 = int; u8 = int; 
> u16 = int; u32 = int; u64 = int; f32 = float; f64 = float; char = str; string = 
> str"
>         env.globals.Add "cuda = False"
>         env.globals.Add ""
> 
>         let main = System.Text.StringBuilder()
>         let s = {text=main; indent=0}
>         
>         line s "def main_body():"
>         binds_start [[||]] (indent s) x
>         s.text.AppendLine() |> ignore
> 
>         line s "def main():"
>         line (indent s) "r = main_body()"
>         line (indent s) "if cuda: cp.cuda.get_current_stream().synchronize() # 
> This line is here so the `__trap()` calls on the kernel aren't missed."
>         line (indent s) "return r"
>         s.text.AppendLine() |> ignore
> 
>         line s "if __name__ == '__main__': result = main(); None if result is 
> None else print(result)"
> 
>         let program = System.Text.StringBuilder()
>         env.globals |> Seq.iter (fun x -> program.AppendLine(x) |> ignore)
>         fwd_dcls |> Seq.iter (fun x -> program.AppendLine(x) |> ignore)
>         types |> Seq.iter (fun x -> program.Append(x) |> ignore)
>         functions |> Seq.iter (fun x -> program.Append(x) |> ignore)
>         program.Append(main).ToString()
> 
>     let codegenPython (default_env : DefaultEnv) env x = 
>         let cuda_kernels = System.Text.StringBuilder().AppendLine("kernel = 
> r\"\"\"")
>         let g = Dictionary(HashIdentity.Structural)
>         let globals, fwd_dcls, types, functions, main_defs as ars = 
> ResizeArray(), ResizeArray(), ResizeArray(), ResizeArray(), ResizeArray()
> 
>         let codegen = CodegenCuda.codegenCuda default_env ars env
>         let python_code =
>             codegen' (fun (jp_body,key,r') ->
>                 let backend_name = (fst jp_body).node
>                 match backend_name with
>                 | "Cuda" -> 
>                     memoize g (fun (jp_body,key & (C(args,_))) ->
>                         let args = rdata_free_vars args
>                         match (fst env.join_point_method.[[jp_body]]).[[key]] 
> with
>                         | Some a, Some _, _ -> codegen args a
>                         | _ -> raise_codegen_error "Compiler error: The method 
> dictionary is malformed"
>                         string g.Count
>                         ) (jp_body,key)
>                 | x -> raise_codegen_error_backend r' $"The Python + Cuda 
> backend does not support the {x} backend."
>                 ) env x
> 
>         globals |> Seq.iter (fun x -> cuda_kernels.AppendLine(x) |> ignore)
>         fwd_dcls |> Seq.iter (fun x -> cuda_kernels.Append(x) |> ignore)
>         types |> Seq.iter (fun x -> cuda_kernels.Append(x) |> ignore)
>         functions |> Seq.iter (fun x -> cuda_kernels.Append(x) |> ignore)
>         main_defs |> Seq.iter (fun x -> cuda_kernels.Append(x) |> ignore)
> 
>         cuda_kernels
>             .AppendLine("\"\"\"")
>             .AppendLine(System.IO.File.ReadAllText(System.IO.Path.Join(
>     #if !INTERACTIVE
>                 // AppDomain.CurrentDomain.BaseDirectory,
>                 System.IO.Path.Combine (SpiralFileSystem.get_workspace_root (), 
> "deps/The-Spiral-Language/The Spiral Language 2"),
>     #else
>                 System.IO.Path.Combine (SpiralFileSystem.get_workspace_root (), 
> "deps/The-Spiral-Language/The Spiral Language 2"),
>     #endif
>                 "reference_counting.py"
>             )))
>             .Append(python_code).ToString()
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> ── [ 3.35s - diagnostics ] ─────────────────────────────────────────────────────
> │ input.fsx (409,67)-(409,70) typecheck warning This and other
> recursive references to the object(s) being defined will be checked for 
> initialization-soundness at runtime through the use of a delayed reference. This
> is because you are defining one or more recursive objects, rather than recursive
> functions. This warning may be suppressed by using '#nowarn "40"' or 
> '--nowarn:40'.
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## WDiff
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // open System
> open System.IO
> open System.Collections.Generic
> 
> // Full name: Microsoft.FSharp.Core.Result<_,_>.Ok
> 
> open FSharp.Core
> 
> open Hopac
> open Hopac.Infixes
> open Hopac.Extensions
> open Hopac.Stream
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### process_errors
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let process_errors line (ers : LineTokenErrors list) : RString list =
>     ers |> List.mapi (fun i l -> 
>         let i = line + i
>         l |> List.map (fun (r,x) -> x, ({|line=i; character=r.from|}, {|line=i; 
> character=r.nearTo|}))
>         )
>     |> List.concat
>     |> List.groupBy snd
>     |> List.map (fun (k,v) -> k, process_error (List.map fst v))
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### tokenize_replace
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> /// Replaces the token lines and updates the errors given the edit.
> let tokenize_replace (lines : _ FSharpx.Collections.PersistentVector 
> FSharpx.Collections.PersistentVector, errors : _ list) (edit : SpiEdit) =
>     let toks, ers = Array.map tokenize edit.lines |> Array.unzip
>     let lines = replace edit.from edit.nearTo toks lines
>     let errors = 
>         let adj = edit.lines.Length - (edit.nearTo - edit.from)
>         errors |> List.choose (fun ((a : VSCPos,b),c as x) -> 
>             if edit.from <= a.line && a.line < edit.nearTo then None
>             elif edit.nearTo <= a.line && adj <> 0 then Some (add_line_to_range 
> adj (a,b),c)
>             else Some x
>             )
>     let errors = List.append errors (process_errors edit.from (Array.toList 
> ers))
>     lines, errors
> 
> type [[<ReferenceEquality>]] TokenizerState = {
>     lines_text : string FSharpx.Collections.PersistentVector
>     lines_token : LineTokens
>     blocks : LineTokens Block list
>     errors : RString list
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_tokenizer_init
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_tokenizer_init = { lines_text = 
> FSharpx.Collections.PersistentVector.empty; lines_token = 
> FSharpx.Collections.PersistentVector.empty; blocks = [[]]; errors = [[]] }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### replace'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> /// Immutably updates the state based on the request. Does diffing to make the 
> operation efficient.
> /// It is possible for the server to go out of sync, in which case an error is 
> returned.
> let replace' (state : TokenizerState) (edit : SpiEdit) =
>     let lines_text = replace edit.from edit.nearTo edit.lines state.lines_text
>     let lines_token, errors = tokenize_replace (state.lines_token, state.errors)
> edit
>     let blocks = wdiff_block_all state.blocks (lines_token, edit.lines.Length, 
> edit.from, edit.nearTo)
>     {lines_text=lines_text; lines_token=lines_token; errors=errors; 
> blocks=blocks}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_tokenizer_all
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_tokenizer_all (state : TokenizerState) text = 
>     let text = lines text
>     let text' = state.lines_text |> Seq.toArray
>     let rec loop (index,text : string [[]] as x) i = if i < min text.Length 
> state.lines_text.Length && index text i = index text' i then loop x (i+1) else i
>     let from = loop ((fun text i -> text.[[i]]),text) 0
>     if from = text.Length then state else
>     let text = text.[[from..]]
>     let fromRev = loop ((fun text i -> text.[[text.Length-1-i]]),text) 0
>     replace' state {|from=from; nearTo=text'.Length-fromRev; 
> lines=text.[[..text.Length-1-fromRev]]|}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_tokenizer_edit
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_tokenizer_edit (state : TokenizerState) (edit : SpiEdit) = 
>     if edit.nearTo <= state.lines_text.Length then Ok (replace' state edit)
>     else Error "The edit is out of bounds and cannot be applied. The language 
> server and the editor are out of sync. Try reopening the file being edited."
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### semantic_updates_apply
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let semantic_updates_apply (block : LineTokens) updates =
>     Seq.fold (fun block (c : VectorCord, l) -> 
>         let x =
>             let r, x = FSharpx.Collections.PersistentVector.nthNth c.row c.col 
> block
>             let x =
>                 match x with
>                 | TokVar(a,_) -> TokVar(a,l)
>                 | TokSymbol(a,_) -> TokSymbol(a,l)
>                 | TokOperator(a,_) -> TokOperator(a,l)
>                 | TokUnaryOperator(a,_) -> TokUnaryOperator(a,l)
>                 | x -> failwithf "Compiler error: Cannot change the semantic 
> legend for the %A token." x
>             r, x
>         FSharpx.Collections.PersistentVector.updateNth c.row c.col x block
>         ) block updates
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### parse_block
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let parse_block default_env is_top_down (block : LineTokens) =
>     let comments, cords_tokens = 
>         Array.init block.Length (fun line ->
>             let x = block.[[line]]
>             let comment, len = match 
> FSharpx.Collections.PersistentVector.tryLast x with Some (r, TokComment c) -> 
> Some (r, c), x.Length-1 | _ -> None, x.Length
>             let tokens = Array.init len (fun i ->
>                 let r, x = x.[[i]] 
>                 {|row=line; col=i|}, (({| line=line; character=r.from |}, {| 
> line=line; character=r.nearTo |}), x)
>                 )
>             comment, tokens
>             )
>         |> Array.unzip
>     let cords, tokens = Array.unzip (Array.concat cords_tokens)
> 
>     let semantic_updates = ResizeArray()
>     let env = {
>         tokens_cords = cords; semantic_updates = semantic_updates
>         comments = comments; tokens = tokens; i = ref 0; is_top_down = 
> is_top_down
>         default_env = default_env
>         }
>     {result=parseBlockParsing env; semantic_tokens=semantic_updates_apply block 
> semantic_updates}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_parse_init
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_parse_init is_top_down : ParserState = {is_top_down=is_top_down; 
> blocks=[[]]}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_parse
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_parse default_env (state : ParserState) (unparsed_blocks : LineTokens 
> Block list) =
>     let dict = Dictionary(HashIdentity.Reference)
>     // Offset should be ignored when memoizing the results of parsing.
>     List.iter (fun (a,b) -> dict.Add(a,b.block)) state.blocks
>     let blocks = unparsed_blocks |> List.map (fun x -> 
>         x.block, {block=memoize dict (fun a -> Hopac.memo(Job.thunk <| fun () ->
> (parse_block default_env state.is_top_down) a)) x.block; offset=x.offset}
>         )  
>     {state with blocks = blocks }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ModuleState
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ModuleState = { tokenizer : TokenizerState; bundler : BlockBundleState; 
> parser : ParserState }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_module_init
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_module_init is_top_down = {tokenizer = wdiff_tokenizer_init; bundler =
> wdiff_block_bundle_init; parser = wdiff_parse_init is_top_down}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_module_body
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_module_body default_env state tokenizer =
>     if state.tokenizer = tokenizer then state else
>     let parser = wdiff_parse default_env state.parser tokenizer.blocks
>     let bundler = wdiff_block_bundle state.bundler parser
>     {tokenizer=tokenizer; parser=parser; bundler=bundler}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_module_edit
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_module_edit default_env (state : ModuleState) x = wdiff_tokenizer_edit
> state.tokenizer x |> Result.map (wdiff_module_body default_env state)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_module_all
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_module_all default_env state x = wdiff_tokenizer_all state.tokenizer x
> |> wdiff_module_body default_env state
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_module_init_all
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_module_init_all default_env is_top_down x = wdiff_module_all 
> default_env (wdiff_module_init is_top_down) x
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### FileState<'input,'result,'state>
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type [[<ReferenceEquality>]] FileState<'input,'result,'state> = { input : 
> 'input; result : 'result; state : 'state }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### FileFuns<'a,'b,'state>
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type FileFuns<'a,'b,'state> =
>     abstract member eval : 'state * 'a -> 'b
>     abstract member diff : 'state * 'b * 'a -> 'b
>     abstract member init : 'a -> FileState<'a,'b,'state>
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TypecheckerStateValue
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type TypecheckerStateValue = Bundle option * InferResult * TopEnv
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TypecheckerStatePropagated
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type TypecheckerStatePropagated = (bool * TopEnv) Promise
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TypecheckerState
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type TypecheckerState = FileState<PackageId * ModuleId * BlockBundleState, 
> TypecheckerStateValue Stream, TypecheckerStatePropagated>
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### typecheck
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec typecheck (package_id,module_id,env : TopEnv) x = x >>=* function
>     | Cons((_,b : BlockBundleValue), ls) ->
>         match b.bundle with
>         | Some bundle ->
>             let x = infer package_id module_id env bundle
>             let adds = match x.top_env_additions with AOpen x | AInclude x -> x
>             let env = unionInfer adds env
>             Job.result (Cons((b.bundle,x,env),typecheck 
> (package_id,module_id,env) ls))
>         | None ->
>             typecheck (package_id,module_id,env) ls :> _ Job
>     | Nil ->
>         Job.result Nil
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### diff
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec diff (package_id,module_id,env) (result,input : BlockBundleState) = 
>     let tc () = typecheck (package_id,module_id,env) input
>     if Promise.Now.isFulfilled result then
>         input >>** fun input ->
>         match Promise.Now.get result,input with
>         | Cons((b',_,env as x),next), Cons((_,b),bs) when b' = b.bundle -> 
> Promise.Now.withValue (Cons(x,diff (package_id,module_id,env) (next,bs)))
>         | _ -> tc()
>     else tc()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### funs_file_tc
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let funs_file_tc = {new FileFuns<PackageId * ModuleId * BlockBundleState, 
> TypecheckerStateValue Stream, TypecheckerStatePropagated> with
>     member _.eval(state,(pid,mid,x)) = 
>         state >>=* fun (_,env) -> 
>         typecheck (pid,mid,env) x
>     member _.diff(state,b,(pid,mid,a)) =
>         state >>=* fun (_,env) -> diff (pid,mid,env) (b,a)
>     member _.init x = {
>         input = x
>         result = Promise.Now.never()
>         state = Promise.Now.never()
>         }
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_file_update_state
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_file_update_state (funs : FileFuns<'a,'b,'state>) (state : 
> FileState<'a,'b,'state>) (x : 'state) =
>     if state.state = x then state else {state with state=x; 
> result=funs.eval(x,state.input)}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_file_update_input
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_file_update_input (funs : FileFuns<'a,'b,'state>) (state : 
> FileState<'a,'b,'state>) (x : 'a) =
>     if state.input = x then state else {state with input=x; 
> result=funs.diff(state.state,state.result,x)}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_file
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_file (funs : FileFuns<'a,'b,'state>) (state : FileState<'a,'b,'state>)
> (a,b) =
>     if state.state = a then wdiff_file_update_input funs state b else {state=a; 
> input=b; result=funs.eval(a,b)}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ProjFilesTree
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ProjFilesTree =
>     | File of module_id: ModuleId * path: string * name: string option
>     | Directory of dir_id: DirId * name: string * ProjFilesTree list
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ProjFiles
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ProjFiles = { tree : ProjFilesTree list; num_dirs : int; num_files : int }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ProjFileFuns<'a,'state>
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ProjFileFuns<'a,'state> =
>     abstract member file : string option * 'state * 'a -> 'a * 'state
>     abstract member union : 'state * 'state -> 'state
>     abstract member in_module : string * 'state -> 'state
>     abstract member default' : DefaultEnv -> 'state
>     abstract member empty : 'state
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ProjFilesState<'a,'state>
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type [[<ReferenceEquality>]] ProjFilesState<'a,'state> = {
>     init : 'state
>     uids_file : ('a * 'state) [[]]
>     uids_directory : 'state [[]]
>     files : ProjFiles
>     result : 'state
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### proj_files_diff
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let proj_files_diff (uids_file : ('a * 'b) [[]], uids_directory : 'b [[]], 
> files) (uids, files') =
>     let uids_file' = Array.zeroCreate (Array.length uids)
>     let uids_directory' = Array.zeroCreate files'.num_dirs
>     // Ref equality is done first for performance. Most of the time the strings 
> will be the same.
>     let eq a b = System.Object.ReferenceEquals(a,b) || a = b
>     let rec loop = function
>         | File(mid,path,name), File(mid',path',name') when mid = mid' && eq path
> path' && eq name name' -> 
>             let x = uids_file.[[mid]]
>             if uids.[[mid]] = fst x then uids_file'.[[mid]] <- x; true else 
> false
>         | Directory(uid,name,l), Directory(uid',name',l') when uid = uid' && eq 
> name name' && list (l,l') -> 
>             uids_directory'.[[uid]] <- uids_directory.[[uid]]; true
>         | _ -> false
>     and list = function
>         | x :: xs, y :: ys -> loop (x,y) && list (xs,ys)
>         | _ -> false
>     if list (files.tree, files'.tree) then None else Some 
> (uids_file',uids_directory')
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### proj_files
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let proj_files (funs : ProjFileFuns<'a,'state>) uids_file uids_directory uids s 
> l =
>     let inline memo (uids : _ [[]]) uid f = 
>         let x = uids.[[uid]]
>         if isNull (box x) then let x = f() in uids.[[uid]] <- x; x
>         else x
>     let rec loop state = function
>         | File(mid,_,name) -> memo uids_file mid (fun () -> 
> funs.file(name,state,Array.get uids mid)) |> snd
>         | Directory(uid,name,l) -> memo uids_directory uid (fun () -> 
> funs.in_module(name,list state l))
>     and list s l = 
>         List.fold (fun (empty,big) x -> 
>             let small = loop big x
>             funs.union(small,empty), funs.union(small,big)
>             ) (funs.empty, s) l |> fst
>     list s l.tree
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_proj_files_update_files
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_proj_files_update_files (funs : ProjFileFuns<'a,'state>) (state : 
> ProjFilesState<'a,'state >) (uids,files : ProjFiles) =
>     match proj_files_diff (state.uids_file,state.uids_directory,state.files) 
> (uids,files) with
>     | Some (uids_file, uids_directory) -> {state with files=files; 
> uids_file=uids_file; uids_directory=uids_directory; result=proj_files funs 
> uids_file uids_directory uids state.init files}
>     | None -> state
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_proj_files_update_packages
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_proj_files_update_packages (funs : ProjFileFuns<'a,'state>) (state : 
> ProjFilesState<'a,'state >) (init : 'state) =
>     if state.init = init then state else
>     let uids_file, uids_directory = Array.zeroCreate state.uids_file.Length, 
> Array.zeroCreate state.uids_directory.Length
>     let uids = Array.map fst state.uids_file
>     {state with init=init; uids_file=uids_file; uids_directory=uids_directory; 
> result=proj_files funs uids_file uids_directory uids init state.files}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_proj_files
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_proj_files (funs : ProjFileFuns<'a,'state>) (state : 
> ProjFilesState<'a,'state >) (init,(uids,files)) =
>     if state.init = init then wdiff_proj_files_update_files funs state 
> (uids,files)
>     else
>         let uids_file, uids_directory = Array.zeroCreate files.num_files, 
> Array.zeroCreate files.num_dirs
>         {files=files; init=init; uids_file=uids_file; 
> uids_directory=uids_directory; result=proj_files funs uids_file uids_directory 
> uids init files}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### typechecker_results_summary
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let typechecker_results_summary l =
>     Stream.foldFun (fun (has_error,big) (_,x : InferResult,_) -> 
>         has_error || List.isEmpty x.errors = false,
>         match x.top_env_additions with 
>         | AOpen _ -> big 
>         | AInclude small -> unionInfer small big
>         ) (false,top_env_emptyInfer) l
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### funs_proj_file_tc
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let funs_proj_file_tc = {new 
> ProjFileFuns<TypecheckerState,TypecheckerStatePropagated> with
>     member _.file(name,state,x) = 
>         let x = wdiff_file_update_state funs_file_tc x state
>         let env = 
>             typechecker_results_summary x.result >>-* fun (has_error,env) -> 
>             has_error, match name with None -> env | Some name -> in_moduleInfer
> name env
>         x,env
>     member _.union(small,big) = small >>=* fun small -> big >>- fun big -> fst 
> small || fst big, unionInfer (snd small) (snd big)
>     member _.in_module(name,small) = small >>-* fun (has_error,env) -> 
> has_error, in_moduleInfer name env
>     member _.default' default_env = Promise.Now.withValue 
> (false,top_env_defaultInfer default_env)
>     member _.empty = Promise.Now.withValue (false,top_env_emptyInfer)
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### PackageEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type PackageEnv = {
>     nominals_aux : Map<PackageId,Map<GlobalId, {|name : string; kind : TT|}>>
>     nominals : Map<PackageId,Map<GlobalId, {|vars : Var list; body : T|}>>
>     prototypes_instances : Map<PackageId,Map<GlobalId * GlobalId, Constraint Set
> list>>
>     prototypes : Map<PackageId,Map<GlobalId, {|name : string; signature : T; 
> kind : TT|}>>
>     ty : Map<string,T>
>     term : Map<string,T>
>     constraints : Map<string,ConstraintOrModule>
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### union
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let union small big = {
>     nominals_aux = Map.foldBack Map.add small.nominals_aux big.nominals_aux
>     nominals = Map.foldBack Map.add small.nominals big.nominals
>     prototypes_instances = Map.foldBack Map.add small.prototypes_instances 
> big.prototypes_instances
>     prototypes = Map.foldBack Map.add small.prototypes big.prototypes
>     ty = Map.foldBack Map.add small.ty big.ty
>     term = Map.foldBack Map.add small.term big.term
>     constraints = Map.foldBack Map.add small.constraints big.constraints
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### in_moduleWDiff
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let in_moduleWDiff m (a : PackageEnv) =
>     {a with 
>         ty = Map.add m (TyModule a.ty) Map.empty
>         term = Map.add m (TyModule a.term) Map.empty
>         constraints = Map.add m (M a.constraints) Map.empty
>         }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### package_to_file
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let package_to_file (x : PackageEnv) = {
>     nominals_next_tag = 0
>     nominals_aux = Map.foldBack (fun _ -> Map.foldBack Map.add) x.nominals_aux 
> Map.empty
>     nominals = Map.foldBack (fun _ -> Map.foldBack Map.add) x.nominals Map.empty
>     prototypes_next_tag = 0
>     prototypes_instances = Map.foldBack (fun _ -> Map.foldBack Map.add) 
> x.prototypes_instances Map.empty
>     prototypes = Map.foldBack (fun _ -> Map.foldBack Map.add) x.prototypes 
> Map.empty
>     ty = x.ty
>     term = x.term
>     constraints = x.constraints
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_file_to_package
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_file_to_package package_id (small : TopEnv) (big : PackageEnv): 
> PackageEnv = {
>     nominals_aux = Map.add package_id small.nominals_aux big.nominals_aux
>     nominals = Map.add package_id small.nominals big.nominals
>     prototypes_instances = Map.add package_id small.prototypes_instances 
> big.prototypes_instances
>     prototypes = Map.add package_id small.prototypes big.prototypes
>     ty = small.ty
>     term = small.term
>     constraints = small.constraints
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### package_env_empty
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let package_env_empty = {
>     nominals_aux = Map.empty
>     nominals = Map.empty
>     prototypes_instances = Map.empty
>     prototypes = Map.empty
>     ty = Map.empty
>     term = Map.empty
>     constraints = Map.empty
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### package_env_default
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let package_env_default default_env = 
>     let x = top_env_defaultInfer default_env
>     {package_env_empty with ty = x.ty; term = x.term; constraints = 
> x.constraints}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ProjPackagesState<'a>
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ProjPackagesState<'a> = {
>     packages : (string option * 'a) list
>     result : 'a
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ProjState<'file_inputs,'files,'packages>
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ProjState<'file_inputs,'files,'packages> = {
>     package_id : PackageId
>     packages : 'packages ProjPackagesState
>     files : ProjFilesState<'file_inputs,'files>
>     result : 'packages
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TypecheckerStateTop
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type TypecheckerStateTop = (bool * PackageEnv) Promise
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ProjStateTC
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ProjStateTC = 
> ProjState<TypecheckerState,TypecheckerStatePropagated,TypecheckerStateTop>
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ProjEnvTC
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ProjEnvTC = Map<PackageId,ProjStateTC>
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ProjPackageFuns<'file,'package>
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ProjPackageFuns<'file,'package> =
>     abstract member unions : DefaultEnv -> (string option * 'package) list -> 
> 'package
>     abstract member union : 'package * 'package -> 'package
>     abstract member in_module : string * 'package -> 'package
>     abstract member package_to_file : 'package -> 'file
>     abstract member add_file_to_package : PackageId * 'file * 'package -> 
> 'package
>     abstract member default' : DefaultEnv -> 'package
>     abstract member empty : 'package
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### funs_proj_package_tc
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let funs_proj_package_tc = {new 
> ProjPackageFuns<TypecheckerStatePropagated,TypecheckerStateTop> with
>     member funs.unions default_env l = 
>         let f = function Some name, small -> funs.in_module(name,small) | None, 
> small -> small
>         List.fold (fun big x -> funs.union(f x,big)) (funs.default' default_env)
> l
>     member _.union(small,big) = 
>         Job.delay <| fun () ->
>             Hopac.queueIgnore big
>             small >>= fun a ->
>             big >>- fun b ->
>             fst a || fst b, union (snd a) (snd b)
>         |> Hopac.memo
>     member _.in_module(name,x) = x >>-* fun (has_error,env) -> has_error, 
> in_moduleWDiff name env
>     member _.package_to_file(x) = x >>-* fun (has_error,env) -> has_error, 
> package_to_file env
>     member _.add_file_to_package(pid,a,b) = 
>         a >>=* fun (has_error,env) ->
>         b >>-* fun (has_error',env') ->
>         has_error || has_error', add_file_to_package pid env env'
>     member _.default' default_env = Promise.Now.withValue (false, 
> package_env_default default_env)
>     member _.empty = Promise.Now.withValue (false, package_env_empty)
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_proj_init
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_proj_init default_env (funs_packages : 
> ProjPackageFuns<'file,'package>) (funs_files : ProjFileFuns<'file_input,'file>) 
> package_id : ProjState<'file_input,'file,'package> = 
>     let packages = { packages = [[]]; result = funs_packages.default' 
> default_env}
>     let files = {
>         files={tree=[[]]; num_dirs=0; num_files=0}
>         uids_file=[[||]]; uids_directory=[[||]]
>         init=funs_files.default' default_env; result=funs_files.empty
>         }
>     let result = funs_packages.empty
>     { package_id = package_id; packages = packages; files = files; result = 
> result}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_proj_packages
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_proj_packages default_env (funs : ProjPackageFuns<_,'a>) (state : 'a 
> ProjPackagesState) x =
>     if state.packages = x then state else {packages = x; result = funs.unions 
> default_env x }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_proj_update_packages
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_proj_update_packages default_env funs_packages funs_files (state : 
> ProjState<'a,'b,'state>) x =
>     let packages = wdiff_proj_packages default_env funs_packages state.packages 
> x
>     if state.packages = packages then state else
>     let files = wdiff_proj_files_update_packages funs_files state.files 
> (funs_packages.package_to_file(packages.result))
>     let result = 
> funs_packages.add_file_to_package(state.package_id,files.result,packages.result)
>     {state with packages=packages; files=files; result=result}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_proj_update_files
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_proj_update_files (funs_packages : ProjPackageFuns<_,_>) funs_files 
> (state : ProjState<'a,'b,'state>) x =
>     let files = wdiff_proj_files_update_files funs_files state.files x
>     if state.files = files then state else
>     let result = 
> funs_packages.add_file_to_package(state.package_id,files.result,state.packages.r
> esult)
>     {state with files=files; result=result}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_proj
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_proj default_env (funs_packages : ProjPackageFuns<_,_>) funs_files 
> (state : ProjState<'file_input,'file,'state>) (packages,files) =
>     let packages = wdiff_proj_packages default_env funs_packages state.packages 
> packages
>     if state.packages = packages then wdiff_proj_update_files funs_packages 
> funs_files state files
>     else
>         let files = wdiff_proj_files funs_files state.files 
> (funs_packages.package_to_file(packages.result),files)
>         let result = 
> funs_packages.add_file_to_package(state.package_id,files.result,packages.result)
>         {state with packages=packages; files=files; result=result}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ProjEnvUpdate<'a>
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ProjEnvUpdate<'a> =
>     | UpdatePackageModule of PackageId * (string option * PackageId) list * ('a 
> [[]] * ProjFiles)
>     | UpdatePackage of PackageId * (string option * PackageId) list
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### map_packages
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let map_packages s packages = packages |> List.map (fun (a,b) -> a, (Map.find b 
> s).result)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_projenv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_projenv default_env funs_packages funs_files (s : 
> Map<PackageId,ProjState<'a,'b,'state>>) l =
>     List.fold (fun s -> function
>         | UpdatePackageModule(uid,packages,files) -> Map.add uid (wdiff_proj 
> default_env funs_packages funs_files s.[[uid]] (map_packages s packages,files)) 
> s
>         | UpdatePackage(uid,packages) -> Map.add uid (wdiff_proj_update_packages
> default_env funs_packages funs_files s.[[uid]] (map_packages s packages)) s
>         ) s l
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## WDiffPrepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> open Hopac
> open Hopac.Infixes
> open Hopac.Extensions
> open Hopac.Stream
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### PrepassStateValue
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type PrepassStateValue = InferResult * PrepassTopEnv AdditionType * 
> PrepassTopEnv
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### PrepassStatePropagated
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type PrepassStatePropagated = PrepassTopEnv Promise
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### PrepassState
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type PrepassState = FileState<PackageId * ModuleId * string * 
> TypecheckerStateValue Stream, PrepassStateValue Stream, PrepassStatePropagated>
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### prepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec prepass (package_id,module_id,path,env) = function
>     | Cons((_,r,_) : TypecheckerStateValue, ls) ->
>         r.filled_top >>- fun filled_top -> 
>         let x = (prepassPrepass package_id module_id path env).filled_top 
> filled_top
>         let adds = match x with AOpen x | AInclude x -> x
>         let env = unionPrepass adds env
>         Cons((r,x,env),ls >>=* prepass (package_id,module_id,path,env))
>     | Nil ->
>         Job.result Nil
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### diffWDiffPrepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec diffWDiffPrepass (package_id,module_id,path,env) (result,input : 
> TypecheckerStateValue Stream) = 
>     input >>** fun input ->
>     let tc () = prepass (package_id,module_id,path,env) input |> Hopac.memo
>     if Promise.Now.isFulfilled result then
>         match Promise.Now.get result,input with
>         | Cons((b',_,env as x),next), Cons((_,b,_),bs) when b' = b -> 
> Cons(x,diffWDiffPrepass (package_id,module_id,path,env) (next,bs)) |> 
> Promise.Now.withValue
>         | _ -> tc()
>     else tc()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### funs_file_prepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let funs_file_prepass = {new FileFuns<PackageId * ModuleId * string * 
> TypecheckerStateValue Stream, PrepassStateValue Stream, PrepassStatePropagated> 
> with
>     member _.eval(state,(pid,mid,path,x)) = 
>         state >>=* fun env -> 
>         x >>= prepass (pid,mid,path,env)
>     member _.diff(state,b,(pid,mid,path,a)) =
>         state >>=* fun env -> diffWDiffPrepass (pid,mid,path,env) (b,a)
>     member _.init x = {
>         input = x
>         result = Promise.Now.never()
>         state = Promise.Now.never()
>         }
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### prepass_results_summary
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let prepass_results_summary l =
>     Stream.foldFun (fun big (_,x,_) ->
>         match x with
>         | AOpen _ -> big
>         | AInclude small -> unionPrepass small big
>         ) (top_env_emptyPrepass) l
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### funs_proj_file_prepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let funs_proj_file_prepass = {new 
> ProjFileFuns<PrepassState,PrepassStatePropagated> with
>     member _.file(name,state,x) = 
>         let x = wdiff_file_update_state funs_file_prepass x state
>         let env = 
>             prepass_results_summary x.result >>-* fun env -> 
>             match name with None -> env | Some name -> in_modulePrepass name env
>         x,env
>     member _.union(small,big) = small >>=* fun small -> big >>- fun big -> 
> unionPrepass small big
>     member _.in_module(name,small) = small >>-* in_modulePrepass name
>     member _.default' default_env = Promise.Now.withValue 
> (top_env_defaultPrepass default_env)
>     member _.empty = Promise.Now.withValue top_env_emptyPrepass
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### PrepassPackageEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type PrepassPackageEnv = {
>     prototypes_instances : Map<int, Map<GlobalId * GlobalId,E>>
>     nominals : Map<int, Map<GlobalId,{|body : TPrepass; name : string|}>>
>     term : Map<string,E>
>     ty : Map<string,TPrepass>
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### unionWDiffPrepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let unionWDiffPrepass small big = {
>     prototypes_instances = Map.foldBack Map.add small.prototypes_instances 
> big.prototypes_instances
>     nominals = Map.foldBack Map.add small.nominals big.nominals
>     term = Map.foldBack Map.add small.term big.term
>     ty = Map.foldBack Map.add small.ty big.ty
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### in_module
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let in_module m (a : PrepassPackageEnv) =
>     {a with 
>         ty = Map.add m (TModule a.ty) Map.empty
>         term = Map.add m (EModule a.term) Map.empty
>         }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### package_env_emptyWDiffPrepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let package_env_emptyWDiffPrepass = {
>     prototypes_instances = Map.empty
>     nominals = Map.empty
>     term = Map.empty
>     ty = Map.empty
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### package_to_fileWDiffPrepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let package_to_fileWDiffPrepass (x : PrepassPackageEnv) = {
>     nominals_next_tag = 0
>     nominals = Map.foldBack (fun _ -> Map.foldBack Map.add) x.nominals Map.empty
>     prototypes_next_tag = 0
>     prototypes_instances = Map.foldBack (fun _ -> Map.foldBack Map.add) 
> x.prototypes_instances Map.empty
>     ty = x.ty
>     term = x.term
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_file_to_packageWDiffPrepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_file_to_packageWDiffPrepass package_id (small : PrepassTopEnv) (big : 
> PrepassPackageEnv): PrepassPackageEnv = {
>     nominals = Map.add package_id small.nominals big.nominals
>     prototypes_instances = Map.add package_id small.prototypes_instances 
> big.prototypes_instances
>     ty = small.ty
>     term = small.term
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### package_env_defaultWDiffPrepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let package_env_defaultWDiffPrepass default_env = { 
> package_env_emptyWDiffPrepass with ty = (top_env_defaultPrepass default_env).ty 
> }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ProjStatePrepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ProjStatePrepass = 
> ProjState<PrepassState,PrepassStatePropagated,PrepassPackageEnv Promise>
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### funs_proj_package_prepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let funs_proj_package_prepass = {new 
> ProjPackageFuns<PrepassStatePropagated,PrepassPackageEnv Promise> with
>     member funs.unions default_env l = 
>         let f = function Some name, small -> funs.in_module(name,small) | None, 
> small -> small
>         List.fold (fun big x -> funs.union(f x,big)) (funs.default' default_env)
> l
>     member _.union(small,big) = 
>         Job.delay <| fun () ->
>             Hopac.queueIgnore big
>             small >>= fun a -> big >>- unionWDiffPrepass a
>         |> Hopac.memo
>     member _.in_module(name,x) = x >>-* fun env -> in_module name env
>     member _.package_to_file(x) = x >>-* package_to_fileWDiffPrepass
>     member _.add_file_to_package(pid,a,b) = 
>         a >>=* fun env ->
>         b >>-* add_file_to_packageWDiffPrepass pid env
>     member _.default' default_env = Promise.Now.withValue 
> (package_env_defaultWDiffPrepass default_env)
>     member _.empty = Promise.Now.withValue package_env_emptyWDiffPrepass
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## SpiProj
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #r 
> @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
> dard2.1/FSharp.Control.AsyncSeq.dll"
> #r 
> @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
> 0/System.Reactive.dll"
> #r 
> @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
> netstandard2.0/System.Reactive.Linq.dll"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // Everything that deals with Spiral project files themselves goes here
> open FParsec
> // open Common
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### RawFileHierarchy
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type RawFileHierarchy =
>     | Directory of VSCRange * RString * RawFileHierarchy list
>     | File of VSCRange * RString * is_top_down : bool * is_include : bool
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ConfigResumableError
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ConfigResumableError =
>     | DuplicateFiles of VSCRange [[]] [[]]
>     | DuplicateRecordFields of VSCRange [[]] [[]]
>     | MissingNecessaryRecordFields of string [[]] * VSCRange
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ConfigFatalError
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ConfigFatalError =
>     | Tabs of VSCRange [[]]
>     | ParserError of string * VSCRange
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ConfigException
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> exception ConfigException of ConfigFatalError
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### spaces_template
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec spaces_template s = (spaces >>. optional (followedByString "//" >>. 
> skipRestOfLine true >>. spaces_template)) s
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### spacesSpiProj
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let spacesSpiProj s = spaces_template s
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### raise'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let raise' x = raise (ConfigException x)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### raise_if_not_empty
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let raise_if_not_empty exn l = if Array.isEmpty l = false then raise' (exn l)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_to_exception_list'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_to_exception_list' (p: CharStream<ResizeArray<ConfigResumableError>>) = 
> p.State.UserState.Add
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### add_to_exception_list
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let add_to_exception_list (p: CharStream<ResizeArray<ConfigResumableError>>) exn
> l = if Array.isEmpty l = false then p.State.UserState.Add (exn l)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### column
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let column (p : CharStream<_>) = p.Column
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### pos
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let pos (p : CharStream<_>) : VSCPos = {|line=int p.Line - 1; character=int 
> p.Column - 1|}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### pos'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let pos' p = Reply(pos p)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### rangeSpiProj
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rangeSpiProj f p = pipe3 pos' f pos' (fun a b c -> ((a, c) : VSCRange), b) p
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_small_var_char_startingSpiProj
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_small_var_char_startingSpiProj c = isAsciiLower c
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_var_charSpiProj
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_var_charSpiProj c = isAsciiLetter c || c = '_' || c = ''' || isDigit c
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### file'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let file' p = many1Satisfy2L is_small_var_char_startingSpiProj 
> is_var_charSpiProj "lowercase variable name" p
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### fileSpiProj
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let fileSpiProj p = (rangeSpiProj file' .>> spacesSpiProj) p
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### file_verify
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let file_verify p = (skipMany1Satisfy2L is_small_var_char_startingSpiProj 
> is_var_charSpiProj "lowercase variable name" .>> spacesSpiProj .>> eof) p
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### file_hierarchy
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec file_hierarchy p =
>     let i = column p
>     let expr p = if i = column p then file_or_directory p else 
> Reply(ReplyStatus.Error,expected "file or directory on the same or greater 
> indentation as the first one")
>     (many expr |>> fun l ->
>         let _ = 
>             l |> List.toArray
>             |> Array.choose (function | File(_,(a,b),_,_) -> Some (b,a) | _ -> 
> None)
>             |> Array.groupBy fst
>             |> Array.choose (fun (a,b) -> if b.Length > 1 then Some (Array.map 
> snd b) else None)
>             |> add_to_exception_list p DuplicateFiles
>         l
>         ) p
> 
> and file_or_directory p =
>     let i = column p
>     let file_hierarchy p = if i < column p then file_hierarchy p else 
> Reply([[]])
>     (rangeSpiProj (rangeSpiProj file' >>= fun (r,name) p ->
>         let adjust_range ((a,b) : VSCRange) : VSCRange = if b.character < 
> a.character then a,{|line=b.line-1; character=System.Int32.MaxValue|} else a,b
>         let x = p.Peek2()
>         match x.Char0, x.Char1 with
>         | '/',_ -> p.Skip(); (spacesSpiProj >>. file_hierarchy |>> fun files r' 
> -> Directory(adjust_range r',(r,name),files)) p
>         | '-',_ -> p.Skip(); (spacesSpiProj >>% fun r' -> File(adjust_range 
> r',(r,name),true,true)) p
>         | '*','-' -> p.Skip(2); (spacesSpiProj >>% fun r' -> File(adjust_range 
> r',(r,name),false,true)) p
>         | '*',_ -> p.Skip(); (spacesSpiProj >>% fun r' -> File(adjust_range 
> r',(r,name),false,false)) p
>         | _ -> (spacesSpiProj >>% fun r' -> File(adjust_range 
> r',(r,name),true,false)) p
>         )
>     |>> fun (r',f) -> f r') p
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### RawSchemaPackages
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type RawSchemaPackages = {range : VSCRange; name : string; is_in_compiler_dir : 
> bool; is_include : bool}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### packages
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let packages p =
>     let i = column p
>     let file = rangeSpiProj (((skipChar '|' >>% true) <|>% false) .>>.  file') 
> >>= fun (r,(is_in_compiler_dir,name)) p ->
>         match p.Peek() with
>         | '-' -> p.Skip(); (spacesSpiProj >>% {range=r; name=name; 
> is_in_compiler_dir=is_in_compiler_dir; is_include=true}) p
>         | _ -> (spacesSpiProj >>% {range=r; name=name; 
> is_in_compiler_dir=is_in_compiler_dir; is_include=false}) p
>     let file p = if i <= column p then file p else 
> Reply(ReplyStatus.Error,expected "directory on the same or greater indentation 
> as the first one")
>     many file p
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### tab_positions
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let tab_positions (str : string): VSCRange [[]] =
>     let mutable line = -1
>     lines str |> Array.choose (fun x -> 
>         line <- line + 1
>         let x = {|line=line; character=x.IndexOf("\t")|}
>         if x.character <> -1 then Some(x,{|x with character=x.character+1|}) 
> else None
>         )
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### record_reduce
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let record_reduce (field: Parser<'schema -> 'schema, _>) s p =
>     let record_body p =
>         let i = column p
>         let indent expr p = if i = column p then expr p else 
> Reply(ReplyStatus.Error,expected "record field on the same indentation as the 
> first one")
>         many (indent field) p
>     (rangeSpiProj record_body |>> fun (r,l) -> r, List.fold (|>) s l) p
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### record_field
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let record_field (name, p) = 
>     (skipString name >>. skipChar ':' >>. spacesSpiProj >>. rangeSpiProj p)
>     |>> (fun (r,f) (s,l) -> f s, (r, name) :: l)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### record
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let record fields fields_necessary schema =
>     let fields = choice (List.map record_field fields)
>     record_reduce fields (schema, [[]]) >>= fun (range,(schema,l)) p ->
>         let l = List.toArray l
>         let _ =
>             let names = Array.map snd l
>             Set fields_necessary - Set names
>             |> Set.toArray
>             |> add_to_exception_list p (fun fields -> 
> MissingNecessaryRecordFields(fields,range))
>         let _ =
>             Array.groupBy snd l
>             |> Array.choose (fun (k, v) -> if v.Length > 1 then Some (Array.map 
> fst v) else None)
>             |> add_to_exception_list p DuplicateRecordFields
> 
>         Reply(schema)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### RawSchema
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type RawSchema = {
>     name : RString option
>     version : RString option
>     moduleDir : RString option
>     modules : RawFileHierarchy list
>     packageDir : RString option
>     packages : RawSchemaPackages list
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### schema_def
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let schema_def: RawSchema = {
>     name=None
>     version=None
>     moduleDir=None
>     modules=[[]]
>     packageDir=None
>     packages=[[]]
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ConfigError
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ConfigError = ResumableError of ConfigResumableError [[]] | FatalError of 
> ConfigFatalError
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### config
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let config text =
>     try 
>         let _ = tab_positions text |> raise_if_not_empty Tabs
>         
>         let directory p = (rangeSpiProj (restOfLine false) .>> spacesSpiProj |>>
> fun (r,x) -> Some(r,x.Trim())) p
> 
>         let fields = [[
>             "version", rangeSpiProj (restOfLine true .>> spacesSpiProj) |>> fun 
> (r,x) s -> {s with version=Some (r,x.TrimEnd())}
>             "name", fileSpiProj |>> fun x s -> {s with name=Some x}
>             "moduleDir", directory |>> fun x s -> {s with moduleDir=x}
>             "modules", file_hierarchy |>> fun x s -> {s with modules=x}
>             "packageDir", directory |>> fun x s -> {s with packageDir=x}
>             "packages", packages |>> fun x s -> {s with packages=x}
>             ]]
>         let necessary = [[]]
> 
>         match runParserOnString (spacesSpiProj >>. record fields necessary 
> schema_def .>> eof) (ResizeArray()) "spiral.config" text with
>         | Success(a,userstate,_) -> 
>             if userstate.Count > 0 then userstate.ToArray() |> ResumableError |>
> Result.Error else Result.Ok a
>         | Failure(messages,error,_) ->
>             let x = {|line=int error.Position.Line - 1; character=int 
> error.Position.Column - 1|}
>             ParserError(messages, (x,{|x with character=x.character+1|})) |> 
> FatalError |> Result.Error
>     with 
>         | :? ConfigException as e -> e.Data0 |> FatalError |> Result.Error
> 
>     |> Result.mapError (fun x ->
>         let fatal_error = function
>             | Tabs l -> l |> Array.map (fun r -> r, "Tab not allowed.")
>             | ParserError(x,r) -> [[|r, (lines x).[[3..]] |> String.concat 
> "\n"|]]
>         let inline duplicate er = Array.collect (fun l -> let er = er 
> (Array.length l) in Array.map (fun r -> r, er) l)
>         let resumable_error = function
>             | DuplicateFiles l -> duplicate (sprintf "Duplicate name. Count: 
> %i") l
>             | DuplicateRecordFields l -> duplicate (sprintf "Duplicate record 
> field. Count: %i") l
>             | MissingNecessaryRecordFields (l,r) -> [[|r, sprintf "Record is 
> missing the fields: %s" (String.concat ", " l)|]]
>         match x with
>         | ResumableError x -> Array.collect resumable_error x
>         | FatalError x -> fatal_error x
>         |> Array.toList
>         )
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### FileHierarchy
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type FileHierarchy =
>     | Directory of VSCRange * path: RString * name : string * FileHierarchy list
>     | File of VSCRange * path: RString * string option
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### SchemaPackages
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type SchemaPackages = {dir : RString; name : string option}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Schema
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Schema = {
>     moduleDir : VSCRange option * string
>     modules : FileHierarchy list
>     packageDir : VSCRange option * string 
>     packages : SchemaPackages list
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### SchemaException
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> exception SchemaException of RString
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### SchemaResult
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type SchemaResult = Result<Schema,RString list>
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### schema
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let schema (pdir,text) : SchemaResult = config text |> Result.bind (fun x ->
>     try
>         let combine a (r,b) =
>             try
>                 Path.Combine(a,b)
>                 |> Path.GetFullPath
>                 |> fun result ->
>                     let result' = result |> SpiralFileSystem.standardize_path
>                     // trace Verbose (fun () -> $"""SpiProj.schema.combine / a: 
> {a} / b: {b} / result: {result |> SpiralSm.replace "\\" "|"} / result': 
> {result'}""") _locals
>                     result'
>             with e ->
>                 raise (SchemaException(r,e.Message))
>         let module_dir =
>             match x.moduleDir with
>             | Some(r,_ as x) -> Some r, combine pdir x
>             | None -> None, pdir
>         let package_dir = 
>             match x.packageDir with
>             | Some(r,_ as x) -> Some r, combine pdir x
>             | None -> None, Path.Combine(pdir,"..") |> Path.GetFullPath
>         // trace Verbose (fun () -> $"""SpiProj.schema / pdir: {pdir} / 
> module_dir: {module_dir |> snd} / package_dir: {package_dir |> snd |> 
> SpiralSm.replace "\\" "|"}""") _locals
>         let modules =
>             let rec loop prefix = function
>                 | RawFileHierarchy.Directory(r,(r',a),l) -> 
>                     let prefix = Path.Combine(prefix,a)
>                     let prefix' = prefix |> SpiralFileSystem.standardize_path
>                     trace Verbose (fun () -> $"SpiProj.schema.modules.loop | 
> RawFileHierarchy.Directory(r,(r',a),l) / prefix: {prefix} / prefix': {prefix'}")
> _locals
>                     let prefix = prefix'
>                     Directory(r,(r',prefix),a,List.map (loop prefix) l)
>                 | RawFileHierarchy.File(r,(r',a),is_top_down,is_include) ->
>                     let path = Path.Combine(prefix,a + if is_top_down then 
> ".spi" else ".spir")
>                     let path' = path |> SpiralFileSystem.standardize_path
>                     // trace Verbose (fun () -> $"SpiProj.schema.modules.loop | 
> RawFileHierarchy.File(r,(r',a),is_top_down,is_include) / path: {path} / path': 
> {path'}") _locals
>                     let path = path'
>                     File(r,(r',path),if is_include then None else Some a)
>             List.map (loop (snd module_dir)) x.modules
>         let packages =
>             let cdir =
> #if !INTERACTIVE
>                 // 
> Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory,"..")
>                 Path.Combine (SpiralFileSystem.get_workspace_root (), 
> "deps/The-Spiral-Language/VS Code Plugin")
> #else
>                 Path.Combine (SpiralFileSystem.get_workspace_root (), 
> "deps/The-Spiral-Language/VS Code Plugin")
> #endif
>                 |> Path.GetFullPath
>             x.packages |> List.map (fun x ->
>                 let name = if x.is_include then None else Some x.name
>                 let dir = Path.Combine((if x.is_in_compiler_dir then cdir else 
> snd package_dir),x.name)
>                 let dir' = dir |> SpiralFileSystem.standardize_path
>                 let dir'' = dir' |> SpiralFileSystem.standardize_path
>                 trace Verbose (fun () -> $"""SpiProj.schema.packages / dir: {dir
> |> SpiralSm.replace "\\" "|"} / dir': {dir'} / dir'': {dir''}""") _locals
>                 let dir = dir''
>                 {name = name; dir = x.range, dir}
>                 )
>         Result.Ok {moduleDir = module_dir; modules = modules; packageDir = 
> package_dir; packages = packages}
>     with :? SchemaException as e -> Result.Error [[e.Data0]]
>     )
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## Graph
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> open System.Collections.Generic
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Graph
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Graph = Map<string,string Set>
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### MirroredGraph
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type MirroredGraph = Graph * Graph
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### mirrored_graph_empty
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let mirrored_graph_empty : MirroredGraph = Map.empty, Map.empty
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### link_add'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let link_add' (abs : Graph) a b: Graph = 
>     match Map.tryFind a abs with
>     | Some bs -> Map.add a (Set.add b bs) abs
>     | None -> Map.add a (Set.singleton b) abs
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### link_add
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let link_add (s : MirroredGraph) a b: MirroredGraph = link_add' (fst s) a b, 
> link_add' (snd s) b a
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### link_remove'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let link_remove' (abs : Graph) a b = 
>     match Map.tryFind a abs with
>     | Some bs -> 
>         let bs = Set.remove b bs
>         if Set.isEmpty bs then Map.remove a abs else Map.add a bs abs
>     | None -> abs
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### link_remove
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let link_remove (s : MirroredGraph) a b: MirroredGraph = link_remove' (fst s) a 
> b, link_remove' (snd s) b a
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### links_remove
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let links_remove ((abs,bas as s) : MirroredGraph) a: MirroredGraph = 
>     match Map.tryFind a abs with
>     | Some bs -> Map.remove a abs, Set.fold (fun bas b -> link_remove' bas b a) 
> bas bs
>     | None -> s
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### links_add
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let links_add s a bs = List.fold (fun s b -> link_add s a b) s bs
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### links_replace
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let links_replace (s : MirroredGraph) a bs = links_add (links_remove s a) a bs
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### links_get
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let links_get (abs : Graph) a = Map.tryFind a abs |> Option.defaultValue 
> Set.empty
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### link_exists
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let link_exists ((abs,bas) : MirroredGraph) x = Map.containsKey x abs || 
> Map.containsKey x bas
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### topological_sort_template
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline topological_sort_template add bas dirty_nodes =
>     let sort_visited = HashSet()
>     let rec dfs_rev a = if sort_visited.Add(a) then Seq.iter dfs_rev (links_get 
> bas a); add a
>     Seq.iter dfs_rev dirty_nodes
>     sort_visited
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### topological_sort'
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // Returns the order end -> mid -> start.
> let topological_sort' bas start_nodes = let sort_order = Queue() in sort_order, 
> topological_sort_template sort_order.Enqueue bas start_nodes
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### topological_sort
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // Returns the order start -> mid -> end.
> let topological_sort bas start_nodes = let sort_order = Stack() in sort_order, 
> topological_sort_template sort_order.Push bas start_nodes
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### circular_nodes
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let circular_nodes ((abs,bas) : MirroredGraph) dirty_nodes =
>     let sort_order, sort_visited = topological_sort bas dirty_nodes
>     let order = sort_order.ToArray()
>     let visited = HashSet()
>     let circular_nodes = Dictionary()
>     Array.fold (fun i a ->
>         let sc = ResizeArray() // This array stores the strongly connected 
> components.
>         let rec dfs a = if sort_visited.Contains(a) && visited.Add(a) then 
> Seq.iter dfs (links_get abs a); sc.Add a
>         dfs a
>         if 1 < sc.Count then 
>             sc |> Seq.iter (fun x -> circular_nodes.Add(x,i) |> ignore)
>             i+1
>         else 
>             i
>         ) 0 order |> ignore
>     order, circular_nodes
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## ServerUtils
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // open System
> open System.IO
> open System.Collections.Generic
> 
> // open Common
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ProjectCodeAction
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ProjectCodeAction = 
>     | CreateFile of {|filePath : string|}
>     | DeleteFile of {|range: VSCRange; filePath : string|} // The range here 
> includes the postfix operators.
>     | RenameFile of {|filePath : string; target : string|}
>     | CreateDirectory of {|dirPath : string|}
>     | DeleteDirectory of {|range: VSCRange; dirPath : string|} // The range here
> is for the whole tree, not just the code action activation.
>     | RenameDirectory of {|dirPath : string; target : string; validate_as_file :
> bool|}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### code_action_execute
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let code_action_execute a =
>     try match a with
>         | CreateDirectory a -> Directory.CreateDirectory(a.dirPath) |> ignore; 
> Result.Ok null
>         | DeleteDirectory a -> Directory.Delete(a.dirPath,true); Result.Ok 
> a.dirPath
>         | RenameDirectory a ->
>             if a.validate_as_file then
>                 match FParsec.CharParsers.run file_verify a.target with
>                 | FParsec.CharParsers.ParserResult.Success _ -> 
> Directory.Move(a.dirPath,Path.Combine(a.dirPath,"..",a.target)); Result.Ok 
> a.dirPath
>                 | FParsec.CharParsers.ParserResult.Failure(er,_,_) -> 
> Result.Error er
>             else
>                 Directory.Move(a.dirPath,Path.Combine(a.dirPath,"..",a.target));
> Result.Ok a.dirPath
>         | CreateFile a ->
>             if File.Exists(a.filePath) then Result.Error "File already exists."
>             else 
>                 Directory.GetParent(a.filePath).Create()
>                 File.Create(a.filePath).Dispose()
>                 Result.Ok null
>         | DeleteFile a -> File.Delete(a.filePath); Result.Ok a.filePath
>         | RenameFile a ->
>             match FParsec.CharParsers.run file_verify a.target with
>             | FParsec.CharParsers.ParserResult.Success _ -> 
> File.Move(a.filePath,Path.Combine(a.filePath,"..",a.target+Path.GetExtension(a.f
> ilePath)),false); Result.Ok a.filePath
>             | FParsec.CharParsers.ParserResult.Failure(er,_,_) -> Result.Error 
> er
>     with e -> Result.Error e.Message
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### RAction
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type RAction = VSCRange * ProjectCodeAction
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### SchemaState
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type SchemaState = { schema : Schema; errors_parse : RString list; 
> errors_modules : RString list; errors_packages : RString list}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### SchemaEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type SchemaEnv = Map<string,SchemaState>
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ModuleEnv
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ModuleEnv = Map<string,ModuleState>
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ss_empty
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let ss_empty = {
>     schema = {moduleDir = None, null; modules = [[]]; packageDir = None, null; 
> packages = [[]]}
>     errors_parse = [[]]; errors_modules = [[]]; errors_packages = [[]]
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ss_from_result
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let ss_from_result = function
>     | Result.Ok schema -> {ss_empty with schema = schema}
>     | Result.Error ers -> {ss_empty with errors_parse = ers}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ss_validate_module
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let ss_validate_module (packages : SchemaEnv) (modules : ModuleEnv) (x : 
> SchemaState) =
>     let errors = ResizeArray()
>     let rec loop = function
>         | FileHierarchy.Directory(_,(r,path),_,l) -> 
>             trace Verbose (fun () -> $"ss_validate_module / dir path: {path}") 
> _locals
>             if Map.containsKey path packages then errors.Add(r,"Module directory
> has a package file in it.")
>             list l
>         | FileHierarchy.File(_,(r,path),_) ->
>             let path' = path |> SpiralFileSystem.standardize_path
>             trace Verbose (fun () -> $"ss_validate_module / file / path: {path} 
> / path': {path'}") _locals
>             if Map.containsKey path' modules = false then errors.Add(r,"Module 
> not loaded.")
>     and list l = List.iter loop l
>     list x.schema.modules
>     Seq.toList errors
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ss_validate_modules
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let ss_validate_modules (packages : SchemaEnv) modules order = 
>     Array.fold (fun s x ->
>         match Map.tryFind x s with
>         | Some v -> Map.add x {v with errors_modules = ss_validate_module 
> packages modules v} s
>         | None -> s
>         ) packages order
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ss_has_error
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let ss_has_error x =
>     (List.isEmpty x.errors_parse && List.isEmpty x.errors_modules && 
> List.isEmpty x.errors_packages) = false
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ss_validate_packages
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let ss_validate_packages (packages : SchemaEnv) (order : string [[]], socs : 
> Dictionary<string,int>) : SchemaEnv =
>     Array.fold (fun s path ->
>         match Map.tryFind path s with
>         | Some (x : SchemaState) -> 
>             let c p = match socs.TryGetValue(p) with true,b -> b | false,_ -> -1
>             let is_circular x = x <> -1
>             let are_in_same_strong_component a b = is_circular a && is_circular 
> b && a = b
>             let ers =
>                 let cpath = c path
>                 (x.schema.packages, [[]]) ||> List.foldBack (fun {dir=r,p} ers 
> ->
>                     let cp = c p
>                     if are_in_same_strong_component cpath cp then (r,"Package is
> circular and loops through the current one.") :: ers
>                     elif path = p then (r,"Self referential links are not 
> allowed.") :: ers
>                     else
>                         match Map.tryFind p s with
>                         | Some s' when ss_has_error s' -> (r,"Package has an 
> error.") :: ers
>                         | Some _ -> ers
>                         | None -> (r,"Package not loaded.") :: ers
>                     ) 
>             Map.add path {x with errors_packages=ers} s
>         | _ -> s
>         ) packages order
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ss_validate
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let ss_validate packages modules (order,socs) =
>     let packages = ss_validate_modules packages modules order
>     ss_validate_packages packages (order,socs)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ResultMap<'a,'b>
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ResultMap<'a,'b> when 'a : comparison = {ok : Map<'a,'b>; error: 
> Map<'a,'b>}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ProjEnvTCResult
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ProjEnvTCResult = ResultMap<PackageId,ProjStateTC>
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_projenvr_sync_schema
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_projenvr_sync_schema default_env funs_packages funs_files (ids : 
> Map<string, PackageId>) (packages : SchemaEnv) 
>         (state : ResultMap<PackageId,ProjState<'file_input,'file,'package>>) 
> order =
>     Array.fold (fun (s : ResultMap<_,_>) x ->
>         let x' = x |> SpiralFileSystem.standardize_path
>         trace Verbose (fun () -> $"ServerUtils.wdiff_projenvr_sync_schema / x: 
> {x} / x': {x'}") _locals
>         match Map.tryFind x' ids with
>         | Some pid ->
>             match Map.tryFind x' packages with
>             | Some schema ->
>                 match Map.tryFind pid s.ok, Map.tryFind pid s.error, 
> ss_has_error schema with
>                 | Some _, Some _,_ -> failwith "Compiler error: The ok and error
> maps should be disjoint."
>                 | Some x, None, true -> {ok=Map.remove pid s.ok; error=Map.add 
> pid x s.error}
>                 | None, Some x, false -> {ok=Map.add pid x s.ok; 
> error=Map.remove pid s.error}
>                 | None, None, c -> 
>                     let x = wdiff_proj_init default_env funs_packages funs_files
> pid
>                     if c then {s with error=Map.add pid x s.error} else {s with 
> ok=Map.add pid x s.ok}
>                 | _ -> s
>             | None -> {ok=Map.remove pid s.ok; error=Map.remove pid s.error}
>         | None -> s
>         ) state order
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### projenv_update_packages
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let projenv_update_packages default_env funs_packages funs_files (ids : 
> Map<string, PackageId>) (packages : SchemaEnv)
>         (state : Map<PackageId,ProjState<'a,'b,'state>>)  (dirty_packages : 
> Dictionary<_,_>, order : string [[]]) =
>     Array.foldBack (fun x l ->
>         let x' = x |> SpiralFileSystem.standardize_path
>         trace Verbose (fun () -> $"ServerUtils.projenv_update_packages / x: {x} 
> / x': {x'}") _locals
>         match Map.tryFind x' packages with
>         | None -> l
>         | Some schema when ss_has_error schema -> l
>         | Some schema ->
>             let pid = ids.[[x']]
>             let packages = schema.schema.packages |> List.map (fun x -> x.name, 
> ids.[[snd x.dir]])
>             match dirty_packages.TryGetValue(x') with
>             | true, x -> UpdatePackageModule(pid,packages,x) :: l
>             | false, _ -> UpdatePackage(pid,packages) :: l
>         ) order [[]]
>     |> wdiff_projenv default_env funs_packages funs_files state
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### proj_file_iter_file
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline proj_file_iter_file f (files : ProjFiles) =
>     let rec loop = function
>         | ProjFilesTree.File(module_id,path,_) -> f module_id path
>         | ProjFilesTree.Directory(_,_,l) -> list l
>     and list l = List.iter loop l
>     list files.tree
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### proj_file_get_input
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let proj_file_get_input uids_file (x : ProjFiles) =
>     let d = Dictionary(Array.length uids_file)
>     proj_file_iter_file (fun mid path -> d.Add(path, Array.get uids_file mid |> 
> fst)) x
>     d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### proj_file_from_schema
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let proj_file_from_schema (x : Schema) : ProjFiles =
>     let mutable num_files = 0
>     let mutable num_dirs = 0
>     let rec loop = function
>         | FileHierarchy.File(_,(_,path),name) -> 
>             let uid = num_files
>             num_files <- num_files + 1
>             let path' = path |> SpiralFileSystem.standardize_path
>             trace Verbose (fun () -> $"ServerUtils.proj_file_from_schema / path:
> {path} / path': {path'}") _locals
>             ProjFilesTree.File(uid,path',name)
>         | FileHierarchy.Directory(_,_,name,l) ->
>             let uid = num_dirs
>             num_dirs <- num_dirs + 1
>             ProjFilesTree.Directory(uid,name,list l)
>     and list l = List.map loop l
>     let tree = list x.modules
>     { tree = tree; num_files = num_files; num_dirs = num_dirs }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### proj_file_make_input
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline proj_file_make_input f (files : ProjFiles) =
>     let ar = Array.zeroCreate files.num_files
>     proj_file_iter_file (fun mid path -> ar.[[mid]] <- f mid path) files
>     ar
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### dirty_nodes_template
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline dirty_nodes_template funs (ids : Map<string, PackageId>) (packages : 
> SchemaEnv) modules
>         (state : Map<PackageId,_>) (dirty_packages : string HashSet) =
>     let d = Dictionary<string,_ [[]] * ProjFiles>()
>     dirty_packages |> Seq.iter (fun path ->
>         let path' = path |> SpiralFileSystem.standardize_path
>         trace Verbose (fun () -> $"ServerUtils.dirty_nodes_template / path: 
> {path} / path': {path'}") _locals
>         match Map.tryFind path' ids with
>         | Some pid ->
>             match Map.tryFind pid state with
>             | Some x -> 
>                 let modules = modules pid
>                 let files = proj_file_from_schema packages.[[path']].schema
>                 let state = 
>                     let state = proj_file_get_input x.files.uids_file 
> x.files.files
>                     proj_file_make_input (fun mid path ->
>                         trace Verbose (fun () -> 
> $"ServerUtils.dirty_nodes_template / proj_file_make_input / path: {path} / 
> path': {path'}") _locals
>                         match state.TryGetValue(path) with
>                         | true, x -> wdiff_file_update_input funs x (modules mid
> path)
>                         | false, _ -> funs.init (modules mid path)
>                         ) files
>                 d.Add(path',(state,files))
>             | None -> ()
>         | None -> ()
>         )
>     d
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### dirty_nodes_tc
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let dirty_nodes_tc (ids : Map<string, PackageId>) (packages : SchemaEnv) 
> (modules : ModuleEnv)
>         (state : Map<PackageId,ProjStateTC>) (dirty_packages : string HashSet) =
>     dirty_nodes_template funs_file_tc ids packages (fun pid mid path -> pid, 
> mid, modules.[[path]].bundler) state dirty_packages
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### dirty_nodes_prepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let dirty_nodes_prepass (ids : Map<string, PackageId>) (packages : SchemaEnv) 
> (modules : Map<PackageId,ProjStateTC>)
>         (state : Map<PackageId,ProjStatePrepass>) (dirty_packages : string 
> HashSet) =
>     let modules pid =
>         let x = modules.[[pid]]
>         let state = proj_file_get_input x.files.uids_file x.files.files
>         fun (mid : ModuleId) path -> pid, mid, path, state.[[path]].result
>     dirty_nodes_template funs_file_prepass ids packages modules state 
> dirty_packages
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_projenvr
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_projenvr default_env dirty_nodes funs_proj_package funs_proj_file 
>         ids packages modules (state : ResultMap<PackageId,_>) (dirty_packages, 
> order) =
>     let state = wdiff_projenvr_sync_schema default_env funs_proj_package 
> funs_proj_file ids packages state order
>     let dirty_packages = dirty_nodes ids packages modules state.ok 
> dirty_packages
>     {state with ok=projenv_update_packages default_env funs_proj_package 
> funs_proj_file ids packages state.ok (dirty_packages, order)}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_projenvr_tc
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_projenvr_tc default_env ids packages modules state (dirty_packages, 
> order) =
>     wdiff_projenvr default_env dirty_nodes_tc funs_proj_package_tc 
> funs_proj_file_tc 
>         ids packages modules state (dirty_packages, order)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### wdiff_projenvr_prepass
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let wdiff_projenvr_prepass default_env ids packages modules state 
> (dirty_packages, order) =
>     wdiff_projenvr default_env dirty_nodes_prepass funs_proj_package_prepass 
> funs_proj_file_prepass 
>         ids packages modules state (dirty_packages, order)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### LoadResult
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type LoadResult =
>     | LoadModule of path: string * ModuleState option
>     | LoadPackage of package_dir: string * SchemaState option
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### is_top_down
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> open System.Threading.Tasks
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let is_top_down (x : string) = Path.GetExtension x = ".spi"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### spiproj_suffix
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let spiproj_suffix x = Path.Combine(x,"package.spiproj")
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### loader_package
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let loader_package default_env (packages : SchemaEnv) (modules : ModuleEnv) 
> (pdir, text) =
>     let pdir' = pdir |> SpiralFileSystem.standardize_path
>     trace Verbose (fun () -> $"ServerUtils.loader_package / pdir: {pdir} / 
> pdir': {pdir'}") _locals
>     let pdir = pdir'
>     let queue = Queue()
>     let load_module modules path =
>         match Map.tryFind path modules with
>         | Some _ -> ()
>         | None ->
>             task {
>                 if File.Exists path then
>                     try let! x = File.ReadAllTextAsync(path)
>                         return LoadModule(path,wdiff_module_init_all default_env
> (is_top_down path) x |> Some)
>                     with _ -> return LoadModule(path,None)
>                 else return LoadModule(path,None) // Note: We need this case 
> otherwise 'con' might cause the file read to deadlock. 
> https://superuser.com/questions/86999/why-cant-i-name-a-folder-or-file-con-in-wi
> ndows
>             } |> queue.Enqueue
> 
>     let schema (pdir,text) = schema (pdir,text) |> fun x -> 
> LoadPackage(pdir,Some (ss_from_result x))
>     let load_package_from_disk packages pdir =
>         trace Verbose (fun () -> 
> $"ServerUtils.loader_package.load_package_from_disk / pdir: {pdir}") _locals
>         task {
>             if Directory.Exists pdir then
>                 try
>                     let! x = File.ReadAllTextAsync(spiproj_suffix pdir)
>                     return schema (pdir,x)
>                 with _ ->
>                     return LoadPackage(pdir,None)
>             else return LoadPackage(pdir,None) // Ditto.
>         } |> queue.Enqueue
>     let load_package_some (pdir,text) =
>         trace Verbose (fun () -> $"ServerUtils.loader_package.load_package_some 
> / pdir: {pdir}") _locals
>         schema (pdir,text) |> Task.FromResult |> queue.Enqueue
>     let load_package_none packages pdir =
>         let pdir' = pdir |> SpiralFileSystem.standardize_path
>         trace Verbose (fun () -> $"ServerUtils.loader_package.load_package_none 
> / pdir: {pdir} / pdir': {pdir'}") _locals
>         let pdir = pdir'
>         match Map.tryFind pdir packages with
>         | Some _ -> ()
>         | None -> load_package_from_disk packages pdir
> 
>     let dirty_packages = HashSet()
>     let rec invalidate_parent packages (x : DirectoryInfo) =
>         if x <> null then
>             let x' = x.FullName |> SpiralFileSystem.standardize_path
>             // trace Verbose (fun () -> 
> $"""ServerUtils.loader_package.invalidate_parent / x.FullName: {x.FullName |> 
> SpiralSm.replace "\\" "|"} / x': {x'} / packages: %A{packages |> Map.keys} / 
> pdir: {pdir}""") _locals
>             let x_ = x
>             let x = {| FullName = x' |}
>             if Map.containsKey x.FullName packages then 
> dirty_packages.Add(x.FullName) |> ignore
>             else invalidate_parent packages x_.Parent
> 
>     let mutable packages = packages
>     let mutable modules = modules
> 
>     match text with
>     | Some text -> load_package_some (pdir,text)
>     | None ->
>         // trace Verbose (fun () -> $"ServerUtils.loader_package / pdir: 
> {pdir}") _locals
>         match Map.tryFind pdir packages with
>         | Some x -> LoadPackage(pdir,Some x) |> Task.FromResult |> queue.Enqueue
>         | None -> load_package_from_disk packages pdir
> 
>     while 0 < queue.Count do
>         match queue.Dequeue().Result with
>         | LoadPackage(pdir,Some x) -> 
>             let pdir' = pdir |> SpiralFileSystem.standardize_path
>             // trace Verbose (fun () -> $"ServerUtils.loader_package.LoadPackage
> / pdir: {pdir} / pdir': {pdir'}") _locals
>             packages <- Map.add pdir' x packages; dirty_packages.Add(pdir') |> 
> ignore; invalidate_parent packages (Directory.GetParent(pdir'))
>             x.schema.packages |> List.iter (fun x -> load_package_none packages 
> (snd x.dir))
>             let rec loop = function
>                 | FileHierarchy.Directory(_,_,_,l) -> list l
>                 | FileHierarchy.File(_,(_,path),_) ->
>                     let path' = path |> SpiralFileSystem.standardize_path
>                     trace Verbose (fun () -> 
> $"ServerUtils.loader_package.LoadPackage | FileHierarchy.File(_,(_,path),_) / 
> path: {path} / path': {path'}") _locals
>                     load_module modules path'
>             and list l = List.iter loop l
>             list x.schema.modules
>         | LoadPackage(pdir,None) -> packages <- Map.remove pdir packages; 
> dirty_packages.Add(pdir) |> ignore; invalidate_parent packages 
> (Directory.GetParent(pdir))
>         | LoadModule(mdir,Some x) ->
>             let mdir' = mdir |> SpiralFileSystem.standardize_path
>             trace Verbose (fun () -> $"ServerUtils.loader_package.LoadModule / 
> mdir: {mdir} / mdir': {mdir'}") _locals
>             modules <- Map.add mdir' x modules
>         | LoadModule(mdir,None) -> modules <- Map.remove mdir modules
>     packages, dirty_packages, modules
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### graph_update
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let graph_update (packages : SchemaEnv) (g : MirroredGraph) (dirty_packages : 
> string HashSet) =
>     Seq.fold (fun g x ->
>         match Map.tryFind x packages with
>         | Some v -> links_replace g x (v.schema.packages |> List.map (fun x -> 
> snd x.dir))
>         | None -> links_remove g x
>         ) g dirty_packages
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### package_ids_update
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let package_ids_update (packages : SchemaEnv) package_ids (dirty_packages : 
> string HashSet) =
>     let adds,removals = dirty_packages |> Seq.toArray |> Array.partition (fun x 
> -> Map.containsKey x packages)
>     let adds = adds |> Array.filter (fun x -> Map.containsKey x (fst 
> package_ids) = false) |> Array.mapi (fun i x -> (i,x))
>     let package_ids, removed_pids = removals |> Array.fold (fun ((a,b),l as s) x
> -> match Map.tryFind x a with Some x' -> (Map.remove x a, Map.remove x' b), x' 
> :: l | None -> s) (package_ids,[[]])
>     removed_pids,
>     if Array.isEmpty adds then package_ids else
>     Map.fold (fun s x _ ->
>         Array.mapFold (fun s x -> if s = fst x then (s+1, snd x),s+1 else x,s) x
> s |> fst
>         ) adds (snd package_ids)
>     |> Array.fold (fun (a,b) (k,v) -> Map.add v k a, Map.add k v b) package_ids
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### package_ids_remove
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let package_ids_remove (s : ResultMap<PackageId,_>) l =
>     List.fold (fun s x -> {ok=Map.remove x s.ok; error=Map.remove x s.error}) s 
> l
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## SignalRSupervisor
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.ref/7.0.11/ref/n
> et7.0/Microsoft.AspNetCore.SignalR.Core.dll"
> // #r 
> @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll"
> // #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.com
> mon/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Common.dll"
> // #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.cli
> ent/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Client.dll"
> // #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.common/7.0.0
> /lib/net7.0/Microsoft.AspNetCore.SignalR.Common.dll"
> // #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client/7.0.0
> /lib/net7.0/Microsoft.AspNetCore.SignalR.Client.dll"
> // #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client.core/
> 7.0.0/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.Core.dll"
> // #r 
> @"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha
> rp.Json.dll"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // open System
> open System.IO
> open System.Collections.Generic
> 
> open Hopac
> open Hopac.Infixes
> open Hopac.Extensions
> open Hopac.Stream
> 
> // open Common
> open SpiralFileSystem.Operators
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### LocalizedErrors
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type LocalizedErrors = {|uri : string; errors : RString list|}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### TracedError
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type TracedError = {|trace : string list; message : string|}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### SupervisorErrorSources
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type SupervisorErrorSources = {
>     fatal : string Ch
>     tokenizer : LocalizedErrors Ch
>     parser : LocalizedErrors Ch
>     typer : LocalizedErrors Ch
>     package : LocalizedErrors Ch
>     traced : TracedError Ch
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### SupervisorReq
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type SupervisorReq =
>     | ProjectFileOpen of {|uri : string; spiprojText : string|}
>     | ProjectFileChange of {|uri : string; spiprojText : string|}
>     | ProjectFileLinks of {|uri : string|} * RString list IVar
>     | ProjectCodeActions of {|uri : string|} * RAction list IVar
>     | ProjectCodeActionExecute of {|uri : string; action : ProjectCodeAction|} *
> {|result : string option|} IVar
>     | FileOpen of {|uri : string; spiText : string|}
>     | FileChange of {|uri : string; spiEdit : SpiEdit|}
>     | FileDelete of {|uris : string [[]]|}
>     | FileTokenRange of {|uri : string; range : VSCRange|} * int [[]] IVar
>     | HoverAt of {|uri : string; pos : VSCPos|} * string option IVar
>     | BuildFile of {|uri : string; backend : string|} * string option IVar
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### SupervisorState
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type SupervisorState = {
>     packages : SchemaEnv
>     modules : ModuleEnv
>     packages_infer : ResultMap<PackageId,ProjStateTC>
>     packages_prepass : ResultMap<PackageId,ProjStatePrepass>
>     graph : MirroredGraph
>     package_ids : Map<string,int> * Map<int,string>
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### proj_validate
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let proj_validate default_env s dirty_packages =
>     let order,socs = circular_nodes s.graph dirty_packages
>     let packages = ss_validate s.packages s.modules (order,socs)
>     let packages_infer = wdiff_projenvr_tc default_env (fst s.package_ids) 
> packages s.modules s.packages_infer (dirty_packages, order)
>     order, {s with packages_infer = packages_infer; packages=packages}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### proj_graph_update
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let proj_graph_update default_env s dirty_packages =
>     let removed_pids,package_ids = package_ids_update s.packages s.package_ids 
> dirty_packages
>     let packages_infer, packages_prepass = package_ids_remove s.packages_infer 
> removed_pids, package_ids_remove s.packages_prepass removed_pids
>     let graph = graph_update s.packages s.graph dirty_packages
>     proj_validate default_env {s with graph = graph; package_ids = package_ids; 
> packages_infer = packages_infer; packages_prepass = packages_prepass} 
> dirty_packages
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### proj_open
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let proj_open default_env s (dir, text) =
>     let packages,dirty_packages,modules = loader_package default_env s.packages 
> s.modules (dir,text)
>     proj_graph_update default_env {s with packages = packages; modules = 
> modules} dirty_packages
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### proj_revalidate_owner
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let proj_revalidate_owner default_env s file =
>     let rec loop (x : DirectoryInfo) =
>         if x = null then [[||]], s
>         else
>             let x' = x.FullName |> SpiralFileSystem.standardize_path
>             // trace Verbose (fun () -> $"""Supervisor.proj_revalidate_owner / 
> x.FullName: {x.FullName |> SpiralSm.replace "\\" "|"} / x': {x'}""") _locals
>             let x_ = x
>             let x = {| FullName = x' |}
>             if Map.containsKey x.FullName s.packages then proj_validate 
> default_env s (HashSet [[x.FullName]])
>             elif File.Exists(spiproj_suffix x.FullName) then proj_open 
> default_env s (x.FullName,None)
>             else loop x_.Parent
>     loop (Directory.GetParent(file))
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### file_delete
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let file_delete default_env s (files : string [[]]) =
>     let deleted_modules = HashSet()
>     let deleted_packages = HashSet()
>     files |> Array.iter (fun k ->
>         s.packages |> Map.iter (fun k' _ -> if (spiproj_suffix k').StartsWith(k)
> then deleted_packages.Add(k') |> ignore)
>         s.modules |> Map.iter (fun k' _ -> if k'.StartsWith(k) then 
> deleted_modules.Add(k') |> ignore)
>         )
>     let modules = Seq.foldBack Map.remove deleted_modules s.modules
>     let packages = Seq.foldBack Map.remove deleted_packages s.packages
>     let dirty_packages = HashSet(deleted_packages)
>     let revalidate_parent (x : string) =
>         trace Verbose (fun () -> $"Supervisor.file_delete.revalidate_parent.loop
> / x.FullName: {x}") _locals
>         let rec loop (x : DirectoryInfo) =
>             if x <> null then
>                 let x' = x.FullName |> SpiralFileSystem.standardize_path
>                 let x = DirectoryInfo x'
>                 if Map.containsKey x.FullName s.packages then 
> dirty_packages.Add(x.FullName) |> ignore
>                 else loop x.Parent
>         loop(Directory.GetParent x)
>     Seq.iter revalidate_parent deleted_modules; Seq.iter revalidate_parent 
> deleted_packages
>     Seq.toArray deleted_modules, proj_graph_update default_env {s with modules =
> modules; packages = packages} dirty_packages
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### AttentionState
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type AttentionState = {
>     modules : string Set * string list
>     packages : string Set * string list
>     old_packages : SchemaEnv
>     supervisor : SupervisorState
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### attention_server
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let attention_server (errors : SupervisorErrorSources) (req : _ Ch) =
>     let push path (s,o) = Set.add path s, path :: o
>     let add (s,o) l = Array.foldBack (fun x (s,o as z) -> if Set.contains x s 
> then z else Set.add x s, x :: o) l (s,o)
>     let update (s : AttentionState) (modules,packages,supervisor) = {modules = 
> add s.modules modules; packages = add s.packages packages; supervisor = 
> supervisor; old_packages = s.supervisor.packages}
>     let rec loop (s : AttentionState) =
>         let clear uri =
>             Hopac.start (Ch.send errors.tokenizer {|uri=uri; errors=[[]]|})
>             Hopac.start (Ch.send errors.parser {|uri=uri; errors=[[]]|})
>             Hopac.start (Ch.send errors.typer {|uri=uri; errors=[[]]|})
>         let send_tokenizer uri x = Hopac.start (Ch.send errors.tokenizer 
> {|uri=uri; errors=x|})
>         let clear_parse uri = Hopac.start (Ch.send errors.parser {|uri=uri; 
> errors=[[]]|})
>         let clear_typer uri = Hopac.start (Ch.send errors.typer {|uri=uri; 
> errors=[[]]|})
>         let clear_old_package x = Map.tryFind x s.old_packages |> Option.iter 
> (fun x ->
>             let rec loop = function
>                 | FileHierarchy.File(_,(_,pdir),_) -> clear (file_uri pdir)
>                 | FileHierarchy.Directory(_,_,_,l) -> list l
>             and list l = List.iter loop l
>             list x.schema.modules
>             )
> 
>         let inline body uri interrupt ers ers' src next =
>             Ch.Try.take req >>= function
>             | Some x -> interrupt x
>             | None ->
>                 if List.isEmpty ers then next ers'
>                 else
>                     let ers = List.append ers ers'
>                     Hopac.start (Ch.send src {|uri=uri; errors=ers|})
>                     next ers
> 
>         let loop_module (s : AttentionState) mpath (m : ModuleState) =
>             let mpath' = mpath |> SpiralFileSystem.standardize_path
>             let uri = file_uri mpath
>             trace Verbose (fun () -> 
> $"Supervisor.attention_server.loop.loop_module / mpath: {mpath} / mpath': 
> {mpath'} / uri: {uri}") _locals
>             let mpath = mpath'
>             
> 
>             
>             let interrupt x = loop (update {s with modules=push mpath s.modules}
> x)
>             let rec bundler (r : BlockBundleState) ers' = r >>= function
>                 | Cons((_,x),rs) -> body uri interrupt x.errors ers' 
> errors.parser (bundler rs)
>                 | Nil -> loop s
>             send_tokenizer uri m.tokenizer.errors
>             clear_parse uri
>             clear_typer uri
>             bundler m.bundler [[]]
> 
>         let rec loop_package (s : AttentionState) pdir = function
>             | (mpath,l) :: ls ->
>                 let mpath' = mpath |> SpiralFileSystem.standardize_path
>                 let uri = file_uri mpath
>                 let pdir' = pdir |> SpiralFileSystem.standardize_path
>                 trace Verbose (fun () -> 
> $"Supervisor.attention_server.loop.loop_package / mpath: {mpath} / mpath': 
> {mpath'} / uri: {uri} / pdir: {pdir} / pdir': {pdir'}") _locals
>                 let interrupt x = loop (update {s with packages=push pdir 
> s.packages} x)
>                 let rec typer (r : TypecheckerStateValue Stream) ers' = r >>= 
> function
>                     | Cons((_,x,_),rs) -> body uri interrupt x.errors ers' 
> errors.typer (typer rs)
>                     | Nil -> loop_package s pdir' ls
>                 let rec bundler (r : BlockBundleState) ers' = r >>= function
>                     | Cons((_,x),rs) -> body uri interrupt x.errors ers' 
> errors.parser (bundler rs)
>                     | Nil -> clear_typer uri; typer l [[]]
>                 let m = s.supervisor.modules.[[mpath']]
>                 send_tokenizer uri m.tokenizer.errors
>                 clear_parse uri
>                 bundler m.bundler [[]]
>             | [[]] -> loop s
> 
>         let package s =
>             match s.packages with
>             | se,x :: xs ->
>                 let x' = x |> SpiralFileSystem.standardize_path
>                 trace Verbose (fun () -> 
> $"Supervisor.attention_server.loop.package / x: {x} / x': {x'}") _locals
>                 let x = x'
>                 let s = {s with packages=Set.remove x se,xs}
>                 let package_errors =
>                     match Map.tryFind x s.supervisor.packages with
>                     | Some v -> List.concat [[v.errors_parse; v.errors_modules; 
> v.errors_packages]]
>                     | None -> [[]]
>                 Hopac.start (Ch.send errors.package 
> ({|uri=file_uri(spiproj_suffix x); errors=package_errors|}))
>                 clear_old_package x
>                 match Map.tryFind x (fst s.supervisor.package_ids) with
>                 | Some uid ->
>                     match Map.tryFind uid s.supervisor.packages_infer.ok with
>                     | Some v ->
>                         let path_tcvals =
>                             let uids_file = v.files.uids_file
>                             let rec loop x s =
>                                 match x with
>                                 | ProjFilesTree.File(mid,path,_) ->
>                                     let path' = path |> 
> SpiralFileSystem.standardize_path
>                                     trace Verbose (fun () -> 
> $"Supervisor.attention_server.loop | WDiff.File(mid,path,_) / path: {path} / 
> path': {path'}") _locals
>                                     (path', (fst uids_file.[[mid]]).result) :: s
>                                 | ProjFilesTree.Directory(_,_,l) -> list l s
>                             and list l s = List.foldBack loop l s
>                             list v.files.files.tree [[]]
>                         loop_package s x path_tcvals
>                     | None -> loop s
>                 | None -> loop s
>             | _, [[]] -> req >>= (update s >> loop)
> 
>         match s.modules with
>         | se,x :: xs ->
>             let s = {s with modules=Set.remove x se,xs}
>             match Map.tryFind x s.supervisor.modules with
>             | Some v -> loop_module s x v
>             | None -> clear (file_uri x); package s
>         | _,[[]] -> package s
> 
>     (req >>= fun (modules,packages,supervisor) ->
>         loop {modules = Set.ofArray modules, Array.toList modules; packages = 
> Set.ofArray packages, Array.toList packages; supervisor = supervisor; 
> old_packages = Map.empty}
>         )
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### show_position
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let show_position (s : SupervisorState) (x : Range) =
>     let line = (fst x.range).line
>     let col = (fst x.range).character
>     let er_code = s.modules.[[x.path]].tokenizer.lines_text.[[line]]
>     System.Text.StringBuilder()
>         .AppendLine(sprintf "Error trace on line: %i, column: %i in module: %s."
> (line+1) (col+1) x.path)
>         .AppendLine(er_code)
>         .Append(' ',col)
>         .AppendLine("^")
>         .ToString()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### show_trace
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let show_trace s (x : Trace) (msg : string) =
>     let rec loop (l : Trace) = function
>         | (x : Range) :: xs ->
>             match l with
>             | x' :: _ when x.path = x'.path && fst x.range = fst x'.range -> 
> loop l xs
>             | _ -> loop (x :: l) xs
>         | _ -> l
>     List.map (show_position s) (loop [[]] x), msg
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### BuildResult
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type BuildResult =
>     | BuildOk of {|code: string; file_extension : string|} list
>     | BuildErrorTrace of string list * string
>     | BuildFatalError of string
>     | BuildSkip
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### workspaceRoot
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let workspaceRoot = SpiralFileSystem.get_workspace_root ()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### targetDir
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let targetDir = workspaceRoot </> "target/spiral_Eval"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### traceDir
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let traceDir = targetDir </> "supervisor_trace"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### dir
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let dir uri =
>     let result = 
> System.IO.FileInfo(System.Uri(uri).LocalPath).Directory.FullName
>     let result' = result |> SpiralFileSystem.standardize_path
>     trace Verbose (fun () -> $"Supervisor.dir / uri: {uri} / result: {result} / 
> result': {result'}") _locals
>     result'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### file
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let file uri =
>     let result =
>         try
>             System.IO.FileInfo(System.Uri(uri).LocalPath).FullName
>         with ex ->
>             trace Verbose (fun () -> $"Supervisor.file / uri: {uri} / ex: 
> %A{ex}") _locals
>             uri
>     let result' = result |> SpiralFileSystem.standardize_path
>     // let result = result |> SpiralSm.replace "\\" "|"
>     // trace Verbose (fun () -> $"Supervisor.file / uri: {uri} / result: 
> {result} / result': {result'}") _locals
>     result'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### supervisor_server
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let supervisor_server (default_env : DefaultEnv) atten (errors : 
> SupervisorErrorSources) req =
>     let fatal x = Hopac.start (Ch.send errors.fatal x)
>     let handle_packages (dirty_packages,s) = Hopac.start (Ch.send atten 
> ([[||]],dirty_packages,s)); s
>     let handle_file_packages file (dirty_packages,s) = Hopac.start (Ch.send 
> atten ([[|file|]],dirty_packages,s)); s
>     let handle_files_packages (dirty_files,(dirty_packages,s)) = Hopac.start 
> (Ch.send atten (dirty_files,dirty_packages,s)); s
>     let loop (s : SupervisorState) = req >>- function
>         | ProjectFileChange x | ProjectFileOpen x -> proj_open default_env s 
> (dir x.uri,Some x.spiprojText) |> handle_packages
>         | FileOpen x ->
>             let file = file x.uri
>             // trace Verbose (fun () -> 
> $"Supervisor.supervisor_server.loop.FileOpen / x: %A{x} / file: {file}") _locals
>             match Map.tryFind file s.modules with
>             | Some m -> wdiff_module_all default_env m x.spiText
>             | None -> wdiff_module_init_all default_env (is_top_down file) 
> x.spiText
>             |> fun v -> proj_revalidate_owner default_env {s with modules = 
> Map.add file v s.modules} file
>             |> handle_file_packages file
>         | FileChange x ->
>             let file = file x.uri
>             trace Verbose (fun () -> 
> $"Supervisor.supervisor_server.loop.FileChange / x: %A{x} / file: {file}") 
> _locals
>             match Map.tryFind file s.modules with
>             | None -> fatal "It is not possible to apply a change to a file that
> is not present in the environment. Try reopening it in the editor."; s
>             | Some m ->
>                 match wdiff_module_edit default_env m x.spiEdit with
>                 | Result.Ok v -> proj_revalidate_owner default_env {s with 
> modules = Map.add file v s.modules} file |> handle_file_packages file
>                 | Result.Error er -> fatal er; s
>         | FileDelete x ->
>             trace Verbose (fun () -> 
> $"Supervisor.supervisor_server.loop.FileDelete / x: {x}") _locals
>             file_delete default_env s (Array.map file x.uris) |> 
> handle_files_packages
>         | ProjectFileLinks(x,res) ->
>             let l =
>                 match Map.tryFind (dir x.uri) s.packages with
>                 | None -> [[]]
>                 | Some x ->
>                     let mutable l = [[]]
>                     x.schema.packages |> List.iter (fun x ->
>                         let r,dir = x.dir
>                         trace Verbose (fun () -> 
> $"Supervisor.supervisor_server.ProjectFileLinks / x.schema.packages |> List.iter
> / dir: {dir}") _locals
>                         if Map.containsKey dir s.packages then l <- (r,file_uri 
> (spiproj_suffix dir)) :: l
>                         )
>                     let rec loop = function
>                         | FileHierarchy.Directory(_,_,_,l) -> list l
>                         | FileHierarchy.File(_,(r,path),_) ->
>                             trace Verbose (fun () -> 
> $"Supervisor.supervisor_server.ProjectFileLinks.loop | 
> SpiProj.FileHierarchy.File(_,(r,path),_) / path: {path}") _locals
>                             if Map.containsKey path s.modules then l <- 
> (r,file_uri path) :: l
>                     and list l = List.iter loop l
>                     list x.schema.modules
>                     l
>             Hopac.start (IVar.fill res l)
>             s
>         | ProjectCodeActions(x,res) ->
>             let z =
>                 match Map.tryFind (dir x.uri) s.packages with
>                 | None -> [[]]
>                 | Some x ->
>                     let mutable z = [[]]
>                     let actions_dir (r,path) =
>                         match r with
>                         | None -> ()
>                         | Some r ->
>                             if Directory.Exists(path) then
>                                 z <- (r,RenameDirectory {|dirPath=path; 
> target=null; validate_as_file=false|}) :: (r,DeleteDirectory {|dirPath=path; 
> range=r|}) :: z
>                             else
>                                 z <- (r,CreateDirectory {|dirPath=path|}) :: z
>                     actions_dir x.schema.moduleDir
>                     actions_dir x.schema.packageDir
> 
>                     let rec actions_module = function
>                         | FileHierarchy.Directory(r',(r,path),_,l) ->
>                             trace Verbose (fun () -> 
> $"Supervisor.supervisor_server.ProjectCodeActions.actions_module | 
> SpiProj.FileHierarchy.Directory(r',(r,path),_,l) / path: {path}") _locals
>                             if Directory.Exists(path) then
>                                 z <- (r,RenameDirectory {|dirPath=path; 
> target=null; validate_as_file=true|}) :: (r,DeleteDirectory {|dirPath=path; 
> range=r'|}) :: z
>                             else
>                                 z <- (r,CreateDirectory {|dirPath=path|}) :: z
>                             actions_modules l
>                         | FileHierarchy.File(r',(r,path),_) ->
>                             trace Verbose (fun () -> 
> $"Supervisor.supervisor_server.ProjectCodeActions.actions_module | 
> SpiProj.FileHierarchy.File(r',(r,path),_) / path: {path}") _locals
>                             if Map.containsKey path s.modules then
>                                 z <- (r,RenameFile {|filePath=path; 
> target=null|}) :: (r,DeleteFile {|range=r'; filePath=path|}) :: z
>                             else
>                                 z <- (r,CreateFile {|filePath=path|}) :: z
>                     and actions_modules l = List.iter actions_module l
>                     actions_modules x.schema.modules
>                     z
>             Hopac.start (IVar.fill res z)
>             s
>         | ProjectCodeActionExecute(x,res) ->
>             let error, s =
>                 match code_action_execute x.action with
>                 | Result.Error x -> Some x, s
>                 | Result.Ok null -> None, proj_open default_env s (dir 
> x.uri,None) |> handle_packages
>                 | Result.Ok path -> None, file_delete default_env s [[|path|]] 
> |> handle_files_packages
>             Hopac.start (IVar.fill res {|result=error|})
>             s
>         | FileTokenRange(x, res) ->
>             let v =
>                 match Map.tryFind (file x.uri) s.modules with
>                 | Some v -> Some v
>                 | None when x.uri |> SpiralSm.ends_with ".dib" ->
>                     x.uri
>                     |> SpiralSm.replace "file:///" ""
>                     |> File.ReadAllText
>                     |> wdiff_module_init_all default_env (is_top_down x.uri)
>                     |> Some
>                 | None -> None
> 
>             match v with
>             | Some v ->
>                 Hopac.start (semantic_tokens v.parser >>= (vscode_tokens x.range
> >> IVar.fill res))
>             | None ->
>                 if x.uri |> SpiralSm.starts_with "vscode-notebook-cell" |> not 
> then
>                     trace Debug
>                         (fun () -> 
> $"Supervisor.supervisor_server.FileTokenRange")
>                         (fun () -> $"module=None / x.uri: {x.uri} / {_locals 
> ()}")
> 
>                 Hopac.start (IVar.fill res [[||]])
>             s
>         | HoverAt(x,res) ->
>             let file = file x.uri
>             let pos = x.pos
>             let _locals () = $"x: %A{x} / file: {file} / res: %A{res}"
>             trace Verbose (fun () -> $"Supervisor.supervisor_server.HoverAt") 
> _locals
>             let go_hover x =
>                 match x with
>                 | None -> None
>                 | Some (x : InferResult) ->
>                     x.hovers |> Array.tryPick (fun ((a,b),r) ->
>                         if pos.line = a.line && (a.character <= pos.character &&
> pos.character < b.character) then Some r else None
>                         )
>                 |> (fun x ->
>                     let _locals () = $"x: %A{x}"
>                     trace Verbose (fun () -> 
> $"Supervisor.supervisor_server.HoverAt.go_hover") _locals
>                     x
>                 )
>                 |> IVar.fill res
>             let go_block (x : TypecheckerState) =
>                 let rec loop s (x : TypecheckerStateValue Stream) =
>                     x >>= function
>                     | Nil -> go_hover s
>                     | Cons((_,x,_),b) ->
>                         let _locals () = $"b: {b}"
>                         trace Verbose (fun () -> 
> $"Supervisor.supervisor_server.HoverAt.go_block.loop Cons") _locals
>                         if x.offset <= pos.line then loop (Some x) b
>                         // If the block is over the offset that means the 
> previous one must be the right choice.
>                         else go_hover s
>                 Hopac.start (loop None x.result)
>             let rec go_file uids_file trees =
>                 let rec loop = function
>                     | ProjFilesTree.File(uid,file',_) -> if file = file' then 
> go_block (Array.get uids_file uid |> fst); true else false
>                     | ProjFilesTree.Directory(_,_,l) -> list l
>                 and list l = List.exists loop l
>                 list trees
>             let rec go_parent (x : DirectoryInfo) =
>                 trace Verbose (fun () -> 
> $"Supervisor.supervisor_server.HoverAt.go_parent / x: %A{x}") _locals
>                 if x = null then false
>                 else
>                     let path = x.FullName |> SpiralFileSystem.standardize_path
>                     if Map.containsKey path s.packages then
>                         let pid = (fst s.package_ids).[[path]]
>                         match Map.tryFind pid s.packages_infer.ok with
>                         | None -> false
>                         | Some x -> go_file x.files.uids_file x.files.files.tree
>                     else
>                         go_parent x.Parent
>             if go_parent (Directory.GetParent(file)) = false then Hopac.start 
> (IVar.fill res None)
>             s
>         | BuildFile (x, res) ->
>             let backend = x.backend
>             let file = file x.uri
>             let _locals () = $"x: %A{x} / file: {file}"
>             trace Verbose (fun () -> $"Supervisor.supervisor_server.BuildFile") 
> _locals
>             let handle_build_result = function
>                 | BuildOk l ->
>                     Job.fromAsync (async {
>                         for x in l do
>                             do! 
> System.IO.File.WriteAllTextAsync(System.IO.Path.ChangeExtension(file,x.file_exte
> nsion), x.code) |> Async.AwaitTask
>                     })
>                     |> Hopac.start
>                     l
>                     |> List.map (fun x -> x.code)
>                     |> String.concat "\n"
>                     |> Some
>                     |> IVar.fill res
>                 | BuildFatalError x as x' ->
>                     trace Info (fun () -> 
> $"Supervisor.supervisor_server.BuildFile.handle_build_result / BuildFatalError 
> x: %A{x}") _locals
>                     Hopac.start (Ch.send errors.fatal x)
>                     IVar.fill res None
>                 | BuildErrorTrace(a,b) as x' ->
>                     trace Info (fun () -> 
> $"Supervisor.supervisor_server.BuildFile.handle_build_result / BuildErrorTrace 
> x': %A{x'}") _locals
>                     Hopac.start (Ch.send errors.traced {|trace=a; message=b|})
>                     IVar.fill res None
>                 | BuildSkip ->
>                     trace Info (fun () -> 
> $"Supervisor.supervisor_server.BuildFile.handle_build_result.BuildSkip") _locals
>                     IVar.fill res None
>             let file_build (s : SupervisorState) mid (tc : ProjStateTC, prepass 
> : ProjStatePrepass) =
>                 trace Verbose (fun () -> 
> $"""Supervisor.supervisor_server.BuildFile.file_build / modules: 
> %A{s.modules.Keys |> SpiralSm.concat ", "} / packages: %A{s.packages.Keys |> 
> SpiralSm.concat ", "} / package_ids: %A{s.package_ids |> fst |> fun x -> x.Keys 
> |> SpiralSm.concat ", "}""") _locals
>                 let a,b = tc.files.uids_file.[[mid]]
>                 let x,_x = prepass.files.uids_file.[[mid]]
>                 Hopac.start (a.state >>= fun (has_error',_) ->
>                     b >>= fun (has_error,_) ->
>                     if has_error || has_error' then fatal $"File 
> {Path.GetFileNameWithoutExtension file} has a type error somewhere in its 
> path."; Job.unit() else
>                     Stream.foldFun (fun _ (_,_,env) -> env) top_env_emptyPrepass
> x.result >>= fun env ->
>                     let body() =
>                         match Map.tryFind "main" env.term with
>                         | Some main ->
>                             let prototypes_instances = 
> Dictionary(env.prototypes_instances)
>                             let nominals = 
>                                 let t = HashConsTable()
>                                 let d = Dictionary()
>                                 env.nominals |> Map.iter (fun k v -> d.Add(k, 
> t.Add {|v with id=k|}))
>                                 d
>                             try 
>                                 let build codegen backend file_extension =
>                                     let (a,_),b = peval 
> {prototypes_instances=prototypes_instances; nominals=nominals; backend=backend} 
> main
>                                     BuildOk [[{|code = codegen b a; 
> file_extension = file_extension|}]]
>                                 match backend with
>                                 | "Gleam" -> build codegenGleam "Gleam" "gleam"
>                                 | "Fsharp" -> build codegenFsharp "Fsharp" "fsx"
>                                 | "C" -> build CodegenC.codegenC "C" "c"
>                                 | "Python + Cuda" -> build 
> (CodegenPython.codegenPython default_env) "Python" "py"
>                                 | "Cuda C++" -> BuildFatalError "The host C++ 
> backend originally made for FPGAs, and then ported to Cuda has been removed in 
> v2.10.0 of Spiral. Please use an earlier version to access it." // Date: 
> 5/8/2024
>                                 | "Python" -> BuildFatalError "The prototype 
> Python backend has been replaced by the Python + Cuda one in v2.5.0 of Spiral. 
> Please use an earlier version to access it." // Date: 11/3/2023
>                                 | "UPMEM: Python + C" -> BuildFatalError "The 
> UPMEM Python + C backend has been replaced by the Python + Cuda one in v2.5.0 of
> Spiral. Please use an earlier version to access it." // Date: 11/3/2023
>                                 | "HLS C++" -> BuildFatalError "The HLS C++ 
> backend has been replaced by the Cuda one in v2.5.0 of Spiral. Please use an 
> earlier version to access it." // Date: 10/17/2023
>                                 | "Cython*" | "Cython" -> BuildFatalError "The 
> Cython backend has been replaced by the Python one in v2.3.1 of Spiral. Please 
> use an earlier version to access it." // Date: 12/27/2022
>                                 | _ -> BuildFatalError $"Cannot recognize the 
> backend: {backend}"
>                             with
>                                 | :? PartEvalTypeError as e -> 
> BuildErrorTrace(show_trace s e.Data0 e.Data1)
>                                 | :? CodegenError as e -> 
> BuildFatalError(e.Data1)
>                                 | :? CodegenErrorWithPos as e -> 
> BuildErrorTrace(show_trace s e.Data0 e.Data1)
>                                 | ex ->
>                                     if System.IO.Directory.Exists traceDir then
>                                         let guid = System.DateTime.Now |> 
> SpiralDateTime.new_guid_from_date_time
>                                         let trace_file = traceDir </> 
> $"{guid}_error.json"
>                                         async {
>                                             try
>                                                 do! $"{ex}" |> 
> SpiralFileSystem.write_all_text_async trace_file
>                                             with ex ->
>                                                 trace Critical (fun () -> 
> $"Supervisor.supervisor_server.BuildFile.file_build / ex: {ex |> 
> SpiralSm.format_exception}") _locals
>                                         }
>                                         |> Async.Start
>                                     trace Critical (fun () -> 
> $"Supervisor.supervisor_server.BuildFile.file_build / ex: %A{ex}") _locals
>                                     BuildFatalError(ex.Message)
>                         | None -> BuildFatalError $"Cannot find `main` in file 
> {Path.GetFileNameWithoutExtension file}."
> 
>                     // The partial evaluator is using too much stack space, so 
> as a temporary fix, I am running it on a separate thread with much more of it.
>                     let result = IVar()
>                     let thread = new 
> System.Threading.Thread(System.Threading.ThreadStart(body >> IVar.fill result >>
> Hopac.start), 1 <<< 28) // Stack space = 2 ** 28 = 256mb.
>                     thread.Start()
>                     result >>= handle_build_result
>                     )
>             let file_find (s : SupervisorState) pdir =
>                 trace Verbose (fun () -> 
> $"Supervisor.supervisor_server.BuildFile.file_find / pdir: {pdir}") _locals
>                 let uid = (fst s.package_ids).[[pdir]]
>                 match Map.tryFind uid s.packages_infer.ok, Map.tryFind uid 
> s.packages_prepass.ok with
>                 | Some a, Some b ->
>                     let rec loop = function
>                         | ProjFilesTree.Directory(_,_,l) -> list l
>                         | ProjFilesTree.File(mid,path,_) ->
>                             trace Verbose (fun () -> 
> $"Supervisor.supervisor_server.BuildFile.file_find.loop | File(mid,path,_) / 
> path: {path}") _locals
>                             if file = path then file_build s mid (a, b); true 
> else false
>                     and list l = List.exists loop l
>                     if list b.files.files.tree = false then fatal $"File 
> {Path.GetFileNameWithoutExtension file} cannot be found in the project 
> {spiproj_suffix pdir}"
> 
>                     s
>                 | None, None -> fatal $"Owner of file 
> {Path.GetFileNameWithoutExtension file} has an error. Location: {spiproj_suffix 
> pdir}"; s
>                 | _ -> failwith "Compiler error: The project status should be 
> the same in both infer and prepass."
>             let update_owner pdir =
>                 let order,dirty_packages = topological_sort' (fst s.graph) 
> [[pdir]]
>                 let packages_prepass = wdiff_projenvr_prepass default_env (fst 
> s.package_ids) s.packages s.packages_infer.ok s.packages_prepass 
> (dirty_packages, order.ToArray())
>                 file_find {s with packages_prepass = packages_prepass} pdir
>             let rec find_owner (x : DirectoryInfo) =
>                 if x = null then fatal $"Cannot find the package file of 
> {file}"; s
>                 else
>                     let x' = x.FullName |> SpiralFileSystem.standardize_path
>                     trace Verbose (fun () -> 
> $"""Supervisor.supervisor_server.BuildFile.find_owner / x.FullName: {x.FullName 
> |> SpiralSm.replace "\\" "|"} / x': {x'}""") _locals
>                     let x_ = x
>                     let x = {| FullName = x' |}
>                     if Map.containsKey x.FullName s.packages then update_owner 
> x.FullName
>                     else find_owner x_.Parent
>             find_owner (Directory.GetParent(file))
> 
>     Job.iterateServer {
>         packages = Map.empty
>         modules = Map.empty
>         packages_infer = {ok=Map.empty; error=Map.empty}
>         packages_prepass = {ok=Map.empty; error=Map.empty}
>         graph = mirrored_graph_empty
>         package_ids = Map.empty, Map.empty
>         } loop
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ClientReq
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ClientReq =
>     | ProjectFileOpen of {|uri : string; spiprojText : string|}
>     | ProjectFileChange of {|uri : string; spiprojText : string|}
>     | ProjectFileLinks of {|uri : string|}
>     | ProjectCodeActionExecute of {|uri : string; action : ProjectCodeAction|}
>     | ProjectCodeActions of {|uri : string|}
>     | FileOpen of {|uri : string; spiText : string|}
>     | FileChange of {|uri : string; spiEdit : SpiEdit|}
>     | FileDelete of {|uris : string [[]]|} // Also works for project files and 
> directories.
>     | FileTokenRange of {|uri : string; range : VSCRange|}
>     | HoverAt of {|uri : string; pos : VSCPos|}
>     | BuildFile of {|uri : string; backend : string|}
>     | Ping of bool
>     | Exit of bool
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### ClientErrorsRes
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type ClientErrorsRes =
>     | FatalError of string
>     | TracedError of TracedError
>     | PackageErrors of {|uri : string; errors : RString list|}
>     | TokenizerErrors of {|uri : string; errors : RString list|}
>     | ParserErrors of {|uri : string; errors : RString list|}
>     | TypeErrors of {|uri : string; errors : RString list|}
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### Supervisor
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> type Supervisor = {
>     supervisor_ch : SupervisorReq Ch
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## new_server
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.ref/7.0.11/ref/n
> et7.0/Microsoft.AspNetCore.SignalR.Core.dll"
> // #r 
> @"../../../../../../../.nuget/packages/system.management/9.0.0/lib/netstandard2.
> 0/System.Management.dll"
> // #r 
> @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
> dard2.1/FSharp.Control.AsyncSeq.dll"
> // #r 
> @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
> 0/System.Reactive.dll"
> // #r 
> @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
> netstandard2.0/System.Reactive.Linq.dll"
> // #r 
> @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll"
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.com
> mon/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Common.dll"
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.cli
> ent/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Client.dll"
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.common/7.0.0
> /lib/net7.0/Microsoft.AspNetCore.SignalR.Common.dll"
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client/9.0.0
> /lib/net9.0/Microsoft.AspNetCore.SignalR.Client.dll"
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client.core/
> 9.0.0/lib/net9.0/Microsoft.AspNetCore.SignalR.Client.Core.dll"
> #r 
> @"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha
> rp.Json.dll"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #r 
> @"../../../../../../../.nuget/packages/system.management/9.0.0/lib/netstandard2.
> 0/System.Management.dll"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #if _LINUX
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.dll"
> #else
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.dll"
> #endif
> 
> #if _LINUX
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.SignalR.dll"
> #else
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.SignalR.dll"
> #endif
> 
> #if _LINUX
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.SignalR.Core.dll"
> #else
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.SignalR.Core.dll"
> #endif
> 
> #if _LINUX
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Cors.dll"
> #else
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Cors.dll"
> #endif
> 
> #if _LINUX
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Http.Abstractions.dll
> "
> #else
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Http.Abstractions.dll"
> #endif
> 
> #if _LINUX
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Connections.Abstracti
> ons.dll"
> #else
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Connections.Abstractions.
> dll"
> #endif
> 
> #if _LINUX
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Hosting.Abstractions.
> dll"
> #else
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Hosting.Abstractions.dll"
> #endif
> 
> #if _LINUX
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Http.Connections.dll"
> #else
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Http.Connections.dll"
> #endif
> 
> #if _LINUX
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Routing.dll"
> #else
> #r 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Routing.dll"
> #endif
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #r 
> @"../../../../../../../.nuget/packages/microsoft.extensions.logging/9.0.0/lib/ne
> t9.0/Microsoft.Extensions.Logging.dll"
> #r 
> @"../../../../../../../.nuget/packages/microsoft.extensions.logging.abstractions
> /9.0.0/lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll"
> #r 
> @"../../../../../../../.nuget/packages/microsoft.extensions.dependencyinjection.
> abstractions/9.0.0/lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstracti
> ons.dll"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> open Hopac
> open Hopac.Infixes
> // open Common
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let new_server () =
>     let event = Event<ClientErrorsRes> ()
>     // let disposable' = connection.On<string> ("ServerToClientMsg", 
> event.Trigger)
>     let stream =
>         FSharp.Control.AsyncSeq.unfoldAsync
>             (fun () -> async {
>                 let! msg = event.Publish |> Async.AwaitEvent
>                 return Some (msg, ())
>             })
>             ()
> 
>     let error_ch_create msg =
>         let x = Ch()
>         Hopac.server (Job.forever (Ch.take x >>= (
>             msg >> fun (x : ClientErrorsRes) ->
>                 Hopac.Job.awaitUnitTask (
>                     task {
>                         event.Trigger x
>                         trace Verbose (fun () -> $"spiral_compiler.new_server / 
> error_ch_create / x: %A{x}") (fun () -> "")
>                         ()
>                     }
>                     |> (fun (x : System.Threading.Tasks.Task<unit>) -> x :> 
> System.Threading.Tasks.Task)
>                 )
>         )))
>         x
> 
>     let errors : SupervisorErrorSources = {
>         fatal = error_ch_create FatalError
>         package = error_ch_create PackageErrors
>         tokenizer = error_ch_create TokenizerErrors
>         parser = error_ch_create ParserErrors
>         typer = error_ch_create TypeErrors
>         traced = error_ch_create TracedError
>         }
>     let supervisor = Ch()
>     let atten = Ch()
> 
>     do Hopac.server (attention_server errors atten)
> 
>     let args = [[| "--port"; "0" |]]
>     let env = parseStartup args
>     do Hopac.start (supervisor_server env atten errors supervisor)
> 
>     let job_null job =
>         job
>         |> Hopac.start
>         task { return null }
>     let serialize (x : obj) =
>         match x with
>         | null -> null
>         | :? Option<string> as x -> x.Value
>         | _ -> FSharp.Json.Json.serialize x
>     let job_val job =
>         let res = IVar()
>         let job' =
>             job res
>         Hopac.queueAsTask (job' >>=. IVar.read res >>- serialize)
>     {|
>         job_null = job_null
>         job_val = job_val
>         errors = stream
>         supervisor = supervisor
>     |}
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> SpiralTrace.TraceLevel.US0_0 |> set_trace_level
> 
> let server = new_server<Job<unit>, obj, string option, Job<unit>, unit> ()
> async {
> (*
>     let fullPath = Supervisor.workspaceRoot </> 
> "deps/spiral/lib/spiral/package.spiproj"
>     let fullPathUri = fullPath |> SpiralFileSystem.normalize_path |> 
> SpiralFileSystem.new_file_uri
>     let! spiprojCode = fullPath |> SpiralFileSystem.read_all_text_async
>     let projectFileOpenArgs = {| uri = fullPathUri; spiprojText = spiprojCode |}
>     let! projectFileOpenResult =
>         job_null (supervisor *<+ Supervisor.SupervisorReq.ProjectFileOpen 
> projectFileOpenArgs)
>         |> Async.AwaitTask
>     trace Info (fun () -> $"Supervisor.ProjectFileOpen / projectFileOpenResult: 
> %A{projectFileOpenResult}") (fun () -> "")
>     do! Async.Sleep 500
> 
>     let fullPath = 
> "C:/home/git/polyglot/target/spiral_Eval/packages/00b4ba49258747d295857ee25629c7
> b59c75cf4ab06958a0e3b0680ae9062d87/package.spiproj"
>     let fullPathUri = fullPath |> SpiralFileSystem.normalize_path |> 
> SpiralFileSystem.new_file_uri
>     let! spiprojCode = fullPath |> SpiralFileSystem.read_all_text_async
>     let projectFileOpenArgs = {| uri = fullPathUri; spiprojText = spiprojCode |}
>     let! projectFileOpenResult =
>         job_null (supervisor *<+ Supervisor.SupervisorReq.ProjectFileOpen 
> projectFileOpenArgs)
>         |> Async.AwaitTask
>     trace Info (fun () -> $"Supervisor.ProjectFileOpen / projectFileOpenResult: 
> %A{projectFileOpenResult}") (fun () -> "")
>     do! Async.Sleep 500
> *)
>     let code = "inl main () = 1i32 + 1"
>     let struct (fullPath, disposable) = SpiralFileSystem.create_temp_dir ()
>     use _ = disposable
>     let fullPathSpi = fullPath </> "main.spi"
>     do! code |> SpiralFileSystem.write_all_text_async fullPathSpi
>     let fullPathSpiproj = fullPath </> "package.spiproj"
>     do! "packages:\n |core-\nmodules:\n main\n" |> 
> SpiralFileSystem.write_all_text_async fullPathSpiproj
>     // let x = code |> Supervisor.persistCode
>     let fullPathUri = fullPathSpi |> SpiralFileSystem.normalize_path |> 
> SpiralFileSystem.new_file_uri
>     // let! code = fullPath |> SpiralFileSystem.read_all_text_async
>     let fileOpenArgs = {| uri = fullPathUri; spiText = code |}
>     let! fileOpenResult =
>         server.job_null (server.supervisor *<+ SupervisorReq.FileOpen 
> fileOpenArgs)
>         |> Async.AwaitTask
>         |> Async.runWithTimeoutAsync 20000
>         |> Async.map Option.get
>     trace Info (fun () -> $"spiral_compiler.run / FileOpen / fileOpenResult: 
> %A{fileOpenResult}") (fun () -> "")
> 
> //    do! Async.Sleep 500
> 
>     let backendId = "Fsharp"
>     let buildFileArgs = {| uri = fullPathUri; backend = backendId |}
>     let! buildFileResult =
>         server.job_val (fun res -> server.supervisor *<+ 
> SupervisorReq.BuildFile(buildFileArgs,res))
>         |> Async.AwaitTask
>         |> Async.runWithTimeoutAsync 15000
>         |> Async.map Option.get
>     trace Info (fun () -> $"spiral_compiler.run / BuildFile / buildFileResult: 
> %A{buildFileResult}") (fun () -> "")
>     return buildFileResult
> 
> 
>     (*
>     let lines = code |> SpiralSm.split "\n"
>     let fileTokenRangeArgs =
>         {|
>             uri = fullPathUri
>             range =
>                 {|
>                     line = 0
>                     character = 0
>                 |},
>                 {|
>                     line = lines.Length - 1
>                     character = lines.[[lines.Length - 1]].Length
>                 |}
>         |}
>     let! fileTokenRangeResult =
>         job_val (fun res -> supervisor *<+ 
> Supervisor.SupervisorReq.FileTokenRange(fileTokenRangeArgs,res))
>         |> Async.AwaitTask
>     trace Info (fun () -> $"Supervisor.FileTokenRange / fileTokenRangeResult: 
> %A{fileTokenRangeResult.Length}") (fun () -> "")
>     *)
> }
> |> Async.runWithTimeout 10000
> |> Option.map (fun x -> x |> SpiralSm.replace "\r\n" "\n")
> |> _assertEqual (Some "2\n")
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> ── [ 2.73s - diagnostics ] ─────────────────────────────────────────────────────
> │ input.fsx (5,14)-(5,24) typecheck warning The method or 
> function 'new_server' should not be given explicit type argument(s) because it 
> does not declare its type parameters explicitly
> 
> ── [ 2.73s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:01:38 i #1 spiral_compiler.run / FileOpen / 
> fileOpenResult: <null>
> │ 00:01:39 i #322 spiral_compiler.run / BuildFile / 
> buildFileResult: "2
> │ "
> │ Some "2
> │ "
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## getParentProcessId
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let getParentProcessId () =
>     if SpiralPlatform.is_windows () |> not
>     then 0u
>     else
>         let pid = System.Diagnostics.Process.GetCurrentProcess().Id
>         let query = $"SELECT ParentProcessId FROM Win32_Process WHERE ProcessId 
> = {pid}"
>         use searcher = new System.Management.ManagementObjectSearcher (query)
>         use results = searcher.Get ()
>         let data = results |> Seq.cast<System.Management.ManagementObject>
>         if data |> Seq.isEmpty
>         then 0u
>         else data |> Seq.head |> (fun mo -> mo.[["ParentProcessId"]] :?> uint32)
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## assemblyName
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let assemblyName = System.Reflection.Assembly.GetEntryAssembly().GetName().Name
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## startParentWatcher
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline startParentWatcher () =
>     if [[ "dotnet-repl" ]] |> List.contains assemblyName |> not then
>         let parentAsyncChild = async {
>             let parentProcessId = getParentProcessId ()
>             trace Verbose
>                 (fun () -> "spiral_compiler.startParentWatcher")
>                 (fun () -> $"parentProcessId: {parentProcessId} / {_locals ()}")
> 
>             if parentProcessId > 0u then
>                 let parentProcess = parentProcessId |> int |> 
> System.Diagnostics.Process.GetProcessById
>                 do! parentProcess.WaitForExitAsync () |> Async.AwaitTask
>                 trace Debug
>                     (fun () -> "spiral_compiler.startParentWatcher / Parent 
> process has exited. Performing cleanup...")
>                     (fun () -> $"{_locals ()}")
>                 System.Threading.Thread.Sleep 1000
>                 System.Environment.Exit 1
>         }
> 
>         parentAsyncChild |> Async.Start
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## SpiralHub
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> // open System
> open System.IO
> open System.Collections.Generic
> 
> open Hopac
> open Hopac.Infixes
> open Hopac.Extensions
> open Hopac.Stream
> 
> // open Common
> open SpiralFileSystem.Operators
> 
> open FSharp.Json
> open Microsoft.AspNetCore.SignalR
> open Microsoft.AspNetCore.SignalR.Client
> 
> type SpiralHub(supervisor : Supervisor) =
>     inherit Hub()
> 
>     member _.ClientToServerMsg (x : string) =
>         let job_null job = Hopac.start job; task { return null }
> 
>         let serialize (x : obj) =
>             match x with
>             | null -> null
>             | :? Option<string> as x -> x.Value
>             | _ -> Json.serialize x
> 
>         let job_val job = let res = IVar() in Hopac.queueAsTask (job res >>=. 
> IVar.read res >>- serialize)
>         let supervisor = supervisor.supervisor_ch
> 
>         let client_req = Json.deserialize x
> 
>         if Directory.Exists traceDir then
>             match client_req with
>             | Ping _ -> ()
>             | _ ->
>                 let req_name = client_req.GetType().Name
>                 let guid = System.DateTime.Now |> 
> SpiralDateTime.new_guid_from_date_time
>                 let trace_file = traceDir </> $"{guid}_{req_name}.json"
>                 
>                 async {
>                     do! Async.Sleep 500
>                     try
>                         do! x |> SpiralFileSystem.write_all_text_async 
> trace_file
>                     with ex ->
>                         trace Critical (fun () -> $"SpiralHub.ClientToServerMsg 
> / ex: {ex |> SpiralSm.format_exception}") _locals
>                 }
>                 |> Async.Start
> 
>         match client_req with
>         | ProjectFileOpen x -> job_null (supervisor *<+ 
> SupervisorReq.ProjectFileOpen x)
>         | ProjectFileChange x -> job_null (supervisor *<+ 
> SupervisorReq.ProjectFileChange x)
>         | ProjectCodeActionExecute x -> job_val (fun res -> supervisor *<+ 
> SupervisorReq.ProjectCodeActionExecute(x,res))
>         | ProjectFileLinks x -> job_val (fun res -> supervisor *<+ 
> SupervisorReq.ProjectFileLinks(x,res))
>         | ProjectCodeActions x -> job_val (fun res -> supervisor *<+ 
> SupervisorReq.ProjectCodeActions(x,res))
>         | FileOpen x -> job_null (supervisor *<+ SupervisorReq.FileOpen x)
>         | FileChange x -> job_null (supervisor *<+ SupervisorReq.FileChange x)
>         | FileDelete x -> job_null (supervisor *<+ SupervisorReq.FileDelete x)
>         | FileTokenRange x -> job_val (fun res -> supervisor *<+ 
> SupervisorReq.FileTokenRange(x,res))
>         | HoverAt x -> job_val (fun res -> supervisor *<+ 
> SupervisorReq.HoverAt(x,res))
>         | BuildFile x -> job_val (fun res -> supervisor *<+ 
> SupervisorReq.BuildFile(x,res))
>         | Ping _ -> task { return null }
>         | Exit _ ->
>             async {
>                 trace Debug (fun () -> "Supervisor.SpiralHub.ClientToServerMsg /
> exiting...") _locals
>                 async {
>                     do! Async.Sleep 300
>                     System.Diagnostics.Process.GetCurrentProcess().Kill ()
>                 }
>                 |> Async.Start
>                 return null
>             }
>             |> Async.StartAsTask
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## main
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> open Microsoft.AspNetCore.Builder
> open Microsoft.AspNetCore.Hosting
> open Microsoft.Extensions.DependencyInjection
> open Microsoft.Extensions.Logging
> 
> let main args =
>     SpiralTrace.TraceLevel.US0_1 |> set_trace_level
>     // Scheduler.Global.setCreate { Scheduler.Create.Def with MaxStackSize = 
> 1024 * 8192 |> Some }
> 
>     let env = parseStartup args
> 
>     let uri_server = $"http://localhost:{env.port}"
> 
>     printfn "Server bound to: %s" uri_server
>     trace Debug (fun () -> $"pwd: {System.Environment.CurrentDirectory}") 
> _locals
>     let dllPath = System.Reflection.Assembly.GetExecutingAssembly().Location |> 
> System.IO.Path.GetDirectoryName
>     trace Debug (fun () -> $"dllPath: {dllPath}") _locals
>     trace Debug (fun () -> $"targetDir: {targetDir}") _locals
>     let builder = Microsoft.AspNetCore.Builder.WebApplication.CreateBuilder()
>     builder.Logging.SetMinimumLevel LogLevel.Warning |> ignore
>     builder.Services
>         .AddCors()
>         .AddSignalR(fun x -> 
>             x.MaximumReceiveMessageSize <- 1 <<< 20 // 1mb
>             x.EnableDetailedErrors <- true
>             ) |> ignore
>         
>     builder.Services
>         .AddSingleton<Supervisor>(fun s ->
>             let hub = s.GetService<IHubContext<SpiralHub>>()
>             let broadcast x = 
> hub.Clients.All.SendCoreAsync("ServerToClientMsg",[[|Json.serialize x|]])
>             
>             let server = new_server ()
> 
>             server.errors
>             |> FSharp.Control.AsyncSeq.mapAsync (fun x ->
>                 broadcast x |> Async.AwaitTask
>             )
>             |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun x -> async { () })
>             |> Async.StartChild
>             |> Async.RunSynchronously
>             |> ignore
> 
>             {supervisor_ch=server.supervisor}
>             ) |> ignore
>     builder.WebHost.UseUrls [[|uri_server|]] |> ignore
>     builder.Logging.SetMinimumLevel(LogLevel.Warning) |> ignore
> 
>     let app = builder.Build()
>     app.UseCors(fun x ->
>         x.SetIsOriginAllowed(fun _ -> true)
>             .AllowAnyHeader()
>             .AllowAnyMethod()
>             .AllowCredentials() |> ignore
>         ) |> ignore
>     app.MapHub<SpiralHub> "" |> ignore
> 
>     // use _ = Eval.startTokenRangeWatcher ()
>     startParentWatcher ()
>     // use _ = Eval.startCommandsWatcher uri_server
> 
>     printfn $"Starting the Spiral Server. It is bound to: {uri_server}"
>     app.Run()
>     0
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> // SpiralHub.main [[|"--port"; "13805"|]]
00:02:03 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 908553 }
00:02:03 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/spiral/apps/compiler/spiral_compiler.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/spiral/apps/compiler/spiral_compiler.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:02:04 v #5 ! [NbConvertApp] Converting notebook c:/home/git/spiral/apps/compiler/spiral_compiler.dib.ipynb to html
00:02:05 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:02:05 v #7 !   validate(nb)
00:02:06 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:02:06 v #9 !   return _pygments_highlight(
00:02:33 v #10 ! [NbConvertApp] Writing 4813817 bytes to c:\home\git\spiral\apps\compiler\spiral_compiler.dib.html
00:02:34 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 875 }
00:02:34 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 875 }
00:02:34 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/spiral/apps/compiler/spiral_compiler.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/spiral/apps/compiler/spiral_compiler.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:02:34 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:02:34 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:02:34 d #16 spiral.run / dib / { exit_code = 0; result_length = 909487 }
00:00:00 d #1 writeDibCode / output: Fs / path: spiral_compiler.dib
00:00:00 d #2 parseDibCode / output: Fs / file: spiral_compiler.dib
00:00:00 d #1 persistCodeProject / packages: [Fable.Core; FSharp.Control.AsyncSeq; FSharpx.Collections; ... ] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: spiral_compiler / hash:  / code.Length: 815365
00:00:00 d #2 buildProject / fullPath: c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fsproj
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  "publish "c:/home/git\polyglot\target/Builder\spiral_compiler\spiral_compiler.fsproj" --configuration Release --output "C:\home\git\spiral\apps\compiler\dist" --runtime linux-x64"; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\spiral_compiler\spiral_compiler.fsproj" --configuration Release --output "C:\home\git\spiral\apps\compiler\dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\spiral_compiler" } }
00:00:01 v #2 >   Determining projects to restore...
00:00:01 v #3 >   Paket version 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
00:00:01 v #4 >   The last full restore is still up to date. Nothing left to do.
00:00:01 v #5 >   Total time taken: 0 milliseconds
00:00:04 v #6 >   Restored c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fsproj (in 2.18 sec).
00:00:16 v #7 > c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fs(10087,85): warning FS0040: This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. [c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fsproj]
00:00:16 v #8 > c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fs(10612,85): warning FS0040: This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. [c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fsproj]
00:00:16 v #9 > c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fs(11436,43): warning FS0040: This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. [c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fsproj]
00:00:17 v #10 > c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fs(12366,43): warning FS0040: This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. [c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fsproj]
00:00:17 v #11 > c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fs(13032,71): warning FS0040: This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. [c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fsproj]
00:00:38 v #12 >   spiral_compiler -> c:\home\git\polyglot\target\Builder\spiral_compiler\bin\Release\net9.0\linux-x64\spiral_compiler.dll
00:00:39 v #13 >   spiral_compiler -> C:\home\git\spiral\apps\compiler\dist\
00:00:40 d #14 runtime.execute_with_options_async / { exit_code = 0; output_length = 3022; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\spiral_compiler\spiral_compiler.fsproj" --configuration Release --output "C:\home\git\spiral\apps\compiler\dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\spiral_compiler" } }
00:00:40 d #15 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  "publish "c:/home/git\polyglot\target/Builder\spiral_compiler\spiral_compiler.fsproj" --configuration Release --output "C:\home\git\spiral\apps\compiler\dist" --runtime win-x64"; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\spiral_compiler\spiral_compiler.fsproj" --configuration Release --output "C:\home\git\spiral\apps\compiler\dist" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\spiral_compiler" } }
00:00:41 v #16 >   Determining projects to restore...
00:00:41 v #17 >   Paket version 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
00:00:41 v #18 >   The last full restore is still up to date. Nothing left to do.
00:00:41 v #19 >   Total time taken: 0 milliseconds
00:00:42 v #20 >   Restored c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fsproj (in 339 ms).
00:00:43 v #21 >   spiral_compiler -> c:\home\git\polyglot\target\Builder\spiral_compiler\bin\Release\net9.0\win-x64\spiral_compiler.dll
00:00:45 v #22 >   spiral_compiler -> C:\home\git\spiral\apps\compiler\dist\
00:00:45 d #23 runtime.execute_with_options_async / { exit_code = 0; output_length = 478; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\spiral_compiler\spiral_compiler.fsproj" --configuration Release --output "C:\home\git\spiral\apps\compiler\dist" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\spiral_compiler" } }
spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\home\git\polyglot\target\Builder\spiral_compiler
spiral/apps/compiler/build.ps1 / $targetDir = C:\home\git\polyglot\target\Builder\spiral_compiler / $projectName: spiral_compiler / $env:CI:''
spiral/apps/spiral/build.ps1 / ScriptDir: C:\home\git\spiral\apps\spiral / ResolvedScriptDir: C:\home\git\spiral\apps\spiral
polyglot/scripts/core.ps1/GetFullPath / Path: ../../deps/polyglot / Location: C:\home\git\spiral\apps\spiral / ResolvedLocation: C:\home\git\spiral\apps\spiral
polyglot/scripts/core.ps1/GetFullPath / FullPath: C:\home\git\spiral\deps\polyglot
polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\home\git\spiral\deps\polyglot / parent_target:  / path_target: C:\home\git\polyglot / parent: C:\home\git\spiral\deps / End: polyglot
00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "C:\home\git\spiral\apps\spiral/spiral.dib", "--working-directory", "C:\home\git\polyglot"])) }
00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/spiral/apps/spiral/spiral.dib", "--output-path", "c:/home/git/spiral/apps/spiral/spiral.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/spiral/apps/spiral/spiral.dib" --output-path "c:/home/git/spiral/apps/spiral/spiral.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = Some(
    "C:\home\git\polyglot",
) } }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ # spiral
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> open file_system_operators
> open rust.rust_operators
> open rust
> open sm'_operators
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> open testing
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## get_args
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl get_args () =
>     {
>         fsharp = "fsharp", {
>             spi_path = "spi-path", 's'
>         }
>         gleam = "gleam", {
>             gleam_path = "gleam-path", 'g'
>             target = "target", 't'
>             deps = "deps", 'd'
>         }
>         cuda = "cuda", {
>             py_path = "py-path", 'p'
>             env = "env", 'e'
>             deps = "deps", 'd'
>         }
>         fable = "fable", {
>             fs_path = "fs-path", 'f'
>             command = "command", 'c'
>         }
>         rust = "rust", {
>             fs_path = "fs-path", 'f'
>             deps = "deps", 'd'
>             wasm = "wasm", 'w'
>             contract = "contract", 'c'
>             cleanup = "cleanup", 'l'
>         }
>         typescript = "typescript", {
>             fs_path = "fs-path", 'f'
>             deps = "deps", 'd'
>         }
>         python = "python", {
>             fs_path = "fs-path", 'f'
>             deps = "deps", 'd'
>         }
>         dib = "dib", {
>             path = "path", 'p'
>             retries = "retries", 'r'
>             working_directory = "working-directory", 'w'
>         }
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## cuda_env
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> union cuda_env =
>     | Pip
>     | Poetry
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## gleam_target
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> union gleam_target =
>     | Erlang
>     | JavaScript
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## get_command
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> let get_command () =
>     ##"command"
>     |> runtime.new_command
>     |> runtime.command_subcommand_required true
>     |> runtime.command_subcommand (
>         ##(get_args () .fsharp |> fst)
>         |> runtime.new_command
>         |> runtime.command_init_arg ((get_args () .fsharp |> snd).spi_path) (
>             runtime.arg_required true
>         )
>     )
>     |> runtime.command_subcommand (
>         ##(get_args () .gleam |> fst)
>         |> runtime.new_command
>         |> runtime.command_init_arg ((get_args () .gleam |> snd).gleam_path) (
>             runtime.arg_required true
>         )
>         |> runtime.command_init_arg ((get_args () .gleam |> snd).target) (
>             real runtime.arg_union `gleam_target ignore
>         )
>         |> runtime.command_init_arg ((get_args () .gleam |> snd).deps) (
>             runtime.arg_value_names ;[[ ##"NAME"; ##"VERSION" ]]
>             >> runtime.arg_num_args_range (
>                 runtime.new_value_range
>                     false
>                     (am'.Start (1i32 |> convert : unativeint))
>                     (am'.End eval)
>             )
>             >> runtime.arg_action runtime.Append
>         )
>     )
>     |> runtime.command_subcommand (
>         ##(get_args () .cuda |> fst)
>         |> runtime.new_command
>         |> runtime.command_init_arg ((get_args () .cuda |> snd).py_path) (
>             runtime.arg_required true
>         )
>         |> runtime.command_init_arg ((get_args () .cuda |> snd).env) (
>             real runtime.arg_union `cuda_env ignore
>         )
>         |> runtime.command_init_arg ((get_args () .cuda |> snd).deps) (
>             runtime.arg_value_names ;[[ ##"NAME"; ##"VERSION" ]]
>             >> runtime.arg_num_args_range (
>                 runtime.new_value_range
>                     false
>                     (am'.Start (1i32 |> convert : unativeint))
>                     (am'.End eval)
>             )
>             >> runtime.arg_action runtime.Append
>         )
>     )
>     |> runtime.command_subcommand (
>         ##(get_args () .fable |> fst)
>         |> runtime.new_command
>         |> runtime.command_init_arg ((get_args () .fable |> snd).fs_path) (
>             runtime.arg_required true
>         )
>         |> runtime.command_init_arg ((get_args () .fable |> snd).command) (
>             id
>         )
>     )
>     |> runtime.command_subcommand (
>         ##(get_args () .rust |> fst)
>         |> runtime.new_command
>         |> runtime.command_init_arg ((get_args () .rust |> snd).fs_path) (
>             runtime.arg_required true
>         )
>         |> runtime.command_init_arg ((get_args () .rust |> snd).deps) (
>             runtime.arg_value_names ;[[ ##"NAME"; ##"VERSION" ]]
>             >> runtime.arg_num_args_range (
>                 runtime.new_value_range
>                     false
>                     (am'.Start (1i32 |> convert : unativeint))
>                     (am'.End eval)
>             )
>             >> runtime.arg_action runtime.Append
>         )
>         |> runtime.command_init_arg ((get_args () .rust |> snd).wasm) (
>             runtime.arg_num_args_range (
>                 runtime.new_value_range
>                     true
>                     (am'.End eval)
>                     (am'.End fun _ => (1i32 |> convert : unativeint))
>             )
>             >> runtime.arg_require_equals true
>             >> runtime.arg_default_missing_value ""
>         )
>         |> runtime.command_init_arg ((get_args () .rust |> snd).contract) (
>             runtime.arg_num_args_range (
>                 runtime.new_value_range
>                     true
>                     (am'.End eval)
>                     (am'.End fun _ => (1i32 |> convert : unativeint))
>             )
>             >> runtime.arg_require_equals true
>             >> runtime.arg_default_missing_value ""
>         )
>         |> runtime.command_init_arg ((get_args () .rust |> snd).cleanup) (
>             runtime.arg_default_value "true"
>             >> runtime.arg_action runtime.SetFalse
>         )
>     )
>     |> runtime.command_subcommand (
>         ##(get_args () .typescript |> fst)
>         |> runtime.new_command
>         |> runtime.command_init_arg ((get_args () .typescript |> snd).fs_path) (
>             runtime.arg_required true
>         )
>         |> runtime.command_init_arg ((get_args () .typescript |> snd).deps) (
>             runtime.arg_value_names ;[[ ##"NAME"; ##"VERSION" ]]
>             >> runtime.arg_num_args_range (
>                 runtime.new_value_range
>                     false
>                     (am'.Start (1i32 |> convert : unativeint))
>                     (am'.End eval)
>             )
>             >> runtime.arg_action runtime.Append
>         )
>     )
>     |> runtime.command_subcommand (
>         ##(get_args () .python |> fst)
>         |> runtime.new_command
>         |> runtime.command_init_arg ((get_args () .python |> snd).fs_path) (
>             runtime.arg_required true
>         )
>         |> runtime.command_init_arg ((get_args () .python |> snd).deps) (
>             runtime.arg_value_names ;[[ ##"NAME"; ##"VERSION" ]]
>             >> runtime.arg_num_args_range (
>                 runtime.new_value_range
>                     false
>                     (am'.Start (1i32 |> convert : unativeint))
>                     (am'.End eval)
>             )
>             >> runtime.arg_action runtime.Append
>         )
>     )
>     |> runtime.command_subcommand (
>         ##(get_args () .dib |> fst)
>         |> runtime.new_command
>         |> runtime.command_init_arg ((get_args () .dib |> snd).path) (
>             runtime.arg_required true
>             // >> runtime.arg_value_parser (runtime.value_parser_path_buf ())
>         )
>         |> runtime.command_init_arg ((get_args () .dib |> snd).retries) (
>             runtime.arg_value_parser (runtime.value_parser_expr "u8")
>         )
>         |> runtime.command_init_arg ((get_args () .dib |> 
> snd).working_directory) (
>             id
>         )
>     )
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## fable
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### fable_target
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> union fable_target =
>     | Rust
>     | TypeScript
>     | Python
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### fable_runtime
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> union fable_runtime =
>     | Wasm : string
>     | Contract : string
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### execute_dotnet_fable
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> let execute_dotnet_fable { workspace_root_external fsproj_path extension 
> package_dir runtime } =
>     open runtime
>     execution_options fun x => { x with
>         command =
>             inl platform =
>                 if platform.is_windows ()
>                 then "_WINDOWS"
>                 else "_LINUX"
>             inl platform : string = $'$" --define {!platform}"'
>             inl runtime =
>                 match runtime with
>                 | Some (runtime : fable_runtime) =>
>                     inl runtime = runtime |> reflection.union_to_string |> 
> sm'.to_upper
>                     $'$" --define {!runtime}"'
>                 | None => ""
>             $'$"dotnet fable \\\"{!fsproj_path}\\\" --optimize --lang 
> {!extension} --extension .{!extension} --outDir 
> \\\"{!package_dir}\\\"{!platform}{!runtime}"'
>         working_directory = workspace_root_external |> resultm.box |> 
> resultm.ok'
>     }
>     |> execute_retry 3u8
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### get_package_dir
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> let get_package_dir { workspace_root target name hash } =
>     inl dir = workspace_root </> "target/spiral" </> name
>     match hash, (target : option fable_target) with
>     | Some hash, Some target => dir </> "packages" </> (target |> 
> reflection.union_to_string) </> hash
>     | _ => dir
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### persist_code_project
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> let persist_code_project { workspace_root package_dir packages modules name code
> } =
>     package_dir |> file_system.create_dir |> ignore
> 
>     inl fs_path = package_dir </> $'$"{!name}.fs"' |> file_system.normalize_path
>     code |> file_system.write_all_text_exists fs_path
> 
>     inl modules_code =
>         modules
>         |> listm.map fun path =>
>             inl path = workspace_root </> path
>             $'$"<Compile Include=\\\"{!path}\\\" />"' : string
>         |> listm'.box
>         |> seq.of_list'
>         |> sm'.concat "\\n        "
> 
>     inl packages_code =
>         packages
>         |> listm.map fun (package : string), (version : string) =>
>             $'$"<PackageReference Include=\\\"{!package}\\\" 
> Version=\\\"{!version}\\\" />"' : string
>         |> listm'.box
>         |> seq.of_list'
>         |> sm'.concat "\\n        "
> 
>     inl fsproj_path = package_dir </> $'$"{!name}.fsproj"' |> 
> file_system.normalize_path
>     inl fsproj_code : string =
>         $'$"<Project Sdk=\\\"Microsoft.NET.Sdk\\\">"'
>         ++\# $'$"<PropertyGroup>"'
>         ++\# $'$"    <TargetFramework>net9.0</TargetFramework>"'
>         ++\# $'$"    <LangVersion>preview</LangVersion>"'
>         ++\# $'$"    <RollForward>Major</RollForward>"'
>         ++\# $'$"    <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>"'
>         ++\# $'$"    <PublishAot>false</PublishAot>"'
>         ++\# $'$"    <PublishTrimmed>false</PublishTrimmed>"'
>         ++\# $'$"    <PublishSingleFile>true</PublishSingleFile>"'
>         ++\# $'$"    <SelfContained>true</SelfContained>"'
>         ++\# $'$"    <Version>0.0.1-alpha.1</Version>"'
>         ++\# $'$"    <OutputType>Exe</OutputType>"'
>         ++\# $'$"    <ServerGarbageCollection>true</ServerGarbageCollection>"'
>         ++\# $'$"    
> <ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>"'
>         ++\# $'$"</PropertyGroup>"'
> 
>         ++\# $'$"<PropertyGroup 
> Condition=\\\"$([[MSBuild]]::IsOSPlatform(\'FreeBSD\'))\\\">"'
>         ++\# $'$"    <DefineConstants>_FREEBSD</DefineConstants>"'
>         ++\# $'$"</PropertyGroup>"'
> 
>         ++\# $'$"<PropertyGroup 
> Condition=\\\"$([[MSBuild]]::IsOSPlatform(\'Linux\'))\\\">"'
>         ++\# $'$"    <DefineConstants>_LINUX</DefineConstants>"'
>         ++\# $'$"</PropertyGroup>"'
> 
>         ++\# $'$"<PropertyGroup 
> Condition=\\\"$([[MSBuild]]::IsOSPlatform(\'OSX\'))\\\">"'
>         ++\# $'$"    <DefineConstants>_OSX</DefineConstants>"'
>         ++\# $'$"</PropertyGroup>"'
> 
>         ++\# $'$"<PropertyGroup 
> Condition=\\\"$([[MSBuild]]::IsOSPlatform(\'Windows\'))\\\">"'
>         ++\# $'$"    <DefineConstants>_WINDOWS</DefineConstants>"'
>         ++\# $'$"</PropertyGroup>"'
> 
>         ++\# $'$"<ItemGroup>"'
>         ++\# $'$"    {!modules_code}"'
>         ++\# $'$"    <Compile Include=\\\"{!fs_path}\\\" />"'
>         ++\# $'$"</ItemGroup>"'
> 
>         ++\# $'$"<ItemGroup>"'
>         ++\# $'$"    {!packages_code}"'
>         ++\# $'$"</ItemGroup>"'
> 
>         ++\# $'$"</Project>"'
> 
>     fsproj_code |> file_system.write_all_text_exists fsproj_path
> 
>     fsproj_path
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### publish_project
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl publish_project runtime' output_dir path =
>     inl full_path = path |> file_system.get_full_path
>     inl file_dir = full_path |> file_system.directory_get_parent |> 
> optionm'.default_value' ""
>     inl extension = full_path |> file_system.get_extension
> 
>     trace Debug
>         fun () => "publish_project"
>         fun () => { full_path }
> 
>     match extension with
>     | "fsproj" => ()
>     | _ => failwith $'$"app.publish_project / Invalid project file / extension: 
> {!extension}"'
> 
>     inl runtimes =
>         runtime'
>         |> optionm.map listm.singleton
>         |> optionm'.default_value [[ "linux-x64"; "win-x64" ]]
> 
>     inl output_dir = output_dir |> optionm'.default_value "dist"
> 
>     runtimes
>     |> listm.map fun runtime' =>
>         runtime.execution_options fun x => { x with
>             command = $'$@@"dotnet publish \"\"{!path}\"\" --configuration 
> Release --output \"\"{!output_dir}\"\" --runtime {!runtime'}"'
>             working_directory = file_dir |> Some |> optionm'.box
>         }
>         |> runtime.execute_with_options
>         |> fst
>     |> listm'.sum
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### publish_code
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl publish_code { workspace_root runtime packages modules output_dir name code 
> } =
>     inl package_dir = get_package_dir { workspace_root name target = None; hash 
> = None }
>     inl fsproj_path = persist_code_project { workspace_root package_dir packages
> modules name code }
>     inl exit_code = fsproj_path |> publish_project runtime output_dir
>     if exit_code <>. 0 then
>         trace Critical
>             fun () => "publish_code"
>             fun () => {
>                 code = code |> sm'.ellipsis_end 400
>                 fsproj_text = fsproj_path |> file_system.read_all_text
>             }
>     exit_code
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> ///! rust -d encoding_rs encoding_rs_io regex
> 
> publish_code {
>     workspace_root = file_system.get_workspace_root ()
>     runtime = None
>     packages = [[]]
>     modules = [[]]
>     output_dir = None
>     name = "test1"
>     code = "1 + 1 |> ignore"
> }
> |> _assert_eq 0
> 
> ── [ 59.69s - return value ] ───────────────────────────────────────────────────
> │ 00:00:00 v #1 file_system.create_dir / { dir = 
> c:/home/git\polyglot\target/spiral\test1 }
> │ 00:00:00 d #2 publish_project / { full_path = 
> \\?\C:\home\git\polyglot\target\spiral\test1\test1.fsproj }
> │ 00:00:00 d #3 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["publish", 
> "c:/home/git/polyglot/target/spiral/test1/test1.fsproj", "--configuration", 
> "Release", "--output", "dist", "--runtime", "win-x64"]; options = { command = 
> dotnet publish "c:/home/git/polyglot/target/spiral/test1/test1.fsproj" 
> --configuration Release --output "dist" --runtime win-x64; cancellation_token = 
> None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; 
> trace = true; working_directory = Some(
> │     "\\?\C:\home\git\polyglot\target\spiral\test1",
> │ ) } }
> │ 00:00:00 v #4 >   Determining projects to restore...
> │ 00:00:01 v #5 >   Restored 
> c:\home\git\polyglot\target\spiral\test1\test1.fsproj (in 288 ms).
> │ 00:00:01 v #6 >   test1 -> 
> c:\home\git\polyglot\target\spiral\test1\bin\Release\net9.0\win-x64\test1.dll
> │ 00:00:02 v #7 >   test1 -> 
> \\?\C:\home\git\polyglot\target\spiral\test1\dist\
> │ 00:00:03 v #8 runtime.execute_with_options / result / {
> exit_code = 0; std_trace_length = 265 }
> │ 00:00:03 d #9 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["publish", 
> "c:/home/git/polyglot/target/spiral/test1/test1.fsproj", "--configuration", 
> "Release", "--output", "dist", "--runtime", "linux-x64"]; options = { command = 
> dotnet publish "c:/home/git/polyglot/target/spiral/test1/test1.fsproj" 
> --configuration Release --output "dist" --runtime linux-x64; cancellation_token 
> = None; environment_variables = Array(MutCell([])); on_line = None; stdin = 
> None; trace = true; working_directory = Some(
> │     "\\?\C:\home\git\polyglot\target\spiral\test1",
> │ ) } }
> │ 00:00:03 v #10 >   Determining projects to restore...
> │ 00:00:04 v #11 >   Restored 
> c:\home\git\polyglot\target\spiral\test1\test1.fsproj (in 288 ms).
> │ 00:00:05 v #12 >   test1 -> 
> c:\home\git\polyglot\target\spiral\test1\bin\Release\net9.0\linux-x64\test1.dll
> │ 00:00:05 v #13 >   test1 -> 
> \\?\C:\home\git\polyglot\target\spiral\test1\dist\
> │ 00:00:06 v #14 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 267 }
> │ { name = __assert_eq; actual = 0; expected = 0 }
> │ 
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> ///! rust -d encoding_rs encoding_rs_io regex
> 
> publish_code {
>     workspace_root = file_system.get_workspace_root ()
>     runtime = None
>     packages = [[]]
>     modules = [[]]
>     output_dir = None
>     name = "test2"
>     code = "1 + a |> ignore"
> }
> |> _assert_eq 2
> 
> ── [ 56.55s - return value ] ───────────────────────────────────────────────────
> │ 00:00:00 v #1 file_system.create_dir / { dir = 
> c:/home/git\polyglot\target/spiral\test2 }
> │ 00:00:00 d #2 publish_project / { full_path = 
> \\?\C:\home\git\polyglot\target\spiral\test2\test2.fsproj }
> │ 00:00:00 d #3 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["publish", 
> "c:/home/git/polyglot/target/spiral/test2/test2.fsproj", "--configuration", 
> "Release", "--output", "dist", "--runtime", "win-x64"]; options = { command = 
> dotnet publish "c:/home/git/polyglot/target/spiral/test2/test2.fsproj" 
> --configuration Release --output "dist" --runtime win-x64; cancellation_token = 
> None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; 
> trace = true; working_directory = Some(
> │     "\\?\C:\home\git\polyglot\target\spiral\test2",
> │ ) } }
> │ 00:00:00 v #4 >   Determining projects to restore...
> │ 00:00:01 v #5 >   Restored 
> c:\home\git\polyglot\target\spiral\test2\test2.fsproj (in 282 ms).
> │ 00:00:02 v #6 > 
> c:\home\git\polyglot\target\spiral\test2\test2.fs(1,5): error FS0039: The value 
> or constructor 'a' is not defined. 
> [c:\home\git\polyglot\target\spiral\test2\test2.fsproj]
> │ 00:00:03 v #7 runtime.execute_with_options / result / {
> exit_code = 1; std_trace_length = 285 }
> │ 00:00:03 d #8 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["publish", 
> "c:/home/git/polyglot/target/spiral/test2/test2.fsproj", "--configuration", 
> "Release", "--output", "dist", "--runtime", "linux-x...0mv #12 
> runtime.execute_with_options / result / { exit_code = 1; std_trace_length = 285 
> }
> │ 00:00:06 c #13 publish_code / { code = 1 + a |> ignore;
> fsproj_text = <Project Sdk="Microsoft.NET.Sdk">
> │ <PropertyGroup>
> │     <TargetFramework>net9.0</TargetFramework>
> │     <LangVersion>preview</LangVersion>
> │     <RollForward>Major</RollForward>
> │     <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
> │     <PublishAot>false</PublishAot>
> │     <PublishTrimmed>false</PublishTrimmed>
> │     <PublishSingleFile>true</PublishSingleFile>
> │     <SelfContained>true</SelfContained>
> │     <Version>0.0.1-alpha.1</Version>
> │     <OutputType>Exe</OutputType>
> │     <ServerGarbageCollection>true</ServerGarbageCollection>
> │     
> <ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
> │ </PropertyGroup>
> │ <PropertyGroup 
> Condition="$([MSBuild]::IsOSPlatform('FreeBSD'))">
> │     <DefineConstants>_FREEBSD</DefineConstants>
> │ </PropertyGroup>
> │ <PropertyGroup 
> Condition="$([MSBuild]::IsOSPlatform('Linux'))">
> │     <DefineConstants>_LINUX</DefineConstants>
> │ </PropertyGroup>
> │ <PropertyGroup Condition="$([MSBuild]::IsOSPlatform('OSX'))">
> │     <DefineConstants>_OSX</DefineConstants>
> │ </PropertyGroup>
> │ <PropertyGroup 
> Condition="$([MSBuild]::IsOSPlatform('Windows'))">
> │     <DefineConstants>_WINDOWS</DefineConstants>
> │ </PropertyGroup>
> │ <ItemGroup>
> │     
> │     <Compile 
> Include="c:/home/git/polyglot/target/spiral/test2/test2.fs" />
> │ </ItemGroup>
> │ <ItemGroup>
> │     
> │ </ItemGroup>
> │ </Project> }
> │ { name = __assert_eq; actual = 2; expected = 2 }
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### read_file
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl read_file path =
>     inl code =
>         path
>         |> file_system.read_all_text
>         |> sm'.replace_regex $'@@"(?P<a> *)(?P<b>let\\s+main\\s+.*?\\s*=)"' 
> "$a[[<EntryPoint>]]\n$a$b"
>     inl code_trim = code |> sm'.trim_end [[]]
>     if code_trim |> sm'.ends_with "\\n()"
>     then code_trim |> sm'.slice 0i64 ((code_trim |> sm'.length) - 3)
>     else code
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### persist_file
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl persist_file { workspace_root package_dir packages modules path } =
>     inl full_path = path |> file_system.get_full_path
>     inl name = full_path |> file_system.get_file_name_without_extension
>     inl code = full_path |> read_file
>     persist_code_project { workspace_root package_dir packages modules name code
> }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### publish_file
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl publish_file { workspace_root runtime packages modules path } =
>     inl full_path = path |> file_system.get_full_path
>     inl dir = full_path |> file_system.directory_get_parent |> 
> optionm'.default_value' ""
>     publish_code {
>         workspace_root
>         runtime
>         packages
>         modules
>         output_dir = dir </> "dist" |> Some
>         name = full_path |> file_system.get_file_name_without_extension
>         code = full_path |> read_file
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rust
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### get_workspace_cargo_toml_content
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl get_workspace_cargo_toml_content { workspace_root } : string =
>     inl workspace_root = workspace_root |> file_system.normalize_path
>     $'$"cargo-features = [[\\\"profile-rustflags\\\"]]"'
>     ++\# $'$""'
>     ++\# $'$"[[workspace]]"'
>     ++\# $'$"resolver = \\\"2\\\""'
>     ++\# $'$"members = [[\\\"packages/Rust/*\\\"]]"'
>     ++\# $'$""'
>     ++\# $'$"[[workspace.dependencies.fable_library_rust]]"'
>     ++\# $'$"path = 
> \\\"{!workspace_root}/lib/rust/fable/fable_modules/fable-library-rust\\\""'
>     ++\# $'$"default-features = false"'
>     ++\# $'$"features = [[]]"'
>     ++\# $'$""'
>     ++\# $'$"[[workspace.dependencies]]"'
>     ++\# $'$"inline_colorization = \\\"~0.1\\\""'
>     ++\# $'$""'
>     ++\# $'$"[[profile.release]]"'
>     ++\# $'$"codegen-units = 1"'
>     ++\# $'$"opt-level = \\\"z\\\""'
>     ++\# $'$"lto = true"'
>     ++\# $'$"debug = false"'
>     ++\# $'$"panic = \\\"abort\\\""'
>     ++\# $'$"overflow-checks = true"'
>     ++\# $'$"rustflags = [[\\\"-C\\\", \\\"link-arg=-s\\\"]]"'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### get_cargo_toml_content
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl get_cargo_toml_content { hash_hex runtime deps static_do_bindings } : string
> =
>     $'$"cargo-features = [[\\\"edition2024\\\"]]"'
>     ++\# $'$""'
>     ++\# $'$"[[package]]"'
>     ++\# $'$"name = \\\"spiral_{!hash_hex}\\\""'
>     ++\# $'$"version = \\\"0.0.1\\\""'
>     ++\# $'$"edition = \\\"2024\\\""'
>     ++\# $'$""'
>     ++\# $'$"[[dependencies]]"'
>     ++\# (
>         if runtime <>. None
>         then $'$"fable_library_rust = {{ workspace = true }}"'
>         else
>             $'$"fable_library_rust = {{"'
>             +. $'$" workspace = true,"'
>             +. $'$" features = [["'
>             +. (
>                 if static_do_bindings
>                 then $'$"\\\"static_do_bindings\\\", \\\"datetime\\\", 
> \\\"guid\\\", \\\"threaded\\\""'
>                 else $'$"\\\"datetime\\\", \\\"guid\\\", \\\"threaded\\\""'
>             )
>             +. $'$"]]"'
>             +. $'$"}}"'
>     )
>     ++\# $'$"inline_colorization = {{ workspace = true }}"'
>     ++\# $'$"{!deps}"'
>     ++\# $'$""'
>     ++\# (
>         if runtime = None then
>             $'$"[[[[bin]]]]"'
>             ++\# $'$"name = \\\"spiral_{!hash_hex}\\\""'
>         else
>             $'$"[[lib]]"'
>             ++\# $'$"crate-type = [[\\\"cdylib\\\"]]"'
>     )
>     ++\# $'$"path = \\\"spiral.rs\\\""'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### get_empty_cargo_toml_content
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl get_empty_cargo_toml_content () =
>     inl guid = date_time.now () |> date_time.new_guid_from_date_time |> 
> sm'.obj_to_string
>     $'$"[[package]]"'
>     ++\# $'$"name = \\\"spiral_{!guid}\\\""'
>     ++\# $'$"version = \\\"0.0.1\\\""'
>     ++\# $'$"edition = \\\"2021\\\""'
>     ++\# $'$""'
>     ++\# $'$"[[[[bin]]]]"'
>     ++\# $'$"name = \\\"spiral_{!guid}\\\""'
>     ++\# $'$"path = \\\"spiral.rs\\\""'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### process_rust
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl process_rust { fs_path deps trace_level runtime cleanup } =
>     open runtime
> 
>     inl extension = "rs"
>     inl code = fs_path |> file_system.read_all_text
> 
>     inl hash_hex = { extension code runtime } |> sm'.format |> crypto.hash_text
> 
>     inl workspace_name = "spiral"
> 
>     inl workspace_root_external = file_system.get_workspace_root_external ()
>     inl workspace_root = workspace_root_external |> resultm.box |> 
> resultm.unwrap_or_else id
> 
>     inl package_dir =
>         get_package_dir { workspace_root name = workspace_name; target = Some 
> Rust; hash = Some hash_hex }
> 
>     inl fsproj_path =
>         persist_code_project {
>             workspace_root
>             package_dir
>             packages = [[ "Fable.Core", "4.3.0" ]]
>             modules = [[]]
>             name = workspace_name
>             code
>         }
> 
>     inl workspace_dir = package_dir </> "../../.."
>     inl workspace_cargo_toml_path = workspace_dir </> "Cargo.toml"
> 
>     if workspace_cargo_toml_path |> file_system.file_exists |> not
>     then get_empty_cargo_toml_content () |> file_system.write_all_text 
> workspace_cargo_toml_path
> 
>     inl cargo_toml_path = package_dir </> "Cargo.toml"
> 
>     if cargo_toml_path |> file_system.file_exists |> not
>     then get_empty_cargo_toml_content () |> file_system.write_all_text 
> cargo_toml_path
> 
>     inl lib_link_target_path = workspace_root </> 
> "lib/rust/fable/fable_modules/fable-library-rust"
>     inl lib_link_path = package_dir </> "fable_modules/fable-library-rust"
> 
>     lib_link_path |> file_system.link_directory lib_link_target_path
> 
>     inl exit_code, dotnet_fable_result =
>         execute_dotnet_fable { workspace_root_external fsproj_path extension 
> package_dir runtime }
> 
>     inl result' = {
>         extension = Some extension
>         code = None
>         code_path = None
>         output = None
>     }
> 
>     if exit_code <>. 0 then
>         trace Critical
>             fun () => "spiral.process_rust / dotnet fable error"
>             fun () => { exit_code dotnet_fable_result }
>         { result' with
>             output = Some dotnet_fable_result
>         }
>     else
>         inl deps =
>             inl deps =
>                 if runtime = None
>                 then deps
>                 else
>                     // TODO: simplify
>                     inl has_near_sdk =
>                         deps
>                         |> am'.vec_filter (sm'.from_std_string >> sm'.contains 
> "near-sdk")
>                         |> am'.vec_len
>                         |> i32
>                         |> fun n => n > 0
>                     // TODO: simplify with ++
>                     if has_near_sdk
>                     then deps
>                     else deps |> am'.vec_extend (;[[ "near-sdk" |> 
> sm'.to_std_string ]] |> am'.to_vec)
>             deps
>             |> am'.vec_map fun dep =>
>                 inl dep = dep |> sm'.from_std_string
>                 if dep |> sm'.contains "="
>                 then dep
>                 elif dep |> sm'.ends_with "]]"
>                 then dep |> sm'.replace "[[" $'$"={{version=\'*\',features=[["' 
> |> fun x => $'$"{!x}}}"'
>                 else $'$"{!dep}=\'*\'"'
>             |> am'.from_vec
>             |> fun x => x : _ i32 _
>             |> seq.of_array'
>             |> sm'.concat "\n"
> 
>         inl new_code_path = package_dir </> $'$"{!workspace_name}.{!extension}"'
>         inl new_code = new_code_path |> file_system.read_all_text
> 
>         inl on_startup_text = "on_startup!" ++# (join "(")
>         inl method0_fn_text = " method0" ++# (join "(")
>         inl static_do_bindings =
>             (new_code |> sm'.contains on_startup_text)
>             && (new_code |> sm'.contains method0_fn_text |> not)
>         inl cargo_toml_content =
>             get_cargo_toml_content { hash_hex runtime deps static_do_bindings }
>         inl workspace_cargo_toml_content = get_workspace_cargo_toml_content { 
> workspace_root }
> 
>         cargo_toml_content |> file_system.write_all_text_exists cargo_toml_path
>         workspace_cargo_toml_content |> file_system.write_all_text_exists 
> workspace_cargo_toml_path
> 
>         inl range_rs_path = lib_link_path </> "src/Range.rs"
>         if range_rs_path |> file_system.file_exists then
>             inl text = range_rs_path |> file_system.read_all_text
>             text
>             |> sm'.replace "use crate::String_::fromCharCode;" "use 
> crate::String_::fromChar;"
>             |> sm'.replace "fromCharCode(c)" "std::char::from_u32(c).unwrap()"
>             |> file_system.write_all_text_exists range_rs_path
> 
>         inl exit_code, cargo_fmt_result =
>             fun () =>
>                 inl exit_code, result =
>                     execution_options fun x => { x with
>                         command = $'$"cargo fmt --manifest-path 
> \\\"{!cargo_toml_path}\\\" --"'
>                         working_directory = workspace_root_external |> 
> resultm.box |> resultm.ok'
>                     }
>                     |> execute_with_options
> 
>                 inl return () =
>                     if exit_code = 0
>                     then Ok (exit_code, result)
>                     else Error (exit_code, result)
> 
>                 if result |> sm'.contains "failed to load manifest for workspace
> member" |> not
>                 then return ()
>                 else
>                     inl missing_toml_path =
>                         "failed to read `(?<a>.*?Cargo.toml)`"
>                         |> sm'.new_regex
>                         |> resultm.unwrap'
>                         |> sm'.regex_captures result
>                         |> am'.from_vec
>                         |> fun x => x : _ i32 _
>                         |> am'.try_item 0
>                         |> optionm.map (mapm.get "a" >> optionm'.unbox)
>                         |> optionm'.flatten
> 
>                     match missing_toml_path with
>                     | None => Error (exit_code, result)
>                     | Some missing_toml_path =>
>                         if missing_toml_path |> file_system.file_exists |> not 
> then
>                             missing_toml_path
>                             |> file_system.directory_get_parent
>                             |> optionm'.default_value' ""
>                             |> file_system.create_dir
>                             |> ignore
> 
>                             get_empty_cargo_toml_content ()
>                             |> file_system.write_all_text missing_toml_path
>                         return ()
>             |> retry_fn' 3u8
> 
>         if exit_code <>. 0 then
>             trace Critical
>                 fun () => "spiral.process_rust / cargo fmt error"
>                 fun () => { exit_code cargo_fmt_result }
> 
>         inl new_code = new_code_path |> file_system.read_all_text
> 
>         inl main_code_header =
>             "pub fn main() -> Result<(), String> " ++# (join "{")
> 
>         inl main_code : string =
>             if runtime = None
>             then ""
>             else
>                 $'$"#[[near_sdk::near_bindgen]]"'
>                 ++\# $'$"#[[derive(near_sdk::PanicOnDefault)]]"'
>                 ++\# $'$"pub struct MainState {{"'
>                 ++\# $'$"}}"'
>                 ++\# $'$""'
>                 ++\# $'$"#[[near_sdk::near_bindgen]]"'
>                 ++\# $'$"impl MainState {{"'
>                 ++\# $'$"    pub fn state_main() {{"'
>                 ++\# $'$"        Spiral::method0();"'
>                 ++\# $'$"    }}"'
>                 ++\# $'$"}}"'
>             ++\# (
>                 if runtime = None && (new_code |> sm'.contains (on_startup_text 
> ++# "Spiral::method0()"))
>                 then $'$"{!main_code_header} Ok(Spiral::method0()) }}"'
>                 else $'$"{!main_code_header} Ok(()) }}"'
>             )
> 
>         inl cached = new_code |> sm'.contains main_code_header
> 
>         inl new_code' = $'$"{!new_code}\\n\\n{!main_code}\\n"'
>         inl new_code =
>             if cached
>             then new_code
>             else
>                 inl runtime_contract =
>                     match runtime with
>                     | Some (Contract _) => true
>                     | _ => false
> 
>                 new_code'
>                 |> sm'.replace
>                     ("),)" ++# !\($'"\\\";\\\".into()"'))
>                     "));"
>                 |> sm'.replace
>                     ("},)" ++# !\($'"\\\";\\\".into()"'))
>                     "});"
>                 |> sm'.replace_regex
>                     "\\s\\sdefaultOf\\(\\);"
>                     " defaultOf::<()>();"
>                 |> sm'.replace_regex
>                     "\\s\\sgetZero\\(\\);"
>                     " getZero::<()>();"
>                 |> sm'.replace
>                     ("(&e.get_Curren" ++# !\($'"\\\"t\\\".into()"'))
>                     "(e.get_Current"
>                 |> sm'.replace
>                     ("getNull" ++# !\($'"\\\"::<()>()\\\".into()"'))
>                     "fable_library_rust::Native_::getZero()"
> 
> 
>                 |> sm'.replace
>                     ("null::<()>(" ++# !\($'$"\\\")\\\".into()"'))
>                     "fable_library_rust::Native_::getZero()"
>                 |> sm'.replace_regex
>                     "null::<\\(\\)>\\(\\)"
>                     "fable_library_rust::Native_::getZero()"
> 
>                 |> sm'.replace_regex
>                     "\\(null::<\\(\\)>\\(\\)"
>                     "(null()"
>                 |> sm'.replace_regex
>                     " null::<\\(\\)>\\(\\)"
>                     " null()"
>                 |> sm'.replace_regex
>                     "unbox::<bool>\\(null\\(\\)"
>                     "false"
>                 |> sm'.replace_regex
>                     "unbox::<string>\\(null\\(\\)"
>                     "fable_library_rust::Native_::getZero()"
>                 |> sm'.replace_regex
>                     "unbox::<i32>\\(null\\(\\)"
>                     "0"
>                 |> sm'.replace_regex
>                     "unbox::<i32>\\(null::<\\(\\)>\\(\\)\\)"
>                     "0"
>                 |> sm'.replace_regex
>                     "null\\(\\)"
>                     "fable_library_rust::Native_::getZero()"
> 
>                 |> sm'.replace_regex
>                     "\\s\\sfable_library_rust::Native_::getZero\\(\\);"
>                     " fable_library_rust::Native_::getZero::<()>();"
> 
>                 |> sm'.replace
>                     " gen:"
>                     " f:"
>                 |> sm'.replace_regex
>                     "\\(gen\\("
>                     "(f("
>                 |> sm'.replace_regex
>                     "\\(gen,"
>                     "(f,"
>                 |> sm'.replace
>                     " gen "
>                     " f "
> 
>                 |> sm'.replace
>                     "::Slice'_"
>                     "::Slice__"
>                 |> sm'.replace
>                     " Slice'_"
>                     " Slice__"
>                 |> sm'.replace
>                     ("defaultOf()" ++# !\($'"\\\",\\\".into()"'))
>                     "defaultOf::<std::sync::Arc<dyn IDisposable>>(),"
>                 |> sm'.replace
>                     ("__self" ++# !\($'"\\\"__.\\\".into()"'))
>                     "self."
>                 |> sm'.replace
>                     ("_self" ++# !\($'"\\\"_.\\\".into()"'))
>                     "self."
>                 |> sm'.replace
>                     ("get_or_insert_wit" ++# !\($'"\\\"h\\\".into()"'))
>                     "get_or_init"
>                 |> sm'.replace
>                     ("use 
> fable_library_rust::System::Collections::Concurrent::ConcurrentStack_1" ++# 
> !\($'"\\\";\\\".into()"'))
>                     "type ConcurrentStack_1<T> = T;"
>                 |> sm'.replace
>                     ("use fable_library_rust::System::TimeZoneInfo" ++# 
> !\($'"\\\";\\\".into()"'))
>                     "type TimeZoneInfo = i64;"
>                 |> sm'.replace
>                     ("use 
> fable_library_rust::System::Threading::Tasks::TaskCanceledException" ++# 
> !\($'"\\\";\\\".into()"'))
>                     "type TaskCanceledException = ();"
>                 |> if static_do_bindings
>                     then id
>                     else sm'.replace
>                             on_startup_text
>                             ("// " ++# on_startup_text)
>                 |> if runtime_contract |> not
>                     then id
>                     else sm'.replace
>                             ("use fable_library_rust::DateTime_::DateTime" ++# 
> ";")
>                             "type DateTime = ();"
> 
>         if not cached then
>             new_code
>             |> file_system.write_all_text_exists new_code_path
> 
>         inl command =
>             if runtime <> None
>             then $'$"cargo +nightly-2024-07-14 build --release --target 
> wasm32-unknown-unknown --manifest-path \\\"{!cargo_toml_path}\\\""'
>             else $'$"cargo run --manifest-path \\\"{!cargo_toml_path}\\\""'
>         inl environment_variables =
>             if runtime <> None
>             then ;[[]]
>             else
>                 inl fast = false
>                 ;[[
>                     "TRACE_LEVEL", "Verbose"
>                     "RUSTC_WRAPPER", "sccache"
>                     "RUST_BACKTRACE", "full"
>                     "RUSTFLAGS",
>                     if fast
>                     then "-C prefer-dynamic -C strip=symbols -C link-arg=-s -C 
> debuginfo=0"
>                     else "-C prefer-dynamic"
>                 ]]
>         inl exit_code, cargo_result =
>             execution_options fun x => { x with
>                 command
>                 environment_variables
>                 working_directory = workspace_root_external |> resultm.box |> 
> resultm.ok'
>             }
>             |> execute_with_options
> 
>         inl result =
>             if runtime = None then
>                 inl external_command =
>                     inl vars =
>                         a environment_variables
>                         |> am.map fun k, v => $'$"$env:{!k}=\'\'{!v}\'\'"' : 
> string
>                         |> fun x => x : _ i32 _
>                         |> seq.of_array
>                         |> sm'.concat ";"
>                     inl command =
>                         a ;[[
>                             vars
>                             command
>                         ]]
>                         |> fun x => x : _ i32 _
>                         |> seq.of_array
>                         |> sm'.concat ";"
>                     $'$"pwsh -c \'{!command}\'"' : string
>                 if exit_code <>. 0 then
>                     trace Critical
>                         fun () => "spiral.process_rust / error"
>                         fun () => { exit_code new_code_path external_command 
> cleanup cargo_result }
>                     result'
>                 else
>                     inl output =
>                         try
>                             fun () =>
>                                 cargo_result
>                                 |> sm'.split "\n"
>                                 |> fun x => a x : _ i32 _
>                                 |> am'.skip_while fun line =>
>                                     (line |> sm'.contains "profile [[optimized]]
> target" |> not)
>                                         && (line |> sm'.contains "profile 
> [[unoptimized]] target" |> not)
>                                         && (line |> sm'.contains "profile 
> [[unoptimized + debuginfo]] target" |> not)
>                                 |> am'.skip 2
>                                 |> seq.of_array
>                                 |> sm'.concat "\n"
>                             fun ex =>
>                                 trace Critical
>                                     fun () => "spiral.process_rust / Exception"
>                                     fun () => { ex new_code_path 
> external_command cargo_result }
>                                 None
>                         |> optionm'.box
>                         |> optionm'.unwrap
>                     { result' with
>                         code = Some new_code
>                         code_path = Some new_code_path
>                         output = Some output
>                     }
>             else
>                 inl wasm_path : string =
>                     
> $'$"target/spiral/{!workspace_name}/target/wasm32-unknown-unknown/release/spiral
> _{!hash_hex}.wasm"'
> 
>                 inl command =
>                     inl invoke_block_path = "scripts/invoke-block.ps1"
>                     inl spiral_wasm_command : string =
>                         inl runtime_cmd =
>                             match runtime with
>                             | Some (Wasm cmd) => cmd
>                             | Some (Contract cmd) => cmd
>                             | _ => ""
>                         $'$"\'deps/spiral/workspace/target/release/spiral_wasm 
> -w {!wasm_path} -t debug {!runtime_cmd}\'"'
>                     inl automation = "AUTOMATION" |> 
> env.get_environment_variable
>                     $'$"pwsh -c \\\"pwsh {!invoke_block_path} 
> {!spiral_wasm_command} -Linux -EnvironmentVariables 
> AUTOMATION={!automation}\`nNEAR_RPC_TIMEOUT_SECS=100\\\""'
> 
>                 if exit_code = 0 then
>                     inl exit_code, spiral_wasm_result =
>                         execution_options fun x => { x with
>                             command
>                             working_directory = workspace_root |> optionm'.some'
>                         }
>                         |> execute_with_options
> 
>                     if exit_code = 0 then
>                         { result' with
>                             code = Some new_code
>                             code_path = Some new_code_path
>                             output = Some spiral_wasm_result
>                         }
>                     else
>                         trace Critical
>                             fun () => "spiral.process_rust / wasm error"
>                             fun () => {
>                                 exit_code new_code_path cargo_result cleanup
>                                 spiral_wasm_result = 
> $'$"\\n{!spiral_wasm_result}"' : string
>                             }
>                         result'
>                 else
>                     trace Critical
>                         fun () => "spiral.process_rust / cargo error"
>                         fun () => {
>                             exit_code new_code_path wasm_path command cleanup
>                             cargo_result = $'$"\\n{!cargo_result}"' : string
>                         }
>                     result'
> 
>         if cleanup then
>             inl cleanup =
>                 inl build_target =
>                     if runtime <> None
>                     then "wasm32-unknown-unknown/release"
>                     else "debug"
> 
>                 [[ ".d"; ".exe"; ".pdb"; ".wasm"; "" ]]
>                 |> listm.map fun ext =>
>                     workspace_dir </> 
> $'$"target/{!build_target}/spiral_{!hash_hex}{!ext}"'
>                 |> listm.map fun path => path, path |> file_system.file_exists
> 
>             trace Verbose
>                 fun () => "spiral.process_rust / cleanup"
>                 fun () => { new_code_path cleanup }
> 
>             cleanup
>             |> listm'.filter snd
>             |> listm.iter (fst >> file_system.file_delete)
> 
>         result
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## dib
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### process_dib
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl process_dib { path retries working_directory } =
>     inl exit_code, repl_result =
>         let rec loop retry =
>             inl exit_code, repl_result =
>                 runtime.execution_options fun x => { x with
>                     command = $'$"dotnet repl --exit-after-run --run 
> \\\"{!path}\\\" --output-path \\\"{!path}.ipynb\\\""'
>                     environment_variables = ;[[
>                         "TRACE_LEVEL", "Verbose"
>                         "AUTOMATION", "True"
>                     ]]
>                     trace = false
>                     working_directory = working_directory |> optionm'.box
>                 }
>                 |> runtime.execute_with_options
> 
>             if exit_code = 0 || retry >= retries
>             then exit_code, repl_result
>             else
>                 trace Debug
>                     fun () => "spiral.run / repl error"
>                     fun () => { exit_code repl_result retry = 
> $'$"{!retry}/{!retries}"' : string }
>                 loop (retry + 1)
>         loop 1
> 
>     inl exit_code, result =
>         if exit_code <>. 0
>         then exit_code, repl_result
>         else
>             inl exit_code, jupyter_result =
>                 runtime.execution_options fun x => { x with
>                     command = $'$"jupyter nbconvert \\\"{!path}.ipynb\\\" --to 
> html --HTMLExporter.theme=dark"'
>                 }
>                 |> runtime.execute_with_options
> 
>             trace Debug
>                 fun () => "spiral.run / dib / jupyter nbconvert"
>                 fun () => { exit_code jupyter_result_length = jupyter_result |> 
> sm'.length : i32 }
> 
>             if exit_code <>. 0
>             then exit_code, $'$"repl_result: {!repl_result}\n\njupyter_result: 
> {!jupyter_result}"'
>             else
>                 inl exit_code, pwsh_replace_html_result =
>                     inl path = path |> sm'.replace "'" "''"
>                     runtime.execution_options fun x => { x with
>                         command = $'$"pwsh -c \\\"$counter = 1; $path = 
> \'{!path}.html\'; (Get-Content $path -Raw) -replace 
> \'(id=\\\\\\"cell-id=)[[a-fA-F0-9]]{{8}}\', {{ $_.Groups[[1]].Value + $counter++
> }} | Set-Content $path\\\""'
>                     }
>                     |> runtime.execute_with_options
> 
>                 trace Debug
>                     fun () => "spiral.run / dib / html cell ids"
>                     fun () => { exit_code pwsh_replace_html_result_length = 
> pwsh_replace_html_result |> sm'.length : i32 }
> 
>                 $'$"{!path}.html"'
>                 |> file_system.read_all_text
>                 |> sm'.replace "\r\n" "\n"
>                 |> file_system.write_all_text $'$"{!path}.html"'
> 
>                 $'$"{!path}.ipynb"'
>                 |> file_system.read_all_text
>                 |> sm'.replace "\r\n" "\n"
>                 |> sm'.replace "\\r\\n" "\\n"
>                 |> file_system.write_all_text $'$"{!path}.ipynb"'
> 
>                 exit_code, $'$"repl_result: {!repl_result}\n\njupyter_result: 
> {!jupyter_result}\n\npwsh_replace_html_result: {!pwsh_replace_html_result}"'
> 
>     trace Debug
>         fun () => "spiral.run / dib"
>         fun () => { exit_code result_length = result |> sm'.length : i32 }
> 
>     if exit_code <>. 0
>     then failwith $'$"spiral.run / dib / exit_code: {!exit_code} / result: 
> {!result}"'
>     ;[[
>         "stdio",
>         result
>     ]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## typescript
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### process_typescript
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl process_typescript { fs_path deps trace_level } =
>     inl extension = "ts"
> 
>     inl code = fs_path |> file_system.read_all_text
> 
>     inl hash_hex = (extension, code) |> sm'.format_debug |> crypto.hash_text
> 
>     inl workspace_name = "spiral"
> 
>     inl workspace_root_external = file_system.get_workspace_root_external ()
>     inl workspace_root = workspace_root_external |> resultm.box |> 
> resultm.unwrap_or_else id
> 
>     inl package_dir =
>         get_package_dir
>             { workspace_root name = workspace_name; target = Some TypeScript; 
> hash = Some hash_hex }
> 
>     inl fsproj_path =
>         persist_code_project {
>             workspace_root
>             package_dir
>             packages = [[ "Fable.Core", "4.3.0" ]]
>             modules = [[]]
>             name = workspace_name
>             code
>         }
> 
>     inl lib_path = workspace_root </> "lib/typescript/fable/fable_modules"
>     inl lib_dir_prefix = $'$"fable-library-{!extension}"'
>     inl lib_dir_prefix' = join lib_dir_prefix
> 
>     inl versions : _ (string * string) =
>         lib_path
>         |> file_system.new_walk_dir
>         |> file_system.walk_dir_filter fun entry => async.new_future_move_send 
> fun () =>
>             entry
>             |> file_system.dir_entry_file_type
>             |> async.await_send
>             |> resultm.map_error' sm'.format'
>             |> resultm.unbox
>             |> function
>                 | Ok file_type when file_type |> file_system.file_type_is_dir |>
> not => file_system.Ignore
>                 | _ =>
>                     inl path =
>                         entry
>                         |> file_system.dir_entry_path
>                         |> file_system.path_buf_display
>                         |> sm'.format'
>                         |> sm'.from_std_string
>                     if path |> file_system.get_directory_name |> sm'.starts_with
> lib_dir_prefix |> not
>                     then file_system.IgnoreDir
>                     else
>                         match path |> file_system.directory_get_parent |> 
> optionm'.unbox with
>                         | Some parent when parent |> sm'.contains lib_dir_prefix
> |> not =>
>                             file_system.Continue
>                         | _ => file_system.IgnoreDir
>         |> async.stream_filter_map_futures fun (entry : _ _ 
> file_system.async_walkdir_error) =>
>             inl entry = entry |> resultm.map_error' sm'.format' |> resultm.unbox
>             match entry with
>             | Ok entry =>
>                 inl path =
>                     entry
>                     |> file_system.dir_entry_path
>                     |> file_system.path_buf_display
>                     |> sm'.format'
>                     |> sm'.from_std_string
>                 inl version =
>                     $'$"{!lib_dir_prefix'}\\.(?<a>[[-\\d\\w.]]+)$"'
>                     |> sm'.new_regex
>                     |> resultm.unwrap'
>                     |> sm'.regex_captures path
>                     |> am'.from_vec
>                     |> fun x => x : _ int _
>                     |> am'.try_item 0
>                     |> optionm.map (mapm.get "a" >> optionm'.unbox)
>                     |> optionm'.flatten
>                 version
>                 |> optionm.map fun version =>
>                     path, version
>             | Error error =>
>                 trace Critical
>                     fun () => "spiral.process_typescript / stream_filter_map"
>                     fun () => { error }
>                 None
>             |> optionm'.box
>         |> async.stream_collect_futures
>         |> async.await
>         |> async.into_par_iter
>         |> async.par_map id
>         |> async.par_collect
> 
>     inl version =
>         versions
>         |> am'.from_vec
>         |> fun x => x : _ i32 _
>         |> am'.try_item 0
> 
>     trace Debug
>         fun () => "spiral.process_typescript"
>         fun () => { version }
> 
> 
>     let link_lib () =
>         match version with
>         | Some (_path, version) =>
>             inl lib_link_target_path = lib_path </> 
> $'$"fable-library-{!extension}.{!version}"'
>             inl lib_link_path = package_dir </> 
> $'$"fable_modules/fable-library-{!extension}.{!version}"'
>             lib_link_path |> file_system.link_directory lib_link_target_path
>         | None => failwith $'$"spiral.process_typescript / fable library not 
> found / lib_path: {!lib_path}"'
> 
>     link_lib ()
> 
>     inl exit_code, dotnet_fable_result =
>         execute_dotnet_fable { workspace_root_external fsproj_path extension 
> package_dir runtime = None }
> 
>     link_lib ()
> 
>     if exit_code <>. 0 then
>         trace Critical
>             fun () => "spiral.process_typescript"
>             fun () => { exit_code dotnet_fable_result }
>         { extension = Some extension; code = None; code_path = None; output = 
> Some dotnet_fable_result }
>     else
>         inl deps =
>             deps
>             |> am'.vec_map fun dep =>
>                 inl dep = dep |> sm'.from_std_string
>                 if dep |> sm'.contains "="
>                 then dep
>                 else $'$"\\"{!dep}\\":\\"*\\""'
>             |> am'.from_vec
>             |> fun x => x : _ i32 _
>             |> seq.of_array'
>             |> sm'.concat ",\n"
> 
>         inl package_json_content =
>             $'$"{{"'
>             +. $'$"  \\\"name\\\": \\\"spiral_{!hash_hex}\\\","'
>             +. $'$"  \\\"dependencies\\\": {{"'
>             +. deps
>             +. $'$"  }},"'
>             +. $'$"    \\\"devDependencies\\\": {{"'
>             +. $'$"  }},"'
>             +. $'$"}}"'
> 
>         inl workspace_package_json_content =
>             ""
> 
>         inl package_json_path = package_dir </> "package.json"
> 
>         inl workspace_dir = package_dir </> "../.."
>         inl workspace_package_json_path = workspace_dir </> "package.json"
> 
>         package_json_content |> file_system.write_all_text_exists 
> package_json_path
> 
>         workspace_package_json_content |> file_system.write_all_text_exists 
> workspace_package_json_path
> 
>         inl new_code_path = package_dir </> $'$"{!workspace_name}.{!extension}"'
>         trace Debug
>             fun () => "spiral.process_typescript"
>             fun () => { new_code_path }
>         inl new_code = new_code_path |> file_system.read_all_text
> 
>         inl main_code_header =
>             "// spiral.process_typescript"
>         inl main_code = "// spiral.process_typescript"
> 
>         inl cached = new_code |> sm'.contains main_code_header
> 
>         inl new_code =
>             if cached
>             then new_code
>             else
>                 new_code
>                 |> sm'.replace
>                     $'$"\\\"./fable_modules/fable-library-ts.{!version}/"'
>                     
> $'$"\\\"{!workspace_root}/lib/typescript/fable/fable_modules/fable-library-ts.{!
> version}/"'
>                 |> sm'.replace_regex
>                     "\\s\\sdefaultOf\\(\\);"
>                     " defaultOf::<()>();"
> 
>         if not cached then
>             $'$"{!new_code}\\n\\n{!main_code}\\n"'
>             |> file_system.write_all_text_exists new_code_path
> 
>         inl command = $'$"bun --bun run \\\"{!new_code_path}\\\""'
>         inl environment_variables =
>             match "~/.bun/bin" |> env.append_path with
>             | Some path => [[ "PATH", path ]]
>             | None => [[]]
>             ++ [[
>                 "TRACE_LEVEL", "Verbose"
>             ]]
>             |> listm'.box
>             |> listm'.to_array'
>         inl exit_code, run_result =
>             runtime.execution_options fun x => { x with
>                 command
>                 environment_variables
>                 working_directory = workspace_root_external |> resultm.box |> 
> resultm.ok'
>             }
>             |> runtime.execute_with_options
> 
>         inl external_command =
>             inl vars =
>                 a environment_variables
>                 |> am.map fun k, v => $'$"$env:{!k}=\'\'{!v}\'\'"' : string
>                 |> fun x => x : _ i32 _
>                 |> seq.of_array
>                 |> sm'.concat ";"
>             $'$"pwsh -c \'{!vars}; {!command}\'"' : string
>         if exit_code = 0 then
>             inl output =
>                 try
>                     fun () =>
>                         run_result
>                         |> sm'.split "\n"
>                         |> fun x => a x : _ i32 _
>                         |> seq.of_array
>                         |> sm'.concat "\n"
>                     fun ex =>
>                         trace Critical
>                             fun () => "spiral.process_typescript / Exception"
>                             fun () => { ex new_code_path external_command 
> run_result }
>                         None
>                 |> optionm'.box
>                 |> optionm'.unwrap
> 
>             {
>                 extension = Some extension
>                 code = Some new_code
>                 code_path = Some new_code_path
>                 output = Some output
>             }
>         else
>             trace Critical
>                 fun () => "spiral.process_typescript / error"
>                 fun () => { exit_code run_result new_code_path external_command 
> }
>             { extension = Some extension; code = None; code_path = None; output 
> = None }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## python
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### process_python
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl process_python { fs_path deps trace_level } =
>     inl extension = "py"
>     inl is_trace = trace_level = Verbose
>     inl _trace (fn : () -> string) =
>         if is_trace
>         then trace Info (fun () => $'$"spiral.process_python / {!fn ()}"') id
>         else fn () |> console.write_line
> 
>     inl code = fs_path |> file_system.read_all_text
> 
>     inl hash_hex = (extension, code) |> sm'.format_debug |> crypto.hash_text
> 
>     inl workspace_name = "spiral"
> 
>     inl workspace_root_external = file_system.get_workspace_root_external ()
>     inl workspace_root = workspace_root_external |> resultm.box |> 
> resultm.unwrap_or_else id
> 
>     inl package_dir =
>         get_package_dir { workspace_root name = workspace_name; target = Some 
> Python; hash = Some hash_hex }
> 
>     inl fsproj_path =
>         persist_code_project {
>             workspace_root
>             package_dir
>             packages = [[ "Fable.Core", "4.3.0" ]]
>             modules = [[]]
>             name = workspace_name
>             code
>         }
> 
>     inl lib_path = workspace_root </> "lib/python/fable/fable_modules"
> 
>     inl lib_link_target_path = lib_path </> $'$"fable_library"'
>     inl lib_link_path = package_dir </> $'$"fable_modules/fable_library"'
> 
>     lib_link_path |> file_system.link_directory lib_link_target_path
> 
>     inl exit_code, dotnet_fable_result =
>         execute_dotnet_fable { workspace_root_external fsproj_path extension 
> package_dir runtime = None }
> 
>     if exit_code <>. 0 then
>         trace Critical
>             fun () => "spiral.process_python"
>             fun () => { exit_code dotnet_fable_result }
>         { extension = Some extension; code = None; code_path = None; output = 
> Some dotnet_fable_result }
>     else
>         inl deps =
>             deps
>             |> am'.vec_map fun dep =>
>                 inl dep = dep |> sm'.from_std_string
>                 if dep |> sm'.contains "="
>                 then dep
>                 else $'$"\\"{!dep}\\":\\"*\\""'
>             |> am'.from_vec
>             |> fun x => x : _ i32 _
>             |> seq.of_array'
>             |> sm'.concat ",\n"
> 
>         inl package_json_content =
>             $'$"{{"'
>             +. $'$"  \\\"name\\\": \\\"spiral_{!hash_hex}\\\","'
>             +. $'$"  \\\"dependencies\\\": {{"'
>             +. deps
>             +. $'$"  }},"'
>             +. $'$"    \\\"devDependencies\\\": {{"'
>             +. $'$"  }},"'
>             +. $'$"}}"'
> 
>         inl workspace_package_json_content =
>             ""
> 
>         inl package_json_path = package_dir </> "package.json"
> 
>         inl workspace_dir = package_dir </> "../.."
>         inl workspace_package_json_path = workspace_dir </> "package.json"
> 
>         package_json_content |> file_system.write_all_text_exists 
> package_json_path
> 
>         workspace_package_json_content |> file_system.write_all_text_exists 
> workspace_package_json_path
> 
>         inl new_code_path = package_dir </> $'$"{!workspace_name}.{!extension}"'
>         trace Debug
>             fun () => "spiral.process_python"
>             fun () => { new_code_path }
>         inl new_code = new_code_path |> file_system.read_all_text
> 
>         inl main_code_header =
>             "# spiral.process_python"
>         inl main_code = "# spiral.process_python"
> 
>         inl cached = new_code |> sm'.contains main_code_header
> 
>         inl new_code =
>             if cached
>             then new_code
>             else
>                 new_code
>                 |> sm'.replace
>                     ("),)" +. !\($'"\\\";\\\".into()"'))
>                     "));"
>                 |> sm'.replace_regex
>                     "\\s\\sdefaultOf\\(\\);"
>                     " defaultOf::<()>();"
> 
>         if not cached
>         then
>             $'$"{!new_code}\\n\\n{!main_code}\\n"'
>             |> file_system.write_all_text_exists new_code_path
> 
>         inl command = $'$"python \\\"{!new_code_path}\\\""'
>         inl environment_variables =
>             ;[[
>                 "TRACE_LEVEL", "Verbose"
>             ]]
>         inl exit_code, run_result =
>             runtime.execution_options fun x => { x with
>                 command
>                 environment_variables
>                 working_directory = workspace_root_external |> resultm.box |> 
> resultm.ok'
>             }
>             |> runtime.execute_with_options
> 
>         inl external_command =
>             inl vars =
>                 a environment_variables
>                 |> am.map fun k, v => $'$"$env:{!k}=\'\'{!v}\'\'"' : string
>                 |> fun x => x : _ i32 _
>                 |> seq.of_array
>                 |> sm'.concat ";"
>             $'$"pwsh -c \'{!vars}; {!command}\'"' : string
>         if exit_code = 0 then
>             inl output =
>                 try
>                     fun () =>
>                         run_result
>                         |> sm'.split "\n"
>                         |> fun x => a x : _ i32 _
>                         |> seq.of_array
>                         |> sm'.concat "\n"
>                     fun ex =>
>                         trace Critical
>                             fun () => "spiral.process_python / Exception"
>                             fun () => { ex new_code_path external_command 
> run_result }
>                         None
>                 |> optionm'.box
>                 |> optionm'.unwrap
> 
>             {
>                 extension = Some extension
>                 code = Some new_code
>                 code_path = Some new_code_path
>                 output = Some output
>             }
>         else
>             trace Critical
>                 fun () => "spiral.process_python / error"
>                 fun () => { exit_code run_result new_code_path external_command 
> }
>             { extension = Some extension; code = None; code_path = None; output 
> = None }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## gleam
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### process_gleam
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl process_gleam { gleam_path target deps } =
>     inl extension = "gleam"
> 
>     inl new_code_path = gleam_path
>     inl new_code = new_code_path |> file_system.read_all_text
> 
>     inl hash_hex = { extension new_code } |> sm'.format |> crypto.hash_text
> 
>     inl workspace_root_external = file_system.get_workspace_root_external ()
>     inl workspace_root =
>         workspace_root_external |> resultm.box |> resultm.unwrap_or_else id |> 
> file_system.standardize_path
> 
>     inl src_dir =
>         new_code_path
>         |> file_system.directory_get_parent
>         |> optionm'.default_value' ""
>         |> file_system.standardize_path
> 
>     inl package_dir = src_dir </> ".." |> file_system.standardize_path
> 
>     inl manifest_path = package_dir </> "gleam.toml"
> 
>     inl deps =
>         ;[[
>             "gleam_stdlib=\"0.57.0\""
>             "gleam_time=\">=1.0.0 and <2.0.0\""
>             "gleam_erlang=\">=0.34.0 and <1.0.0\""
>             "envoy=\">=1.0.0 and <2.0.0\""
>             "gary=\">=1.1.0 and <2.0.0\""
>         ]]
>         |> am'.to_vec
>         |> am'.vec_map sm'.to_std_string
>         |> am'.vec_extend deps
>         |> am'.vec_map fun dep =>
>             inl dep = dep |> sm'.from_std_string
>             if dep |> sm'.contains "="
>             then dep
>             elif dep |> sm'.ends_with "]]"
>             then dep |> sm'.replace "[[" $'$"={{version=\'*\',features=[["' |> 
> fun x => $'$"{!x}}}"'
>             else $'$"{!dep}=\'*\'"'
>         |> am'.from_vec
>         |> fun x => x : _ i32 _
>         |> seq.of_array'
>         |> sm'.concat "\n"
> 
>     inl target' = target |> reflection.union_to_string |> sm'.to_lower
> 
>     inl manifest =
>         inl main =
>             if new_code_path |> sm'.contains "_real"
>             then "main_real"
>             else "main"
>         $'$"name = \\\"{!main}\\\""'
>         ++\# $'$"target = \\\"{!target'}\\\""'
>         ++\# $'$""'
>         ++\# $'$"[[dependencies]]"'
>         ++\# $'$"{!deps}"'
> 
>     manifest |> file_system.write_all_text_exists manifest_path
> 
>     inl exit_code, run_result =
>         runtime.execution_options fun x => { x with
>             command = $'$"gleam check"'
>             working_directory = package_dir |> optionm'.some'
>         }
>         |> runtime.execute_with_options
> 
>     if exit_code <>. 0 then
>         trace Critical
>             fun () => "spiral.process_gleam / check error"
>             fun () => { exit_code run_result new_code_path }
>         { extension = Some extension; code = None; code_path = None; output = 
> None }
>     else
>         inl command =
>             if target = Erlang
>             then $'$"gleam run --no-print-progress \\\"{!new_code_path}\\\""' : 
> string
>             else $'$"gleam build --no-print-progress"'
>         inl environment_variables =
>             ;[[
>                 "TRACE_LEVEL", ""
>                 "GLEAM_LOG", ""
>                 "GLEAM_LOG_NOCOLOUR", ""
>             ]]
>         inl exit_code, run_result =
>             runtime.execution_options fun x => { x with
>                 command
>                 environment_variables
>                 working_directory = package_dir |> optionm'.some'
>             }
>             |> runtime.execute_with_options
> 
>         inl external_command =
>             inl vars =
>                 a environment_variables
>                 |> am.map fun k, v => $'$"$env:{!k}=\'\'{!v}\'\'"' : string
>                 |> fun x => x : _ i32 _
>                 |> seq.of_array
>                 |> sm'.concat ";"
>             $'$"pwsh -c \'{!vars}; {!command}\'"' : string
>         if exit_code <>. 0 then
>             trace Critical
>                 fun () => "spiral.process_gleam / error"
>                 fun () => { exit_code run_result new_code_path external_command 
> }
>             { extension = Some extension; code = None; code_path = None; output 
> = None }
>         else
>             inl run_result =
>                 if target = Erlang
>                 then run_result
>                 else
>                     inl js_path = 
> $'$"{!package_dir}/build/dev/javascript/main/main.mjs"'
>                     inl js_text = js_path |> file_system.read_all_text
>                     inl js_text = js_text |> sm'.replace $'$"#app_"' 
> $'$"#app_{!hash_hex}"'
>                     if js_text |> sm'.ends_with "main()" |> not then
>                         $'$"{!js_text}\nmain()"'
>                         |> file_system.write_all_text_exists js_path
> 
>                     inl exit_code, run_result =
>                         runtime.execution_options fun x => { x with
>                             command =
>                                 $'$"bunx --bun esbuild --bundle --minify 
> --loader:.wasm=file --outdir={!src_dir} {!js_path}"'
>                             environment_variables =
>                                 match "~/.bun/bin" |> env.append_path with
>                                 | Some path => ;[[ "PATH", path ]]
>                                 | None => ;[[]]
>                             working_directory = package_dir |> optionm'.some'
>                         }
>                         |> runtime.execute_with_options
> 
>                     if exit_code <>. 0 then
>                         trace Critical
>                             fun () => "spiral.process_gleam / esbuild error"
>                             fun () => { exit_code run_result new_code_path }
>                         ""
>                     else
>                         inl html =
>                             $'$"<\!DOCTYPE html>"'
>                             ++\# $'$"<html lang=\\\"en\\\">"'
>                             ++\# $'$"  <head>"'
>                             ++\# $'$"    <meta charset=\\\"UTF-8\\\" />"'
>                             ++\# $'$"    <meta name=\\\"viewport\\\" 
> content=\\\"width=device-width, initial-scale=1.0\\\" />"'
>                             ++\# $'$"    <link"'
>                             ++\# $'$"      data-trunk"'
>                             ++\# $'$"      rel=\\\"inline\\\""'
>                             ++\# $'$"      
> href=\\\"../build/packages/lustre_ui/priv/static/lustre_ui.css\\\""'
>                             ++\# $'$"    />"'
>                             ++\# $'$"    <link"'
>                             ++\# $'$"      data-trunk"'
>                             ++\# $'$"      rel=\\\"inline\\\""'
>                             ++\# $'$"      type=\\\"module\\\""'
>                             ++\# $'$"      href=\\\"main.js\\\""'
>                             ++\# $'$"    />"'
>                             ++\# $'$"  </head>"'
>                             ++\# $'$"  <body>"'
>                             ++\# $'$"    <div 
> id=\\\"app_{!hash_hex}\\\"></div>"'
>                             ++\# $'$"  </body>"'
>                             ++\# $'$"</html>"'
> 
>                         inl html_path = $'$"{!src_dir}/index.html"'
>                         html |> file_system.write_all_text_exists html_path
> 
>                         "" |> file_system.write_all_text_exists 
> $'$"{!src_dir}/spiral_{!hash_hex}.rs"'
> 
>                         inl manifest =
>                             $'$"[[package]]"'
>                             ++\# $'$"name = \\\"spiral_{!hash_hex}\\\""'
>                             ++\# $'$""'
>                             ++\# $'$"[[workspace]]"'
>                             ++\# $'$""'
>                             ++\# $'$"[[lib]]"'
>                             ++\# $'$"crate-type = [[\\\"cdylib\\\", 
> \\\"rlib\\\"]]"'
>                             ++\# $'$"path = \\\"spiral_{!hash_hex}.rs\\\""'
>                             ++\# $'$""'
>                             ++\# $'$"[[dependencies]]"'
> 
>                         manifest |> file_system.write_all_text_exists 
> $'$"{!src_dir}/Cargo.toml"'
> 
>                         inl exit_code, run_result =
>                             runtime.execution_options fun x => { x with
>                                 command = $'$"trunk build --release --minify 
> --dist={!src_dir} --public-url=./ --no-sri"'
>                                 environment_variables =
>                                     ;[[
>                                         "TRUNK_TOOLS_WASM_BINDGEN", "0.2.93"
>                                     ]]
>                                 working_directory = src_dir |> optionm'.some'
>                             }
>                             |> runtime.execute_with_options
> 
>                         if exit_code <>. 0 then
>                             trace Critical
>                                 fun () => "spiral.process_gleam / trunk error"
>                                 fun () => { exit_code run_result new_code_path }
>                             ""
>                         else
>                             html_path |> file_system.read_all_text
> 
>             inl run_result' = run_result |> sm'.to_std_string
> 
>             inl output =
>                 try
>                     fun () =>
>                         run_result
>                         |> sm'.split "\n"
>                         |> fun x => a x : _ i32 _
>                         |> seq.of_array
>                         |> sm'.concat "\n"
>                     fun ex =>
>                         trace Critical
>                             fun () => "spiral.process_gleam / Exception"
>                             fun () => { ex run_result' new_code_path 
> external_command }
>                         None
>                 |> optionm'.box
>                 |> optionm'.unwrap
> 
>             {
>                 extension = Some extension
>                 code = Some new_code
>                 code_path = Some new_code_path
>                 output = Some output
>             }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## cuda
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### process_cuda
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl process_cuda { py_path env deps } =
>     inl extension = "py"
> 
>     inl new_code_path = py_path
>     inl new_code = new_code_path |> file_system.read_all_text
> 
>     inl workspace_root_external = file_system.get_workspace_root_external ()
>     inl workspace_root = workspace_root_external |> resultm.box |> 
> resultm.unwrap_or_else id
> 
>     inl package_dir = new_code_path |> file_system.directory_get_parent |> 
> optionm'.default_value' ""
> 
>     inl manifest_path =
>         match env with
>         | Pip => package_dir </> "requirements.txt"
>         | Poetry => package_dir </> "pyproject.toml"
> 
>     inl deps =
>         deps
>         |> am'.vec_map fun dep =>
>             inl dep = dep |> sm'.from_std_string
>             if dep |> sm'.contains "="
>             then dep
>             elif dep |> sm'.ends_with "]]"
>             then dep |> sm'.replace "[[" $'$"={{version=\'*\',features=[["' |> 
> fun x => $'$"{!x}}}"'
>             else $'$"{!dep}=\'*\'"'
>         |> am'.from_vec
>         |> fun x => x : _ i32 _
>         |> seq.of_array'
>         |> sm'.concat "\n"
> 
>     inl exit_code, run_result =
>         if deps = ""
>         then 0, ""
>         else
>             inl manifest =
>                 match env with
>                 | Pip =>
>                     deps
>                 | Poetry =>
>                     $'$"[[tool.poetry]]"'
>                     ++\# $'$"name = \\\"test\\\""'
>                     ++\# $'$"version = \\\"0.0.1\\\""'
>                     ++\# $'$"description = \\\"\\\""'
>                     ++\# $'$"authors = [[]]"'
>                     ++\# $'$""'
>                     ++\# $'$"[[tool.poetry.dependencies]]"'
>                     ++\# $'$"python=\\\"~3.12\\\""'
>                     ++\# $'$"{!deps}"'
>                     ++\# $'$""'
>                     ++\# $'$"[[build-system]]"'
>                     ++\# $'$"requires = [[\\\"poetry-core\\\"]]"'
>                     ++\# $'$"build-backend = \\\"poetry.core.masonry.api\\\""'
> 
>             manifest |> file_system.write_all_text_exists manifest_path
> 
>             runtime.execution_options fun x => { x with
>                 command =
>                     match env with
>                     | Pip => $'$"pip install -r requirements.txt"'
>                     | Poetry => $'$"poetry install"'
>                 working_directory = package_dir |> optionm'.some'
>             }
>             |> runtime.execute_with_options
> 
>     if exit_code <>. 0 then
>         trace Critical
>             fun () => "spiral.process_cuda / env install error"
>             fun () => { env exit_code run_result new_code_path }
>         { extension = Some extension; code = None; code_path = None; output = 
> None }
>     else
>         inl command =
>             match env with
>             | Pip => $'$"python \\\"{!new_code_path}\\\""'
>             | Poetry => $'$"poetry run python \\\"{!new_code_path}\\\""'
>         inl environment_variables =
>             ;[[
>                 "TRACE_LEVEL", "Verbose"
>             ]]
>         inl exit_code, run_result =
>             runtime.execution_options fun x => { x with
>                 command
>                 environment_variables
>                 working_directory = package_dir |> optionm'.some'
>             }
>             |> runtime.execute_with_options
> 
>         inl external_command =
>             inl vars =
>                 a environment_variables
>                 |> am.map fun k, v => $'$"$env:{!k}=\'\'{!v}\'\'"' : string
>                 |> fun x => x : _ i32 _
>                 |> seq.of_array
>                 |> sm'.concat ";"
>             $'$"pwsh -c \'{!vars}; {!command}\'"' : string
>         if exit_code = 0
>             || (run_result |> sm'.contains 
> "cupy_backends.cuda.api.runtime.CUDARuntimeError: cudaErrorInsufficientDriver") 
> then
>             inl output =
>                 try
>                     fun () =>
>                         run_result
>                         |> sm'.split "\n"
>                         |> fun x => a x : _ i32 _
>                         |> seq.of_array
>                         |> sm'.concat "\n"
>                     fun ex =>
>                         trace Critical
>                             fun () => "spiral.process_cuda / Exception"
>                             fun () => { ex run_result new_code_path 
> external_command }
>                         None
>                 |> optionm'.box
>                 |> optionm'.unwrap
> 
>             {
>                 extension = Some extension
>                 code = Some new_code
>                 code_path = Some new_code_path
>                 output = Some output
>             }
>         else
>             trace Critical
>                 fun () => "spiral.process_cuda / error"
>                 fun () => { exit_code run_result new_code_path external_command 
> }
>             { extension = Some extension; code = None; code_path = None; output 
> = None }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## fsharp
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### process_fsharp
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl process_fsharp { spi_path } =
>     inl extension = "fsx"
> 
>     inl new_code_path = spi_path
>     inl new_code = new_code_path |> file_system.read_all_text
> 
>     inl workspace_root_external = file_system.get_workspace_root_external ()
>     inl workspace_root = workspace_root_external |> resultm.box |> 
> resultm.unwrap_or_else id
> 
>     inl supervisor_path = workspace_root </> 
> $"apps/spiral/dist/Supervisor!(platform.get_executable_suffix ())"
>     inl code_dir = new_code_path |> file_system.directory_get_parent |> 
> optionm'.default_value' ""
>     inl file_name = new_code_path |> file_system.get_file_name_without_extension
>     inl output_path = code_dir </> $'$"{!file_name}.{!extension}"'
>     inl command = $'$"{!supervisor_path} --build-file \\\"{!new_code_path}\\\" 
> \\\"{!output_path}\\\""'
>     inl environment_variables =
>         ;[[
>             "TRACE_LEVEL", "Verbose"
>         ]]
>     inl exit_code, run_result =
>         runtime.execution_options fun x => { x with
>             command
>             environment_variables
>             working_directory = workspace_root_external |> resultm.box |> 
> resultm.ok'
>         }
>         |> runtime.execute_with_options
> 
>     inl external_command =
>         inl vars =
>             a environment_variables
>             |> am.map fun k, v => $'$"$env:{!k}=\'\'{!v}\'\'"' : string
>             |> fun x => x : _ i32 _
>             |> seq.of_array
>             |> sm'.concat ";"
>         $'$"pwsh -c \'{!vars}; {!command}\'"' : string
>     if exit_code = 0 then
>         inl output =
>             try
>                 fun () =>
>                     run_result
>                     |> sm'.split "\n"
>                     |> fun x => a x : _ i32 _
>                     |> seq.of_array
>                     |> sm'.concat "\n"
>                 fun ex =>
>                     trace Critical
>                         fun () => "spiral.process_fsharp / Exception"
>                         fun () => { ex run_result new_code_path external_command
> }
>                     None
>             |> optionm'.box
>             |> optionm'.unwrap
> 
>         {
>             extension = Some extension
>             code = Some new_code
>             code_path = Some new_code_path
>             output = Some output
>         }
>     else
>         trace Critical
>             fun () => "spiral.process_fsharp / error"
>             fun () => { exit_code run_result new_code_path external_command }
>         { extension = Some extension; code = None; code_path = None; output = 
> None }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## run
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> let rec run trace_level (matches : runtime.arg_matches) : async.future_pin 
> (resultm.result' string string) =
>     fun () =>
>         match matches |> runtime.matches_subcommand |> optionm'.unbox with
>         | Some (subcommand, arg_matches)
>                 when (subcommand |> sm'.from_std_string) = (get_args () .gleam 
> |> fst) =>
> 
>             inl gleam_path =
>                 arg_matches
>                 |> runtime.matches_get_one ((get_args () .gleam |> 
> snd).gleam_path |> fst)
>                 |> optionm'.unbox
>                 |> optionm.value
>                 |> sm'.from_std_string
> 
>             inl target =
>                 arg_matches
>                 |> runtime.matches_get_one ((get_args () .gleam |> snd).target 
> |> fst)
>                 |> optionm'.unbox
>                 |> optionm.map (
>                     sm'.from_std_string
>                     >> reflection.union_try_pick
>                 )
>                 |> optionm'.flatten
>                 |> optionm'.default_value Erlang
> 
>             inl deps : am'.vec sm'.std_string =
>                 arg_matches
>                 |> runtime.matches_get_many ((get_args () .gleam |> snd).deps |>
> fst)
>                 |> optionm'.unbox
>                 |> optionm'.default_value (;[[]] |> am'.to_vec)
> 
>             inl command_result =
>                 process_gleam { gleam_path target deps }
>                 |> fun { extension code output } =>
>                     ;[[
>                         "extension", extension |> optionm'.default_value ""
>                         "code", code |> optionm'.default_value ""
>                         "output", output |> optionm'.default_value ""
>                     ]]
> 
>             ;[[
>                 "command_result",
>                 command_result
>                 |> am'.to_vec
>                 |> am'.vec_map' fun k, v =>
>                     new_pair (sm'.to_std_string k) (sm'.to_std_string v)
>                 |> mapm.b_tree_map_from_vec_pairs
>                 |> sm'.serialize
>                 |> resultm.unwrap'
>                 |> sm'.from_std_string
>             ]]
> 
>         | Some (subcommand, arg_matches)
>                 when (subcommand |> sm'.from_std_string) = (get_args () .cuda |>
> fst) =>
> 
>             inl py_path =
>                 arg_matches
>                 |> runtime.matches_get_one ((get_args () .cuda |> snd).py_path 
> |> fst)
>                 |> optionm'.unbox
>                 |> optionm.value
>                 |> sm'.from_std_string
> 
>             inl env =
>                 arg_matches
>                 |> runtime.matches_get_one ((get_args () .cuda |> snd).env |> 
> fst)
>                 |> optionm'.unbox
>                 |> optionm.map (
>                     sm'.from_std_string
>                     >> reflection.union_try_pick
>                 )
>                 |> optionm'.flatten
>                 |> optionm'.default_value Pip
> 
>             inl deps : am'.vec sm'.std_string =
>                 arg_matches
>                 |> runtime.matches_get_many ((get_args () .cuda |> snd).deps |> 
> fst)
>                 |> optionm'.unbox
>                 |> optionm'.default_value (;[[]] |> am'.to_vec)
> 
>             inl command_result =
>                 process_cuda { py_path env deps }
>                 |> fun { extension code output } =>
>                     ;[[
>                         "extension", extension |> optionm'.default_value ""
>                         "code", code |> optionm'.default_value ""
>                         "output", output |> optionm'.default_value ""
>                     ]]
> 
>             ;[[
>                 "command_result",
>                 command_result
>                 |> am'.to_vec
>                 |> am'.vec_map' fun k, v =>
>                     new_pair (sm'.to_std_string k) (sm'.to_std_string v)
>                 |> mapm.b_tree_map_from_vec_pairs
>                 |> sm'.serialize
>                 |> resultm.unwrap'
>                 |> sm'.from_std_string
>             ]]
> 
>         | Some (subcommand, arg_matches)
>                 when (subcommand |> sm'.from_std_string) = (get_args () .fable 
> |> fst) =>
> 
>             inl fs_path =
>                 arg_matches
>                 |> runtime.matches_get_one ((get_args () .fable |> snd).fs_path 
> |> fst)
>                 |> optionm'.unbox
>                 |> optionm.value
>                 |> sm'.from_std_string
> 
>             inl command =
>                 arg_matches
>                 |> runtime.matches_get_one ((get_args () .fable |> snd).command 
> |> fst)
>                 |> optionm'.unbox
>                 |> optionm.map sm'.from_std_string
> 
>             inl command_result =
>                 match command with
>                 | Some command =>
>                     get_command ()
>                     |> runtime.command_get_matches_from (
>                         $'$"_ {!command} --fs-path \\\"{!fs_path}\\\""' |> 
> runtime.split_args |> resultm.get
>                     )
>                     |> run trace_level
>                     |> async.await
>                     |> resultm.unwrap'
>                 | None => "{}"
> 
>             ;[[
>                 "command_result",
>                 command_result
>             ]]
> 
>         | Some (subcommand, arg_matches)
>             when (subcommand |> sm'.from_std_string) = (get_args () .dib |> fst)
> =>
> 
>             inl path =
>                 arg_matches
>                 |> runtime.matches_get_one ((get_args () .dib |> snd).path |> 
> fst)
>                 |> optionm'.map'' (
>                     sm'.from_std_string
>                     >> file_system.absolute_path
>                 )
>                 |> optionm'.unwrap
> 
>             inl retries =
>                 arg_matches
>                 |> runtime.matches_get_one ((get_args () .dib |> snd).retries |>
> fst)
>                 |> optionm'.default_value' 1u8
> 
>             inl working_directory =
>                 arg_matches
>                 |> runtime.matches_get_one ((get_args () .dib |> 
> snd).working_directory |> fst)
>                 |> optionm'.unbox
>                 |> optionm.map sm'.from_std_string
> 
>             process_dib { path retries working_directory }
> 
>         | matches =>
>             match matches with
>             | Some (subcommand, arg_matches)
>                     when (subcommand |> sm'.from_std_string) = (get_args () 
> .rust |> fst) =>
> 
>                 inl fs_path =
>                     arg_matches
>                     |> runtime.matches_get_one ((get_args () .rust |> 
> snd).fs_path |> fst)
>                     |> optionm'.unbox
>                     |> optionm.value
>                     |> sm'.from_std_string
> 
>                 inl deps : am'.vec sm'.std_string =
>                     arg_matches
>                     |> runtime.matches_get_many ((get_args () .rust |> snd).deps
> |> fst)
>                     |> optionm'.unbox
>                     |> optionm'.default_value (;[[]] |> am'.to_vec)
> 
>                 inl cleanup =
>                     arg_matches
>                     |> runtime.matches_get_flag ((get_args () .rust |> 
> snd).cleanup |> fst)
> 
>                 inl wasm =
>                     arg_matches
>                     |> runtime.matches_get_one ((get_args () .rust |> snd).wasm 
> |> fst)
>                     |> optionm'.unbox
>                     |> optionm.map sm'.from_std_string
> 
>                 inl contract =
>                     arg_matches
>                     |> runtime.matches_get_one ((get_args () .rust |> 
> snd).contract |> fst)
>                     |> optionm'.unbox
>                     |> optionm.map sm'.from_std_string
> 
>                 inl runtime =
>                     match wasm, contract with
>                     | Some wasm, _ => Wasm wasm |> Some
>                     | _, Some contract => Contract contract |> Some
>                     | _ => None
> 
>                 process_rust { fs_path deps trace_level runtime cleanup }
> 
>             | Some (subcommand, arg_matches)
>                     when (subcommand |> sm'.from_std_string) = (get_args () 
> .typescript |> fst) =>
> 
>                 inl fs_path =
>                     arg_matches
>                     |> runtime.matches_get_one ((get_args () .typescript |> 
> snd).fs_path |> fst)
>                     |> optionm'.unbox
>                     |> optionm.value
>                     |> sm'.from_std_string
> 
>                 inl deps : am'.vec sm'.std_string =
>                     arg_matches
>                     |> runtime.matches_get_many ((get_args () .typescript |> 
> snd).deps |> fst)
>                     |> optionm'.unbox
>                     |> optionm'.default_value (;[[]] |> am'.to_vec)
> 
>                 process_typescript { fs_path deps trace_level }
> 
>             | Some (subcommand, arg_matches)
>                     when (subcommand |> sm'.from_std_string) = (get_args () 
> .python |> fst) =>
>                 inl fs_path =
>                     arg_matches
>                     |> runtime.matches_get_one ((get_args () .python |> 
> snd).fs_path |> fst)
>                     |> optionm'.unbox
>                     |> optionm.value
>                     |> sm'.from_std_string
> 
>                 inl deps : am'.vec sm'.std_string =
>                     arg_matches
>                     |> runtime.matches_get_many ((get_args () .python |> 
> snd).deps |> fst)
>                     |> optionm'.unbox
>                     |> optionm'.default_value (;[[]] |> am'.to_vec)
> 
>                 process_python { fs_path deps trace_level }
> 
>             | Some (subcommand, arg_matches) =>
>                 trace Debug
>                     fun () => "spiral.run / invalid subcommand"
>                     fun () => { subcommand arg_matches }
> 
>                 { extension = None; code = None; code_path = None; output = None
> }
>             | _ =>
>                 { extension = None; code = None; code_path = None; output = None
> }
>             |> fun { extension code code_path output } =>
>                 ;[[
>                     "extension", extension |> optionm'.default_value ""
>                     "code", code |> optionm'.default_value ""
>                     "code_path", code_path |> optionm'.default_value ""
>                     "output", output |> optionm'.default_value ""
>                 ]]
>         |> am'.to_vec
>         |> am'.vec_map' fun k, v =>
>             new_pair (sm'.to_std_string k) (sm'.to_std_string v)
>         |> mapm.b_tree_map_from_vec_pairs
>         |> sm'.serialize
>         |> resultm.map_error' (sm'.format' >> sm'.from_std_string)
>         |> resultm.map' sm'.from_std_string
>     |> async.new_future_move
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> ///! rust -d async-walkdir chrono clap encoding_rs encoding_rs_io futures rand 
> rayon regex serde_json sha2
> 
> inl file_name = "main.fs"
> inl code = "let method0 () =\n    3 - 6 |> System.Console.WriteLine\nmethod0 
> ()\n"
> 
> inl temp_dir, disposable =
>     (file_name, code)
>     |> sm'.format_debug
>     |> crypto.hash_text
>     |> file_system.create_temp_dir'
> disposable |> use |> ignore
> inl fs_path = temp_dir </> file_name
> 
> code |> file_system.write_all_text fs_path
> 
> get_command ()
> |> runtime.command_get_matches_from ($'$"_ fable -f \\\"{!fs_path}\\\" -c 
> \\\"rust -d regex=\'*\'\\\""' |> runtime.split_args |> resultm.get)
> |> run Verbose
> |> async.block_on_futures
> |> resultm.unwrap'
> |> sm'.deserialize
> |> resultm.unwrap'
> |> mapm.get ("command_result" |> sm'.to_std_string)
> |> optionm'.unwrap
> |> sm'.from_std_string
> |> sm'.deserialize
> |> resultm.unwrap'
> |> fun result =>
>     result
>     |> mapm.get ("extension" |> sm'.to_std_string)
>     |> optionm'.unwrap
>     |> sm'.from_std_string
>     |> _assert_eq "rs"
>     result
>     |> mapm.get ("output" |> sm'.to_std_string)
>     |> optionm'.unwrap
>     |> sm'.from_std_string
>     |> _assert_eq "-3"
> 
> ── [ 1.22m - return value ] ────────────────────────────────────────────────────
> │ 00:00:00 v #1 file_system.create_dir / { dir = 
> C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\spiral_5cb0702d0aa6ef7cd810
> 3bacdedb32dab5770432a89bdd87c35fc64b4fe8a28f\84b99b0b-d6d4-d4b8-7f79-3c480ce421d
> a }
> │ 00:00:00 v #2 file_system.create_dir / { dir = 
> c:/home/git\polyglot\target/spiral\spiral\packages\Rust\399aa1f3f3139f81268d9546
> 70e64e9b347bbd6e901ea5469dbdbbb859fe2e29 }
> │ 00:00:00 d #3 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["fable", 
> "c:/home/git/polyglot/target/spiral/spiral/packages/Rust/399aa1f3f3139f81268d954
> 670e64e9b347bbd6e901ea5469dbdbbb859fe2e29/spiral.fsproj", "--optimize", 
> "--lang", "rs", "--extension", ".rs", "--outDir", 
> "c:/home/git\\polyglot\\target/spiral\\spiral\\packages\\Rust\\399aa1f3f3139f812
> 68d954670e64e9b347bbd6e901ea5469dbdbbb859fe2e29", "--define", "_WINDOWS"]; 
> options = { command = dotnet fable 
> "c:/home/git/polyglot/target/spiral/spiral/packages/Rust/399aa1f3f3139f81268d954
> 670e64e9b347bbd6e901ea5469dbdbbb859fe2e29/spiral.fsproj" --optimize --lang rs 
> --extension .rs --outDir 
> "c:/home/git\polyglot\target/spiral\spiral\packages\Rust\399aa1f3f3139f81268d954
> 670e64e9b347bbd6e901ea5469dbdbbb859fe2e29" --define _WINDOWS; cancellation_token
> = None; environment_variables = Array(MutCell([])); on_line = None; stdin = 
> None; trace = true; working_directory = Some(
> │     "c:/home/git\polyglot",
> │ ) } }
> │ 00:00:00 v #4 > Fable 5.0.0-alpha.9: F# to Rust 
> compiler (status: alpha)
> │ 00:00:00 v #5 ...00:00:01 v #225 
> spiral.process_rust / cleanup / { new_code_path = 
> c:/home/git\polyglot\target/spiral\spiral\packages\Rust\399aa1f3f3139f81268d9546
> 70e64e9b347bbd6e901ea5469dbdbbb859fe2e29\spiral.rs; cleanup = 
> UH5_1("c:/home/git\polyglot\target/spiral\spiral\packages\Rust\399aa1f3f3139f812
> 68d954670e64e9b347bbd6e901ea5469dbdbbb859fe2e29\../../..\target/debug/spiral_399
> aa1f3f3139f81268d954670e64e9b347bbd6e901ea5469dbdbbb859fe2e29.d", true, 
> UH5_1("c:/home/git\polyglot\target/spiral\spiral\packages\Rust\399aa1f3f3139f812
> 68d954670e64e9b347bbd6e901ea5469dbdbbb859fe2e29\../../..\target/debug/spiral_399
> aa1f3f3139f81268d954670e64e9b347bbd6e901ea5469dbdbbb859fe2e29.exe", true, 
> UH5_1("c:/home/git\polyglot\target/spiral\spiral\packages\Rust\399aa1f3f3139f812
> 68d954670e64e9b347bbd6e901ea5469dbdbbb859fe2e29\../../..\target/debug/spiral_399
> aa1f3f3139f81268d954670e64e9b347bbd6e901ea5469dbdbbb859fe2e29.pdb", true, 
> UH5_1("c:/home/git\polyglot\target/spiral\spiral\packages\Rust\399aa1f3f3139f812
> 68d954670e64e9b347bbd6e901ea5469dbdbbb859fe2e29\../../..\target/debug/spiral_399
> aa1f3f3139f81268d954670e64e9b347bbd6e901ea5469dbdbbb859fe2e29.wasm", false, 
> UH5_1("c:/home/git\polyglot\target/spiral\spiral\packages\Rust\399aa1f3f3139f812
> 68d954670e64e9b347bbd6e901ea5469dbdbbb859fe2e29\../../..\target/debug/spiral_399
> aa1f3f3139f81268d954670e64e9b347bbd6e901ea5469dbdbbb859fe2e29", false, 
> UH5_0))))) }
> │ { name = __assert_eq; actual = rs; expected = rs }
> │ { name = __assert_eq; actual = -3; expected = -3 }
> │ 
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> ///! rust -d async-walkdir chrono clap encoding_rs encoding_rs_io futures rand 
> rayon regex serde_json sha2
> 
> inl file_name = "main.fs"
> inl code = "3 - 6 |> System.Console.WriteLine\n"
> 
> inl temp_dir, disposable =
>     (file_name, code)
>     |> sm'.format_debug
>     |> crypto.hash_text
>     |> file_system.create_temp_dir'
> disposable |> use |> ignore
> inl fs_path = temp_dir </> file_name
> 
> code |> file_system.write_all_text fs_path
> 
> get_command ()
> |> runtime.command_get_matches_from ($'$"_ fable -f \\\"{!fs_path}\\\" -c 
> \\\"typescript\\\""' |> runtime.split_args |> resultm.get)
> |> run Verbose
> |> async.block_on_futures
> |> resultm.unwrap'
> |> sm'.deserialize
> |> resultm.unwrap'
> |> mapm.get ("command_result" |> sm'.to_std_string)
> |> optionm'.unwrap
> |> sm'.from_std_string
> |> sm'.deserialize
> |> resultm.unwrap'
> |> fun result =>
>     result
>     |> mapm.get ("extension" |> sm'.to_std_string)
>     |> optionm'.unwrap
>     |> sm'.from_std_string
>     |> _assert_eq "ts"
>     result
>     |> mapm.get ("output" |> sm'.to_std_string)
>     |> optionm'.unwrap
>     |> sm'.from_std_string
>     |> _assert_eq "-3"
> 
> ── [ 1.14m - return value ] ────────────────────────────────────────────────────
> │ 00:00:00 v #1 file_system.create_dir / { dir = 
> C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\spiral_dc1b47ed389203f1f098
> 52570c9d080a4b422736982c8e1ac15a5b1b64c4e277\c6422374-71e4-07d4-0ba4-c3084b24fbb
> a }
> │ 00:00:00 v #2 file_system.create_dir / { dir = 
> c:/home/git\polyglot\target/spiral\spiral\packages\TypeScript\702335b0756baa7db0
> d02dbbeaf9fc04cf2c3b7dbb45866c578c5109aaa8c4a8 }
> │ 00:00:00 d #3 spiral.process_typescript / { version = 
> US51_0("c:/home/git\polyglot\lib/typescript/fable/fable_modules\fable-library-ts
> .5.0.0-alpha.9", "5.0.0-alpha.9") }
> │ 00:00:00 d #4 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["fable", 
> "c:/home/git/polyglot/target/spiral/spiral/packages/TypeScript/702335b0756baa7db
> 0d02dbbeaf9fc04cf2c3b7dbb45866c578c5109aaa8c4a8/spiral.fsproj", "--optimize", 
> "--lang", "ts", "--extension", ".ts", "--outDir", 
> "c:/home/git\\polyglot\\target/spiral\\spiral\\packages\\TypeScript\\702335b0756
> baa7db0d02dbbeaf9fc04cf2c3b7dbb45866c578c5109aaa8c4a8", "--define", "_WINDOWS"];
> options = { command = dotnet fable 
> "c:/home/git/polyglot/target/spiral/spiral/packages/TypeScript/702335b0756baa7db
> 0d02dbbeaf9fc04cf2c3b7dbb45866c578c5109aaa8c4a8/spiral.fsproj" --optimize --lang
> ts --extension .ts --outDir 
> "c:/home/git\polyglot\target/spiral\spiral\packages\TypeScript\702335b0756baa7db
> 0d02dbbeaf9fc04cf2c3b7dbb45866c578c5109aaa8c4a8" --define _WINDOWS; 
> cancellation_token = None; environment_variables = Array(MutCell([])); 
> o...latex\current\texmfs\install\miktex\bin\x64;C:\Users\i574n\scoop\apps\dotnet
> -sdk-preview\current;C:\Users\i574n\scoop\apps\dotnet-sdk\current;C:\Users\i574n
> \scoop\apps\gsudo\current;C:\Users\i574n\scoop\apps\python\current;C:\Users\i574
> n\scoop\apps\nircmd\current;C:\Users\i574n\AppData\Local\Microsoft\WindowsApps;C
> :\Users\i574n/scoop/buckets/mold/home/windows/path;C:\Users\i574n/scoop/persist/
> rustup/.cargo/bin;C:\Users\i574n/scoop/apps/nvm/current/nodejs/nodejs;C:\Users\i
> 574n/scoop/apps/cygwin/current/root/bin;C:\Users\i574n\AppData\Local\Programs\Mi
> crosoft VS 
> Code\bin;C:\Users\i574n\AppData\Local\Microsoft\WindowsApps;C:\Users\i574n\.bun\
> bin;C:\Users\i574n\.dotnet\tools;C:\Users\i574n\scoop\shims;C:\Users\i574n\.fly\
> bin;C:\Program 
> Files\Wasmtime\bin;C:\Users\i574n\.dotnet\tools;test;C:\Users\i574n\go\bin;C:\Us
> ers\i574n\.dotnet\tools;C:\Users\i574n\.dotnet\tools;C:\Users\i574n/.cargo/bin;C
> :\Users\i574n/.bun/bin;C:\Users\i574n/.cargo/bin;C:\Users\i574n/.bun/bin;C:\User
> s\i574n/.cargo/bin;C:\Users\i574n/.bun/bin;C:\Users\i574n/.cargo/bin;C:\Users\i5
> 74n/.bun/bin;C:\Users\i574n/.cargo/bin;C:\Users\i574n/.bun/bin"), 
> ("TRACE_LEVEL", "Verbose")])); on_line = None; stdin = None; trace = true; 
> working_directory = Some(
> │     "c:/home/git\polyglot",
> │ ) } }
> │ 00:00:00 v #19 > -3
> │ 00:00:01 v #20 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 2 }
> │ { name = __assert_eq; actual = ts; expected = ts }
> │ { name = __assert_eq; actual = -3; expected = -3 }
> │ 
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> ///! rust -d async-walkdir chrono clap encoding_rs encoding_rs_io futures rand 
> rayon regex serde_json sha2
> 
> inl file_name = "main.fs"
> inl code = "3 - 6 |> System.Console.WriteLine\n"
> 
> inl temp_dir, disposable =
>     (file_name, code)
>     |> sm'.format_debug
>     |> crypto.hash_text
>     |> file_system.create_temp_dir'
> disposable |> use |> ignore
> inl fs_path = temp_dir </> file_name
> 
> code |> file_system.write_all_text fs_path
> 
> get_command ()
> |> runtime.command_get_matches_from ($'$"_ fable -f \\\"{!fs_path}\\\" -c 
> \\\"python\\\""' |> runtime.split_args |> resultm.get)
> |> run Verbose
> |> async.block_on_futures
> |> resultm.unwrap'
> |> sm'.deserialize
> |> resultm.unwrap'
> |> mapm.get ("command_result" |> sm'.to_std_string)
> |> optionm'.unwrap
> |> sm'.from_std_string
> |> sm'.deserialize
> |> resultm.unwrap'
> |> fun result =>
>     result
>     |> mapm.get ("extension" |> sm'.to_std_string)
>     |> optionm'.unwrap
>     |> sm'.from_std_string
>     |> _assert_eq "py"
>     result
>     |> mapm.get ("output" |> sm'.to_std_string)
>     |> optionm'.unwrap
>     |> sm'.from_std_string
>     |> _assert_eq "-3"
> 
> ── [ 1.18m - return value ] ────────────────────────────────────────────────────
> │ 00:00:00 v #1 file_system.create_dir / { dir = 
> C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\spiral_7751d7883a1d2c6292fa
> 1ea7cb17797920428fb58e10beb5245be2f02b0d66d0\c6422374-71e4-07d4-0ba4-c3084b24fbb
> a }
> │ 00:00:00 v #2 file_system.create_dir / { dir = 
> c:/home/git\polyglot\target/spiral\spiral\packages\Python\cb8f3dd33197bb0bc95f09
> b3f3057a6844a0b70d75477350491883d14d8680ce }
> │ 00:00:00 d #3 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["fable", 
> "c:/home/git/polyglot/target/spiral/spiral/packages/Python/cb8f3dd33197bb0bc95f0
> 9b3f3057a6844a0b70d75477350491883d14d8680ce/spiral.fsproj", "--optimize", 
> "--lang", "py", "--extension", ".py", "--outDir", 
> "c:/home/git\\polyglot\\target/spiral\\spiral\\packages\\Python\\cb8f3dd33197bb0
> bc95f09b3f3057a6844a0b70d75477350491883d14d8680ce", "--define", "_WINDOWS"]; 
> options = { command = dotnet fable 
> "c:/home/git/polyglot/target/spiral/spiral/packages/Python/cb8f3dd33197bb0bc95f0
> 9b3f3057a6844a0b70d75477350491883d14d8680ce/spiral.fsproj" --optimize --lang py 
> --extension .py --outDir 
> "c:/home/git\polyglot\target/spiral\spiral\packages\Python\cb8f3dd33197bb0bc95f0
> 9b3f3057a6844a0b70d75477350491883d14d8680ce" --define _WINDOWS; 
> cancellation_token = None; environment_variables = Array(MutCell([])); on_line =
> None; stdin = None; trace = true; working_directory = Some(
> │     "c:/home/git\polyglot",
> │ ) } }
> │ 00:00:00 v #4 > Fable 5.0.0-alpha.9: F# to Python 
> compiler (status: beta)
> │ 00:00:00 iral.fsproj...
> │ 00:00:00 v #10 > Retrieving project options from cache,
> in case of issues run `dotnet fable clean` or try `--noCache` option.
> │ 00:00:00 v #11 > Project and references (1 source 
> files) parsed in 143ms
> │ 00:00:00 v #12 >
> │ 00:00:00 v #13 > Skipped compilation because all 
> generated files are up-to-date!
> │ 00:00:00 v #14 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 503 }
> │ 00:00:00 d #15 spiral.process_python / { new_code_path 
> = 
> c:/home/git\polyglot\target/spiral\spiral\packages\Python\cb8f3dd33197bb0bc95f09
> b3f3057a6844a0b70d75477350491883d14d8680ce\spiral.py }
> │ 00:00:00 d #16 runtime.execute_with_options / { 
> file_name = python; arguments = 
> ["c:/home/git\\polyglot\\target/spiral\\spiral\\packages\\Python\\cb8f3dd33197bb
> 0bc95f09b3f3057a6844a0b70d75477350491883d14d8680ce\\spiral.py"]; options = { 
> command = python 
> "c:/home/git\polyglot\target/spiral\spiral\packages\Python\cb8f3dd33197bb0bc95f0
> 9b3f3057a6844a0b70d75477350491883d14d8680ce\spiral.py"; cancellation_token = 
> None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose")])); 
> on_line = None; stdin = None; trace = true; working_directory = Some(
> │     "c:/home/git\polyglot",
> │ ) } }
> │ 00:00:00 v #17 > -3
> │ 00:00:00 v #18 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 2 }
> │ { name = __assert_eq; actual = py; expected = py }
> │ { name = __assert_eq; actual = -3; expected = -3 }
> │ 
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> ///! rust -d async-walkdir chrono clap encoding_rs encoding_rs_io futures rand 
> rayon regex serde_json sha2
> 
> inl file_name = "test.dib"
> inl code =
>     
> "#!meta\n\n{\"kernelInfo\":{\"defaultKernelName\":\"fsharp\",\"items\":[[]]}}\n\
> n#!fsharp\n\n3 - 6\n"
> 
> inl temp_dir, disposable =
>     (file_name, code)
>     |> sm'.format_debug
>     |> crypto.hash_text
>     |> file_system.create_temp_dir'
> disposable |> use |> ignore
> inl path = temp_dir </> file_name |> file_system.normalize_path
> 
> code
> |> file_system.write_all_text path
> 
> get_command ()
> |> runtime.command_get_matches_from ($'$"_ dib -p {!path}"' |> 
> runtime.split_args |> resultm.get)
> |> run Verbose
> |> async.block_on_futures
> |> resultm.unwrap'
> |> __assert sm'.contains Silent "<pre>-3"
> 
> $'$"{!path}.html"'
> |> file_system.read_all_text
> |> __assert sm'.contains Silent "\"cell-id=1\""
> 
> ── [ 1.23m - return value ] ────────────────────────────────────────────────────
> │ 00:00:00 v #1 file_system.create_dir / { dir = 
> C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\spiral_07e278ad426b0056e8e7
> fcf2ef9b1e37fce3242f984176df21ec8f8a4b92d0c5\af524e22-8e9a-5d18-99ed-bd86e1b7462
> 3 }
> │ 00:00:00 d #2 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", 
> "c:/Users/i574n/AppData/Local/Temp/!create_temp_path_/spiral_07e278ad426b0056e8e
> 7fcf2ef9b1e37fce3242f984176df21ec8f8a4b92d0c5/af524e22-8e9a-5d18-99ed-bd86e1b746
> 23/test.dib", "--output-path", 
> "c:/Users/i574n/AppData/Local/Temp/!create_temp_path_/spiral_07e278ad426b0056e8e
> 7fcf2ef9b1e37fce3242f984176df21ec8f8a4b92d0c5/af524e22-8e9a-5d18-99ed-bd86e1b746
> 23/test.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run 
> "c:/Users/i574n/AppData/Local/Temp/!create_temp_path_/spiral_07e278ad426b0056e8e
> 7fcf2ef9b1e37fce3242f984176df21ec8f8a4b92d0c5/af524e22-8e9a-5d18-99ed-bd86e1b746
> 23/test.dib" --output-path 
> "c:/Users/i574n/AppData/Local/Temp/!create_temp_path_/spiral_07e278ad426b0056e8e
> 7fcf2ef9b1e37fce3242f984176df21ec8f8a4b92d0c5/af524e22-8e9a-5d18-99ed-bd86e1b746
> 23/test.dib.ipynb"; cancellation_token = None; environment_variables = 
> Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = 
> None; stdin = None; trace = false; working_directory = None } }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > 3 - 6
> │ > 
> │ > ── [ 3.50s - return value ] 
> ─────────────────────────────────...f524e22-8e9a-5d18-99ed-bd86e1b74623\test.dib
> .html
> │ 00:00:07 v #11 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 1110 }
> │ 00:00:07 d #12 spiral.run / dib / jupyter nbconvert / {
> exit_code = 0; jupyter_result_length = 1110 }
> │ 00:00:07 d #13 runtime.execute_with_options / { 
> file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 
> 'c:/Users/i574n/AppData/Local/Temp/!create_temp_path_/spiral_07e278ad426b0056e8e
> 7fcf2ef9b1e37fce3242f984176df21ec8f8a4b92d0c5/af524e22-8e9a-5d18-99ed-bd86e1b746
> 23/test.dib.html'; (Get-Content $path -Raw) -replace 
> '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | 
> Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 
> 'c:/Users/i574n/AppData/Local/Temp/!create_temp_path_/spiral_07e278ad426b0056e8e
> 7fcf2ef9b1e37fce3242f984176df21ec8f8a4b92d0c5/af524e22-8e9a-5d18-99ed-bd86e1b746
> 23/test.dib.html'; (Get-Content $path -Raw) -replace 
> '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | 
> Set-Content $path"; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:00:07 v #14 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 0 }
> │ 00:00:07 d #15 spiral.run / dib / html cell ids / { 
> exit_code = 0; pwsh_replace_html_result_length = 0 }
> │ 00:00:07 d #16 spiral.run / dib / { exit_code = 0; 
> result_length = 2636 }
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## tests
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl tests () =
>     testing.run_tests {
>         verify_app = get_command >> runtime.command_debug_assert
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## main
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> ///! _
> 
> inl main (args : array_base string) =
>     inl trace_state = get_trace_state_or_init None
> 
>     trace Debug
>         fun () => "spiral.main"
>         fun () => { args }
> 
>     inl command = get_command ()
>     inl arg_matches = command |> runtime.command_get_matches
> 
>     inl trace_state_level = trace_state.level
> 
>     inl result =
>         arg_matches
>         |> run *trace_state_level
>         |> async.block_on_futures
>         |> resultm.unwrap'
> 
>     if *trace_state_level = Info
>     then result |> console.write_line
> 
>     0i32
> 
> inl main () =
>     $'let tests () = !tests ()' : ()
>     $'let main args = !main args' : ()
00:08:00 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 114720 }
00:08:00 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/spiral/apps/spiral/spiral.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/spiral/apps/spiral/spiral.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:08:02 v #5 ! [NbConvertApp] Converting notebook c:/home/git/spiral/apps/spiral/spiral.dib.ipynb to html
00:08:02 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:08:02 v #7 !   validate(nb)
00:08:02 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:08:02 v #9 !   return _pygments_highlight(
00:08:04 v #10 ! [NbConvertApp] Writing 697416 bytes to c:\home\git\spiral\apps\spiral\spiral.dib.html
00:08:04 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 852 }
00:08:04 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 852 }
00:08:04 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/spiral/apps/spiral/spiral.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/spiral/apps/spiral/spiral.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:08:05 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:08:05 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:08:05 d #16 spiral.run / dib / { exit_code = 0; result_length = 115631 }
00:00:00 d #1 writeDibCode / output: Spi / path: spiral.dib
00:00:00 d #2 parseDibCode / output: Spi / file: spiral.dib
00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: spiral / hash:  / code.Length: 1690956
spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\home\git\polyglot\target\Builder\spiral
polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\home\git\spiral\deps\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target:  / path_target: C:\home\git\polyglot / parent: C:\home\git\spiral\deps\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot
spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\target\Builder\spiral / ProjectName: spiral / Language: rs / Runtime:  / root: C:\home\git\polyglot
Fable 5.0.0-alpha.9: F# to Rust compiler (status: alpha)

Thanks to the contributor! @anchann
Stand with Ukraine! https://standwithukraine.com.ua/

Parsing target\Builder\spiral\spiral.fsproj...
Project and references (14 source files) parsed in 2579ms

Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.JSInterop.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Routing.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Routing.Abstractions.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.ViewFeatures.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.Core.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Http.Abstractions.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.Forms.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.Endpoints.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)

Started Fable compilation...

Fable compilation finished in 17015ms

.\deps\spiral\lib\spiral\common.fsx(2199,0): (2199,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\sm.fsx(561,0): (561,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\crypto.fsx(2426,0): (2426,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\date_time.fsx(2546,0): (2546,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\platform.fsx(121,0): (121,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\networking.fsx(5050,0): (5050,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\trace.fsx(2232,0): (2232,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\runtime.fsx(7321,0): (7321,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\file_system.fsx(19036,0): (19036,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
spiral/apps/spiral/build.ps1 / path: C:\home\git\polyglot\target\Builder\spiral/target/rs/spiral.rs
spiral/apps/spiral/build.ps1 / $projectName: spiral / $env:CI:''
warning: C:\home\git\spiral\workspace\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\spiral\apps\wasm\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\spiral\apps\spiral\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\spiral\lib\spiral\near\wallet\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
   Compiling spiral v0.0.1 (C:\home\git\spiral\apps\spiral)
    Finished `release` profile [optimized] target(s) in 15.99s
     Running unittests spiral.rs (C:\home\git\spiral\workspace\target\release\deps\spiral-aff934b38de10674.exe)

running 1 test
test module_1216f6c3::Spiral::verify_app ... ok

successes:

successes:
    module_1216f6c3::Spiral::verify_app

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

warning: C:\home\git\spiral\apps\wasm\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\spiral\lib\spiral\near\wallet\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\spiral\apps\spiral\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\spiral\workspace\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
   Compiling spiral v0.0.1 (C:\home\git\spiral\apps\spiral)
error: failed to remove file `C:\home\git\spiral\workspace\target\release\spiral.exe`

Caused by:
  Access is denied. (os error 5)

# Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: C:\home\git\spiral\apps\spiral / $OnError: Continue / $exitcode: 101 / $Error: '' / $ScriptBlock:
'cargo build --release'

polyglot/scripts/core.ps1/GetFullPath / Path: ../../deps/polyglot / Location: C:\home\git\spiral\apps\wasm / ResolvedLocation: C:\home\git\spiral\apps\wasm
polyglot/scripts/core.ps1/GetFullPath / FullPath: C:\home\git\spiral\deps\polyglot
polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\home\git\spiral\deps\polyglot / parent_target:  / path_target: C:\home\git\polyglot / parent: C:\home\git\spiral\deps / End: polyglot
00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "C:\home\git\spiral\apps\wasm/spiral_wasm.dib", "--working-directory", "C:\home\git\polyglot"])) }
00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/spiral/apps/wasm/spiral_wasm.dib", "--output-path", "c:/home/git/spiral/apps/wasm/spiral_wasm.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/spiral/apps/wasm/spiral_wasm.dib" --output-path "c:/home/git/spiral/apps/wasm/spiral_wasm.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = Some(
    "C:\home\git\polyglot",
) } }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ # spiral_wasm
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> open rust.rust_operators
> open rust
> open sm'_operators
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## spiral_wasm
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### get_args
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl get_args () =
>     {
>         exception = "exception", 'e'
>         trace_level = "trace_level", 't'
>         wasm = "wasm", 'w'
>     }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### get_command
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> let get_command () =
>     ##"command"
>     |> runtime.new_command
>     |> runtime.command_args_override_self true
>     |> runtime.command_init_arg (get_args () .exception) (
>         runtime.arg_num_args_range (
>             runtime.new_value_range
>                 true
>                 (am'.End eval)
>                 (am'.End fun _ => (1i32 |> convert : unativeint))
>         )
>         >> runtime.arg_require_equals true
>         >> runtime.arg_default_missing_value ""
>     )
>     |> runtime.command_init_arg (get_args () .trace_level) (
>         real runtime.arg_union `trace_level ignore
>     )
>     |> runtime.command_init_arg (get_args () .wasm) (
>         runtime.arg_required true
>     )
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### run
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> let rec run
>     (matches : runtime.arg_matches)
>     : async.future_pin (
>         resultm.result'
>             u8
>             resultm.anyhow_error
>     )
>     =
>     fun () =>
>         inl wasm_path =
>             matches
>             |> runtime.matches_get_one (get_args () .wasm |> fst)
>             |> optionm'.unbox
>             |> optionm.value
>             |> sm'.from_std_string
> 
>         trace Verbose (fun () => "spiral_wasm.run") fun () => { wasm_path }
> 
>         inl wasm = wasm_path |> file_system.read |> resultm.try'
> 
>         let fn (retry : u8) =
>             fun () =>
>                 inl worker = near_workspaces.sandbox_worker () |> resultm.try'
>                 inl contract = worker |> near_workspaces.dev_deploy wasm |> 
> async.await |> resultm.try'
> 
>                 trace Verbose (fun () => "spiral_wasm.run") fun () => { retry 
> worker contract }
> 
>                 inl result =
>                     contract
>                     |> near_workspaces.call "state_main"
>                     |> near_workspaces.gas (near_workspaces.from_tgas 300)
>                     |> near_workspaces.transact
>                     |> async.await
>                     |> resultm.try'
> 
>                 trace Verbose (fun () => "spiral_wasm.run") fun () => { retry 
> result }
> 
>                 result
>                 |> near_workspaces.logs
>                 |> am'.vec_map sm'.ref_to_std_string
>                 |> am'.vec_for_each console.write_line
> 
>                 trace_raw Info (fun () => " ")
>                 result |> near_workspaces.print_usd retry
> 
>                 inl result2 = result |> near_workspaces.into_result
> 
>                 trace Verbose (fun () => "spiral_wasm.run") fun () => { result2 
> }
> 
>                 inl receipt_failures = result |> 
> near_workspaces.receipt_failures
>                 inl receipt_failures_len = receipt_failures |> am'.vec_len |> 
> i32
> 
>                 trace Verbose
>                     fun () => "spiral_wasm.run"
>                     fun () => { receipt_failures_len receipt_failures }
> 
>                 inl receipt_outcomes = result |> 
> near_workspaces.receipt_outcomes
>                 inl receipt_outcomes_len = receipt_outcomes |> am'.vec_len |> 
> i32
> 
>                 trace Verbose
>                     fun () => "spiral_wasm.run"
>                     fun () => { receipt_outcomes_len receipt_outcomes }
> 
>                 inl json = result |> near_workspaces.json
> 
>                 trace Verbose (fun () => "spiral_wasm.run") fun () => { json }
> 
>                 inl borsh = result |> near_workspaces.borsh
> 
>                 trace Verbose (fun () => "spiral_wasm.run") fun () => { borsh }
> 
>                 inl error = { receipt_outcomes_len retry receipt_failures } |> 
> sm'.format
>                 if receipt_failures_len > 0
>                 then (Ok (Some error) : _ _ resultm.anyhow_error) |> resultm.box
>                 elif receipt_outcomes_len > 1
>                 then (Ok None : _ _ resultm.anyhow_error) |> resultm.box
>                 else error |> resultm.anyhow_error |> resultm.err
>             |> async.new_future_move
> 
>         let rec loop (retry : u8) =
>             inl max = 15
>             inl init (error : _ string) =
>                 fun () =>
>                     { retry error }
>                 |> async.new_future_move
>             fun () =>
>                 inl result =
>                     fn retry
>                     |> async.await
>                     |> resultm.map_error' sm'.format'
>                     |> resultm.unbox
>                 match result with
>                 | Ok (None) =>
>                     init None
>                     |> async.await
>                     |> Ok
>                 | Ok (Some error) =>
>                     trace Critical (fun () => "spiral_wasm.run / Ok (Some 
> error)") fun () => { retry error }
>                     init (Some error)
>                     |> async.await
>                     |> Error
>                 | Error error when retry >= max =>
>                     trace Warning (fun () => "spiral_wasm.run / Error error") 
> fun () => { retry error }
>                     trace_raw Warning (fun () => "\n")
>                     init None
>                     |> async.await
>                     |> Ok
>                 | Error error =>
>                     trace Warning (fun () => "spiral_wasm.run / Error error") 
> fun () => { retry error }
>                     trace_raw Warning (fun () => "\n")
>                     loop (retry + 1) |> async.await
>             |> async.new_future_move
>         inl retries = loop 1 |> async.await
> 
>         trace Verbose (fun () => "spiral_wasm.run") fun () => { retries }
> 
>         match retries with
>         | Ok { retry } => Ok retry |> resultm.box
>         | Error { retry error } => { retries error } |> sm'.format |> 
> resultm.anyhow_error |> resultm.err
> 
>     |> async.new_future_move
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### main
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> ///! _
> 
> inl main (args : array_base string) =
>     inl command = get_command ()
>     inl arg_matches = command |> runtime.command_get_matches
> 
>     inl trace_level =
>         arg_matches
>         |> runtime.matches_get_one (get_args () .trace_level |> fst)
>         |> optionm'.unbox
>         |> optionm.map (
>             sm'.from_std_string
>             >> reflection.union_try_pick
>         )
>         |> optionm'.flatten
>         |> optionm'.default_value Verbose
> 
>     inl trace_state = get_trace_state_or_init (Some trace_level)
> 
>     trace Verbose
>         fun () => "spiral_wasm.main"
>         fun () => { args }
> 
>     inl exception =
>         arg_matches
>         |> runtime.matches_get_one (get_args () .exception |> fst)
>         |> optionm'.map (sm'.from_std_string >> sm'.trim_start [[ '\\' ]] >> 
> sm'.trim_end [[ '\\' ]])
>         |> optionm'.unbox
> 
>     inl result =
>         arg_matches
>         |> run
>         |> async.block_on_tokio
>         |> resultm.map_error' sm'.format'
> 
>     match result |> resultm.unbox, exception with
>     | Ok retries, Some exception =>
>         ($'$"spiral_wasm.main / retries: {!retries} / exception: 
> \'{!exception}\'"' : string)
>         |> resultm.err |> resultm.unwrap'
>     | Error _error, Some ("") =>
>         ()
>     | Error error, Some exception when error |> sm'.from_std_string |> 
> sm'.contains exception =>
>         ()
>     | Error error, Some exception =>
>         ($'$"spiral_wasm.main / exception: \'{!exception}\' / error: {!error}"' 
> : string)
>         |> resultm.err |> resultm.unwrap'
>     | Ok _retries, _ =>
>         ()
>     | Error _error, _ =>
>         result |> resultm.unwrap' |> ignore
> 
>     0i32
> 
> inl main () =
>     $'let main args = !main args' : ()
00:00:11 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 8454 }
00:00:11 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/spiral/apps/wasm/spiral_wasm.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/spiral/apps/wasm/spiral_wasm.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:12 v #5 ! [NbConvertApp] Converting notebook c:/home/git/spiral/apps/wasm/spiral_wasm.dib.ipynb to html
00:00:12 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:12 v #7 !   validate(nb)
00:00:12 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:12 v #9 !   return _pygments_highlight(
00:00:13 v #10 ! [NbConvertApp] Writing 306846 bytes to c:\home\git\spiral\apps\wasm\spiral_wasm.dib.html
00:00:13 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 858 }
00:00:13 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 858 }
00:00:13 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/spiral/apps/wasm/spiral_wasm.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/spiral/apps/wasm/spiral_wasm.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:13 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:00:13 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:00:13 d #16 spiral.run / dib / { exit_code = 0; result_length = 9371 }
00:00:00 d #1 writeDibCode / output: Spi / path: spiral_wasm.dib
00:00:00 d #2 parseDibCode / output: Spi / file: spiral_wasm.dib
00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: spiral_wasm / hash:  / code.Length: 248118
spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\home\git\polyglot\target\Builder\spiral_wasm
polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\home\git\spiral\deps\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target:  / path_target: C:\home\git\polyglot / parent: C:\home\git\spiral\deps\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot
spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\target\Builder\spiral_wasm / ProjectName: spiral_wasm / Language: rs / Runtime:  / root: C:\home\git\polyglot
Fable 5.0.0-alpha.9: F# to Rust compiler (status: alpha)

Thanks to the contributor! @0x53A
Stand with Ukraine! https://standwithukraine.com.ua/

Parsing target\Builder\spiral_wasm\spiral_wasm.fsproj...
Project and references (14 source files) parsed in 2616ms

Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.JSInterop.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Routing.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Routing.Abstractions.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.ViewFeatures.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.Core.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Http.Abstractions.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.Forms.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.Endpoints.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)

Started Fable compilation...

Fable compilation finished in 10958ms

.\deps\spiral\lib\spiral\common.fsx(2199,0): (2199,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\sm.fsx(561,0): (561,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\crypto.fsx(2426,0): (2426,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\date_time.fsx(2546,0): (2546,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\platform.fsx(121,0): (121,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\networking.fsx(5050,0): (5050,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\trace.fsx(2232,0): (2232,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\runtime.fsx(7321,0): (7321,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\file_system.fsx(19036,0): (19036,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
spiral/apps/wasm/build.ps1 / path: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/spiral_wasm.rs
spiral/apps/wasm/build.ps1 / $targetDir = C:\home\git\polyglot\target\Builder\spiral_wasm / $projectName: spiral_wasm / $env:CI:''
warning: /mnt/c/home/git/spiral/lib/spiral/near/wallet/Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: /mnt/c/home/git/spiral/workspace/Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: /mnt/c/home/git/spiral/apps/spiral/Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: /mnt/c/home/git/spiral/apps/wasm/Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
   Compiling fable_library_rust v0.1.0 (/mnt/c/home/git/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust)
   Compiling spiral_wasm v0.0.1 (/mnt/c/home/git/spiral/apps/wasm)
    Finished `release` profile [optimized] target(s) in 2m 09s
warning: C:\home\git\spiral\deps\polyglot\apps\spiral\temp\cube\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\spiral\deps\polyglot\apps\spiral\temp\extension\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\spiral\deps\polyglot\workspace\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\spiral\deps\polyglot\apps\plot\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\spiral\deps\polyglot\lib\math\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\spiral\deps\polyglot\apps\spiral\temp\test\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\spiral\deps\polyglot\apps\chat\contract\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\spiral\deps\polyglot\examples\rust\exercism\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\spiral\deps\polyglot\apps\chat\contract\tests\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
   Compiling fable_library_rust v0.1.0 (C:\home\git\spiral\deps\polyglot\lib\rust\fable\fable_modules\fable-library-rust)
   Compiling plot v0.0.1 (C:\home\git\spiral\deps\polyglot\apps\plot)
warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:667:33
    |
667 |         let v4: string = append((v0.l0.get().clone()), (v1));
    |                                 ^                   ^
    |
    = note: `#[warn(unused_parens)]` on by default
help: remove these parentheses
    |
667 -         let v4: string = append((v0.l0.get().clone()), (v1));
667 +         let v4: string = append(v0.l0.get().clone(), (v1));
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:667:56
    |
667 |         let v4: string = append((v0.l0.get().clone()), (v1));
    |                                                        ^  ^
    |
help: remove these parentheses
    |
667 -         let v4: string = append((v0.l0.get().clone()), (v1));
667 +         let v4: string = append((v0.l0.get().clone()), v1);
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:749:13
    |
749 |             (append(
    |             ^
...
761 |             )),
    |              ^
    |
help: remove these parentheses
    |
749 ~             append(
750 |                 (append(
...
760 |                 string(" / "),
761 ~             ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:762:13
    |
762 |             (v180),
    |             ^    ^
    |
help: remove these parentheses
    |
762 -             (v180),
762 +             v180,
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:750:17
    |
750 |                 (append(
    |                 ^
...
759 |                 )),
    |                  ^
    |
help: remove these parentheses
    |
750 ~                 append(
751 |                     (append(
...
758 |                     string("networking.test_port_open"),
759 ~                 ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:751:21
    |
751 |                     (append(
    |                     ^
...
757 |                     )),
    |                      ^
    |
help: remove these parentheses
    |
751 ~                     append(
752 |                         (append(
...
756 |                         string(" "),
757 ~                     ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:752:25
    |
752 |                         (append(
    |                         ^
...
755 |                         )),
    |                          ^
    |
help: remove these parentheses
    |
752 ~                         append(
753 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
754 |                             (toString(v0.l0.get().clone())),
755 ~                         ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:753:29
    |
753 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                       ^                                                                 ^
    |
help: remove these parentheses
    |
753 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
753 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:754:29
    |
754 | ...                   (toString(v0.l0.get().clone())),
    |                       ^                             ^
    |
help: remove these parentheses
    |
754 -                             (toString(v0.l0.get().clone())),
754 +                             toString(v0.l0.get().clone()),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:753:37
    |
753 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                               ^                                         ^
    |
help: remove these parentheses
    |
753 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
753 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:753:45
    |
753 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                       ^                         ^
    |
help: remove these parentheses
    |
753 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
753 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:753:74
    |
753 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                                                    ^  ^
    |
help: remove these parentheses
    |
753 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
753 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:753:53
    |
753 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                               ^  ^
    |
help: remove these parentheses
    |
753 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
753 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:905:13
    |
905 |             (append(
    |             ^
...
917 |             )),
    |              ^
    |
help: remove these parentheses
    |
905 ~             append(
906 |                 (append(
...
916 |                 string(" / "),
917 ~             ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:918:13
    |
918 |             (v107),
    |             ^    ^
    |
help: remove these parentheses
    |
918 -             (v107),
918 +             v107,
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:906:17
    |
906 |                 (append(
    |                 ^
...
915 |                 )),
    |                  ^
    |
help: remove these parentheses
    |
906 ~                 append(
907 |                     (append(
...
914 |                     string("async.run_with_timeout_async"),
915 ~                 ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:907:21
    |
907 |                     (append(
    |                     ^
...
913 |                     )),
    |                      ^
    |
help: remove these parentheses
    |
907 ~                     append(
908 |                         (append(
...
912 |                         string(" "),
913 ~                     ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:908:25
    |
908 |                         (append(
    |                         ^
...
911 |                         )),
    |                          ^
    |
help: remove these parentheses
    |
908 ~                         append(
909 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
910 |                             (toString(v0.l0.get().clone())),
911 ~                         ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:909:29
    |
909 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                       ^                                                                 ^
    |
help: remove these parentheses
    |
909 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
909 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:910:29
    |
910 | ...                   (toString(v0.l0.get().clone())),
    |                       ^                             ^
    |
help: remove these parentheses
    |
910 -                             (toString(v0.l0.get().clone())),
910 +                             toString(v0.l0.get().clone()),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:909:37
    |
909 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                               ^                                         ^
    |
help: remove these parentheses
    |
909 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
909 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:909:45
    |
909 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                       ^                         ^
    |
help: remove these parentheses
    |
909 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
909 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:909:74
    |
909 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                                                    ^  ^
    |
help: remove these parentheses
    |
909 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
909 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:909:53
    |
909 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                               ^  ^
    |
help: remove these parentheses
    |
909 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
909 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
    |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1023:13
     |
1023 |             (append(
     |             ^
...
1035 |             )),
     |              ^
     |
help: remove these parentheses
     |
1023 ~             append(
1024 |                 (append(
 ...
1034 |                 string(" / "),
1035 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1036:13
     |
1036 |             (v180),
     |             ^    ^
     |
help: remove these parentheses
     |
1036 -             (v180),
1036 +             v180,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1024:17
     |
1024 |                 (append(
     |                 ^
...
1033 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
1024 ~                 append(
1025 |                     (append(
 ...
1032 |                     string("async.run_with_timeout_async**"),
1033 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1025:21
     |
1025 |                     (append(
     |                     ^
...
1031 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
1025 ~                     append(
1026 |                         (append(
 ...
1030 |                         string(" "),
1031 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1026:25
     |
1026 |                         (append(
     |                         ^
...
1029 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
1026 ~                         append(
1027 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1028 |                             (toString(v0.l0.get().clone())),
1029 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1027:29
     |
1027 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
1027 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1027 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1028:29
     |
1028 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
1028 -                             (toString(v0.l0.get().clone())),
1028 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1027:37
     |
1027 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
1027 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1027 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1027:45
     |
1027 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
1027 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1027 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1027:74
     |
1027 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
1027 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1027 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1027:53
     |
1027 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
1027 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1027 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1206:13
     |
1206 |             (append(
     |             ^
...
1218 |             )),
     |              ^
     |
help: remove these parentheses
     |
1206 ~             append(
1207 |                 (append(
 ...
1217 |                 string(" / "),
1218 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1219:13
     |
1219 |             (v367),
     |             ^    ^
     |
help: remove these parentheses
     |
1219 -             (v367),
1219 +             v367,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1207:17
     |
1207 |                 (append(
     |                 ^
...
1216 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
1207 ~                 append(
1208 |                     (append(
 ...
1215 |                     string("networking.wait_for_port_access"),
1216 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1208:21
     |
1208 |                     (append(
     |                     ^
...
1214 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
1208 ~                     append(
1209 |                         (append(
 ...
1213 |                         string(" "),
1214 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1209:25
     |
1209 |                         (append(
     |                         ^
...
1212 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
1209 ~                         append(
1210 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1211 |                             (toString(v0.l0.get().clone())),
1212 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1210:29
     |
1210 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
1210 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1210 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1211:29
     |
1211 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
1211 -                             (toString(v0.l0.get().clone())),
1211 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1210:37
     |
1210 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
1210 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1210 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1210:45
     |
1210 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
1210 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1210 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1210:74
     |
1210 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
1210 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1210 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1210:53
     |
1210 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
1210 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1210 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:837:33
    |
837 |         let v4: string = append((v0.l0.get().clone()), (v1));
    |                                 ^                   ^
    |
help: remove these parentheses
    |
837 -         let v4: string = append((v0.l0.get().clone()), (v1));
837 +         let v4: string = append(v0.l0.get().clone(), (v1));
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:837:56
    |
837 |         let v4: string = append((v0.l0.get().clone()), (v1));
    |                                                        ^  ^
    |
help: remove these parentheses
    |
837 -         let v4: string = append((v0.l0.get().clone()), (v1));
837 +         let v4: string = append((v0.l0.get().clone()), v1);
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:881:13
    |
881 |             (append(
    |             ^
...
893 |             )),
    |              ^
    |
help: remove these parentheses
    |
881 ~             append(
882 |                 (append(
...
892 |                 string(" / "),
893 ~             ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:894:13
    |
894 |             (v10),
    |             ^   ^
    |
help: remove these parentheses
    |
894 -             (v10),
894 +             v10,
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:882:17
    |
882 |                 (append(
    |                 ^
...
891 |                 )),
    |                  ^
    |
help: remove these parentheses
    |
882 ~                 append(
883 |                     (append(
...
890 |                     string("runtime.current_process_kill / exiting... 3"),
891 ~                 ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:883:21
    |
883 |                     (append(
    |                     ^
...
889 |                     )),
    |                      ^
    |
help: remove these parentheses
    |
883 ~                     append(
884 |                         (append(
...
888 |                         string(" "),
889 ~                     ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:884:25
    |
884 |                         (append(
    |                         ^
...
887 |                         )),
    |                          ^
    |
help: remove these parentheses
    |
884 ~                         append(
885 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
886 |                             (toString(v0.l0.get().clone())),
887 ~                         ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:885:29
    |
885 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                       ^                                                                 ^
    |
help: remove these parentheses
    |
885 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
885 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:886:29
    |
886 | ...                   (toString(v0.l0.get().clone())),
    |                       ^                             ^
    |
help: remove these parentheses
    |
886 -                             (toString(v0.l0.get().clone())),
886 +                             toString(v0.l0.get().clone()),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:885:37
    |
885 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                               ^                                         ^
    |
help: remove these parentheses
    |
885 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
885 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:885:45
    |
885 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                       ^                         ^
    |
help: remove these parentheses
    |
885 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
885 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:885:74
    |
885 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                                                    ^  ^
    |
help: remove these parentheses
    |
885 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
885 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:885:53
    |
885 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                               ^  ^
    |
help: remove these parentheses
    |
885 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
885 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:979:13
    |
979 |             (append(
    |             ^
...
991 |             )),
    |              ^
    |
help: remove these parentheses
    |
979 ~             append(
980 |                 (append(
...
990 |                 string(" / "),
991 ~             ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:992:13
    |
992 |             (v10),
    |             ^   ^
    |
help: remove these parentheses
    |
992 -             (v10),
992 +             v10,
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:980:17
    |
980 |                 (append(
    |                 ^
...
989 |                 )),
    |                  ^
    |
help: remove these parentheses
    |
980 ~                 append(
981 |                     (append(
...
988 |                     string("runtime.current_process_kill / exiting... 2"),
989 ~                 ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:981:21
    |
981 |                     (append(
    |                     ^
...
987 |                     )),
    |                      ^
    |
help: remove these parentheses
    |
981 ~                     append(
982 |                         (append(
...
986 |                         string(" "),
987 ~                     ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:982:25
    |
982 |                         (append(
    |                         ^
...
985 |                         )),
    |                          ^
    |
help: remove these parentheses
    |
982 ~                         append(
983 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
984 |                             (toString(v0.l0.get().clone())),
985 ~                         ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:983:29
    |
983 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                       ^                                                                 ^
    |
help: remove these parentheses
    |
983 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
983 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:984:29
    |
984 | ...                   (toString(v0.l0.get().clone())),
    |                       ^                             ^
    |
help: remove these parentheses
    |
984 -                             (toString(v0.l0.get().clone())),
984 +                             toString(v0.l0.get().clone()),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:983:37
    |
983 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                               ^                                         ^
    |
help: remove these parentheses
    |
983 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
983 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:983:45
    |
983 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                       ^                         ^
    |
help: remove these parentheses
    |
983 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
983 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:983:74
    |
983 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                                                    ^  ^
    |
help: remove these parentheses
    |
983 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
983 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:983:53
    |
983 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                               ^  ^
    |
help: remove these parentheses
    |
983 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
983 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
    |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1042:13
     |
1042 |             (append(
     |             ^
...
1054 |             )),
     |              ^
     |
help: remove these parentheses
     |
1042 ~             append(
1043 |                 (append(
 ...
1053 |                 string(" / "),
1054 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1055:13
     |
1055 |             (v10),
     |             ^   ^
     |
help: remove these parentheses
     |
1055 -             (v10),
1055 +             v10,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1043:17
     |
1043 |                 (append(
     |                 ^
...
1052 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
1043 ~                 append(
1044 |                     (append(
 ...
1051 |                     string("runtime.current_process_kill / exiting... 1"),
1052 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1044:21
     |
1044 |                     (append(
     |                     ^
...
1050 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
1044 ~                     append(
1045 |                         (append(
 ...
1049 |                         string(" "),
1050 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1045:25
     |
1045 |                         (append(
     |                         ^
...
1048 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
1045 ~                         append(
1046 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1047 |                             (toString(v0.l0.get().clone())),
1048 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1046:29
     |
1046 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
1046 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1046 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1047:29
     |
1047 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
1047 -                             (toString(v0.l0.get().clone())),
1047 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1046:37
     |
1046 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
1046 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1046 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1046:45
     |
1046 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
1046 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1046 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1046:74
     |
1046 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
1046 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1046 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1046:53
     |
1046 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
1046 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1046 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1123:30
     |
1123 |             break '_method26 (match v0.get().clone().as_ref() {
     |                              ^
...
1161 |             });
     |              ^
     |
help: remove these parentheses
     |
1123 ~             break '_method26 match v0.get().clone().as_ref() {
1124 |                 Runtime::UH0::UH0_0 => (v1.get().clone(), v2.get().clone(), v3.get().clone()),
 ...
1160 |                 }
1161 ~             };
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1168:58
     |
1168 |             (Runtime::method27(v0, (v1) + 1_i32))(append((v2), string(" ")))
     |                                                          ^  ^
     |
help: remove these parentheses
     |
1168 -             (Runtime::method27(v0, (v1) + 1_i32))(append((v2), string(" ")))
1168 +             (Runtime::method27(v0, (v1) + 1_i32))(append(v2, string(" ")))
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1231:25
     |
1231 |                         ((Runtime::method27((v3) - 1_i32, 0_i32))(string(""))),
     |                         ^                                                    ^
     |
help: remove these parentheses
     |
1231 -                         ((Runtime::method27((v3) - 1_i32, 0_i32))(string(""))),
1231 +                         (Runtime::method27((v3) - 1_i32, 0_i32))(string("")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1292:25
     |
1292 |                         ((Runtime::method27((v3) - 1_i32, 0_i32))(string(""))),
     |                         ^                                                    ^
     |
help: remove these parentheses
     |
1292 -                         ((Runtime::method27((v3) - 1_i32, 0_i32))(string(""))),
1292 +                         (Runtime::method27((v3) - 1_i32, 0_i32))(string("")),
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1309:30
     |
1309 |             break '_method28 (match v2.get().clone().as_ref() {
     |                              ^
...
1340 |             });
     |              ^
     |
help: remove these parentheses
     |
1309 ~             break '_method28 match v2.get().clone().as_ref() {
1310 |                 Runtime::UH1::UH1_0 => {
 ...
1339 |                 }
1340 ~             };
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1347:30
     |
1347 |             break '_method29 (if (v1.get().clone()) >= 2_i64 {
     |                              ^
...
1378 |             });
     |              ^
     |
help: remove these parentheses
     |
1347 ~             break '_method29 if (v1.get().clone()) >= 2_i64 {
1348 |                 false
 ...
1377 |                 }
1378 ~             };
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1394:30
     |
1394 |             break '_method30 ({
     |                              ^
...
1468 |             });
     |              ^
     |
help: remove these parentheses
     |
1394 ~             break '_method30 {
1395 |                 let v98: Runtime::US7 = if string("") == (v1.get().clone()) {
 ...
1467 |                 }
1468 ~             };
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1448:36
     |
1448 | ...                   append((v0.get().clone()), (ofChar(v110_0_0.clone())));
     |                              ^                ^
     |
help: remove these parentheses
     |
1448 -                             append((v0.get().clone()), (ofChar(v110_0_0.clone())));
1448 +                             append(v0.get().clone(), (ofChar(v110_0_0.clone())));
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1448:56
     |
1448 | ...                   append((v0.get().clone()), (ofChar(v110_0_0.clone())));
     |                                                  ^                        ^
     |
help: remove these parentheses
     |
1448 -                             append((v0.get().clone()), (ofChar(v110_0_0.clone())));
1448 +                             append((v0.get().clone()), ofChar(v110_0_0.clone()));
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1484:30
     |
1484 |             break '_method31 (match v4.get().clone().as_ref() {
     |                              ^
...
1519 |             });
     |              ^
     |
help: remove these parentheses
     |
1484 ~             break '_method31 match v4.get().clone().as_ref() {
1485 |                 Runtime::UH1::UH1_0 => {
 ...
1518 |                 }
1519 ~             };
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1526:30
     |
1526 |             break '_method32 (if (v1.get().clone()) >= 3_i64 {
     |                              ^
...
1562 |             });
     |              ^
     |
help: remove these parentheses
     |
1526 ~             break '_method32 if (v1.get().clone()) >= 3_i64 {
1527 |                 false
 ...
1561 |                 }
1562 ~             };
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1578:30
     |
1578 |             break '_method33 ({
     |                              ^
...
1652 |             });
     |              ^
     |
help: remove these parentheses
     |
1578 ~             break '_method33 {
1579 |                 let v106: Runtime::US7 = if string("") == (v1.get().clone()) {
 ...
1651 |                 }
1652 ~             };
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1632:36
     |
1632 | ...                   append((v0.get().clone()), (ofChar(v118_0_0.clone())));
     |                              ^                ^
     |
help: remove these parentheses
     |
1632 -                             append((v0.get().clone()), (ofChar(v118_0_0.clone())));
1632 +                             append(v0.get().clone(), (ofChar(v118_0_0.clone())));
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1632:56
     |
1632 | ...                   append((v0.get().clone()), (ofChar(v118_0_0.clone())));
     |                                                  ^                        ^
     |
help: remove these parentheses
     |
1632 -                             append((v0.get().clone()), (ofChar(v118_0_0.clone())));
1632 +                             append((v0.get().clone()), ofChar(v118_0_0.clone()));
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1659:30
     |
1659 |             break '_method34 (if (v1.get().clone()) >= (length(v0.get().clone())) {
     |                              ^
...
1671 |             });
     |              ^
     |
help: remove these parentheses
     |
1659 ~             break '_method34 if (v1.get().clone()) >= (length(v0.get().clone())) {
1660 |                 v1.get().clone()
 ...
1670 |                 }
1671 ~             };
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1687:30
     |
1687 |             break '_method35 ({
     |                              ^
...
1737 |             });
     |              ^
     |
help: remove these parentheses
     |
1687 ~             break '_method35 {
1688 |                 let v66: Runtime::US7 = if string("") == (v1.get().clone()) {
 ...
1736 |                 }
1737 ~             };
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1717:54
     |
1717 |                         let v0_temp: string = append((v0.get().clone()), (ofChar(v66_0_0.clone())));
     |                                                      ^                ^
     |
help: remove these parentheses
     |
1717 -                         let v0_temp: string = append((v0.get().clone()), (ofChar(v66_0_0.clone())));
1717 +                         let v0_temp: string = append(v0.get().clone(), (ofChar(v66_0_0.clone())));
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1717:74
     |
1717 |                         let v0_temp: string = append((v0.get().clone()), (ofChar(v66_0_0.clone())));
     |                                                                          ^                       ^
     |
help: remove these parentheses
     |
1717 -                         let v0_temp: string = append((v0.get().clone()), (ofChar(v66_0_0.clone())));
1717 +                         let v0_temp: string = append((v0.get().clone()), ofChar(v66_0_0.clone()));
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2094:37
     |
2094 | ...                   ((Runtime::method27((v421) - 1_i32, 0_i32))(string(""))),
     |                       ^                                                      ^
     |
help: remove these parentheses
     |
2094 -                                     ((Runtime::method27((v421) - 1_i32, 0_i32))(string(""))),
2094 +                                     (Runtime::method27((v421) - 1_i32, 0_i32))(string("")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2468:13
     |
2468 |             (append(
     |             ^
...
2480 |             )),
     |              ^
     |
help: remove these parentheses
     |
2468 ~             append(
2469 |                 (append(
 ...
2479 |                 string(" / "),
2480 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2481:13
     |
2481 |             (v911),
     |             ^    ^
     |
help: remove these parentheses
     |
2481 -             (v911),
2481 +             v911,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2469:17
     |
2469 |                 (append(
     |                 ^
...
2478 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
2469 ~                 append(
2470 |                     (append(
 ...
2477 |                     string("runtime.execute_with_options_async"),
2478 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2470:21
     |
2470 |                     (append(
     |                     ^
...
2476 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
2470 ~                     append(
2471 |                         (append(
 ...
2475 |                         string(" "),
2476 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2471:25
     |
2471 |                         (append(
     |                         ^
...
2474 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
2471 ~                         append(
2472 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2473 |                             (toString(v0.l0.get().clone())),
2474 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2472:29
     |
2472 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
2472 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2472 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2473:29
     |
2473 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
2473 -                             (toString(v0.l0.get().clone())),
2473 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2472:37
     |
2472 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
2472 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2472 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2472:45
     |
2472 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
2472 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2472 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2472:74
     |
2472 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
2472 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2472 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2472:53
     |
2472 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
2472 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2472 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2594:13
     |
2594 |             (append(
     |             ^
...
2606 |             )),
     |              ^
     |
help: remove these parentheses
     |
2594 ~             append(
2595 |                 (append(
 ...
2605 |                 string(" / "),
2606 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2607:13
     |
2607 |             (v11),
     |             ^   ^
     |
help: remove these parentheses
     |
2607 -             (v11),
2607 +             v11,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2595:17
     |
2595 |                 (append(
     |                 ^
...
2604 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
2595 ~                 append(
2596 |                     (append(
 ...
2603 |                     (v8),
2604 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2596:21
     |
2596 |                     (append(
     |                     ^
...
2602 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
2596 ~                     append(
2597 |                         (append(
 ...
2601 |                         string(" "),
2602 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2603:21
     |
2603 |                     (v8),
     |                     ^  ^
     |
help: remove these parentheses
     |
2603 -                     (v8),
2603 +                     v8,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2597:25
     |
2597 |                         (append(
     |                         ^
...
2600 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
2597 ~                         append(
2598 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2599 |                             (toString(v0.l0.get().clone())),
2600 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2598:29
     |
2598 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
2598 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2598 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2599:29
     |
2599 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
2599 -                             (toString(v0.l0.get().clone())),
2599 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2598:37
     |
2598 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
2598 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2598 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2598:45
     |
2598 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
2598 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2598 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2598:74
     |
2598 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
2598 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2598 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2598:53
     |
2598 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
2598 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2598 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2755:13
     |
2755 |             (append(
     |             ^
...
2767 |             )),
     |              ^
     |
help: remove these parentheses
     |
2755 ~             append(
2756 |                 (append(
 ...
2766 |                 string(" / "),
2767 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2768:13
     |
2768 |             (v143),
     |             ^    ^
     |
help: remove these parentheses
     |
2768 -             (v143),
2768 +             v143,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2756:17
     |
2756 |                 (append(
     |                 ^
...
2765 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
2756 ~                 append(
2757 |                     (append(
 ...
2764 |                     string("runtime.execute_with_options_async / WaitForExitAsync"),
2765 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2757:21
     |
2757 |                     (append(
     |                     ^
...
2763 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
2757 ~                     append(
2758 |                         (append(
 ...
2762 |                         string(" "),
2763 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2758:25
     |
2758 |                         (append(
     |                         ^
...
2761 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
2758 ~                         append(
2759 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2760 |                             (toString(v0.l0.get().clone())),
2761 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2759:29
     |
2759 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
2759 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2759 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2760:29
     |
2760 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
2760 -                             (toString(v0.l0.get().clone())),
2760 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2759:37
     |
2759 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
2759 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2759 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2759:45
     |
2759 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
2759 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2759 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2759:74
     |
2759 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
2759 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2759 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2759:53
     |
2759 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
2759 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2759 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3030:13
     |
3030 |             (append(
     |             ^
...
3042 |             )),
     |              ^
     |
help: remove these parentheses
     |
3030 ~             append(
3031 |                 (append(
 ...
3041 |                 string(" / "),
3042 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3043:13
     |
3043 |             (v913),
     |             ^    ^
     |
help: remove these parentheses
     |
3043 -             (v913),
3043 +             v913,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3031:17
     |
3031 |                 (append(
     |                 ^
...
3040 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
3031 ~                 append(
3032 |                     (append(
 ...
3039 |                     string("runtime.execute_with_options_async"),
3040 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3032:21
     |
3032 |                     (append(
     |                     ^
...
3038 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
3032 ~                     append(
3033 |                         (append(
 ...
3037 |                         string(" "),
3038 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3033:25
     |
3033 |                         (append(
     |                         ^
...
3036 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
3033 ~                         append(
3034 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
3035 |                             (toString(v0.l0.get().clone())),
3036 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3034:29
     |
3034 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
3034 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
3034 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3035:29
     |
3035 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
3035 -                             (toString(v0.l0.get().clone())),
3035 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3034:37
     |
3034 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
3034 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
3034 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3034:45
     |
3034 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
3034 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
3034 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3034:74
     |
3034 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
3034 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
3034 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3034:53
     |
3034 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
3034 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
3034 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3191:30
     |
3191 |             break '_method57 (if (v1.get().clone()) >= 4_i64 {
     |                              ^
...
3232 |             });
     |              ^
     |
help: remove these parentheses
     |
3191 ~             break '_method57 if (v1.get().clone()) >= 4_i64 {
3192 |                 false
 ...
3231 |                 }
3232 ~             };
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3248:30
     |
3248 |             break '_method58 ({
     |                              ^
...
3309 |             });
     |              ^
     |
help: remove these parentheses
     |
3248 ~             break '_method58 {
3249 |                 let v114: Runtime::US7 = if string("") == (v1.get().clone()) {
 ...
3308 |                 }
3309 ~             };
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3289:36
     |
3289 | ...                   append((v0.get().clone()), (ofChar(v114_0_0.clone())));
     |                              ^                ^
     |
help: remove these parentheses
     |
3289 -                             append((v0.get().clone()), (ofChar(v114_0_0.clone())));
3289 +                             append(v0.get().clone(), (ofChar(v114_0_0.clone())));
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3289:56
     |
3289 | ...                   append((v0.get().clone()), (ofChar(v114_0_0.clone())));
     |                                                  ^                        ^
     |
help: remove these parentheses
     |
3289 -                             append((v0.get().clone()), (ofChar(v114_0_0.clone())));
3289 +                             append((v0.get().clone()), ofChar(v114_0_0.clone()));
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3316:30
     |
3316 |             break '_method60 (if (v1.get().clone()) >= 3_i64 {
     |                              ^
...
3352 |             });
     |              ^
     |
help: remove these parentheses
     |
3316 ~             break '_method60 if (v1.get().clone()) >= 3_i64 {
3317 |                 false
 ...
3351 |                 }
3352 ~             };
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3408:25
     |
3408 |                         ((Runtime::method27((v3) - 1_i32, 0_i32))(string(""))),
     |                         ^                                                    ^
     |
help: remove these parentheses
     |
3408 -                         ((Runtime::method27((v3) - 1_i32, 0_i32))(string(""))),
3408 +                         (Runtime::method27((v3) - 1_i32, 0_i32))(string("")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3451:28
     |
3451 |                     append((ofChar('\\')), (ofChar(v196_0_0.clone()))),
     |                            ^            ^
     |
help: remove these parentheses
     |
3451 -                     append((ofChar('\\')), (ofChar(v196_0_0.clone()))),
3451 +                     append(ofChar('\\'), (ofChar(v196_0_0.clone()))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3451:44
     |
3451 |                     append((ofChar('\\')), (ofChar(v196_0_0.clone()))),
     |                                            ^                        ^
     |
help: remove these parentheses
     |
3451 -                     append((ofChar('\\')), (ofChar(v196_0_0.clone()))),
3451 +                     append((ofChar('\\')), ofChar(v196_0_0.clone())),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3514:25
     |
3514 |                         ((Runtime::method27((v3) - 1_i32, 0_i32))(string(""))),
     |                         ^                                                    ^
     |
help: remove these parentheses
     |
3514 -                         ((Runtime::method27((v3) - 1_i32, 0_i32))(string(""))),
3514 +                         (Runtime::method27((v3) - 1_i32, 0_i32))(string("")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3557:28
     |
3557 |                     append((ofChar('`')), (ofChar(v196_0_0.clone()))),
     |                            ^           ^
     |
help: remove these parentheses
     |
3557 -                     append((ofChar('`')), (ofChar(v196_0_0.clone()))),
3557 +                     append(ofChar('`'), (ofChar(v196_0_0.clone()))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3557:43
     |
3557 |                     append((ofChar('`')), (ofChar(v196_0_0.clone()))),
     |                                           ^                        ^
     |
help: remove these parentheses
     |
3557 -                     append((ofChar('`')), (ofChar(v196_0_0.clone()))),
3557 +                     append((ofChar('`')), ofChar(v196_0_0.clone())),
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3580:30
     |
3580 |             break '_method61 (match v4.get().clone().as_ref() {
     |                              ^
...
3615 |             });
     |              ^
     |
help: remove these parentheses
     |
3580 ~             break '_method61 match v4.get().clone().as_ref() {
3581 |                 Runtime::UH3::UH3_0 => {
 ...
3614 |                 }
3615 ~             };
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3622:30
     |
3622 |             break '_method62 (match v0.get().clone().as_ref() {
     |                              ^
...
3642 |             });
     |              ^
     |
help: remove these parentheses
     |
3622 ~             break '_method62 match v0.get().clone().as_ref() {
3623 |                 Runtime::UH2::UH2_0 => v1.get().clone(),
 ...
3641 |                 }
3642 ~             };
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3658:30
     |
3658 |             break '_method59 ({
     |                              ^
...
3762 |             });
     |              ^
     |
help: remove these parentheses
     |
3658 ~             break '_method59 {
3659 |                 let v106: Runtime::US7 = if string("") == (v1.get().clone()) {
 ...
3761 |                 }
3762 ~             };
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3798:30
     |
3798 |             break '_method64 ({
     |                              ^
...
3871 |             });
     |              ^
     |
help: remove these parentheses
     |
3798 ~             break '_method64 {
3799 |                 let v106: Runtime::US7 = if string("") == (v1.get().clone()) {
 ...
3870 |                 }
3871 ~             };
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3887:30
     |
3887 |             break '_method56 ({
     |                              ^
...
4351 |             });
     |              ^
     |
help: remove these parentheses
     |
3887 ~             break '_method56 {
3888 |                 let v5: bool = string("") == (v1.get().clone());
 ...
4350 |                 }
4351 ~             };
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:4003:41
     |
4003 | ...                   ((Runtime::method27((v4.get().clone()) - 1_i32, 0_i32))(
     |                       ^
4004 | ...                       string(""),
4005 | ...                   )),
     |                        ^
     |
help: remove these parentheses
     |
4003 ~                                         (Runtime::method27((v4.get().clone()) - 1_i32, 0_i32))(
4004 |                                             string(""),
4005 ~                                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:4131:57
     |
4131 | ...                   ((Runtime::method27(
     |                       ^
...
4136 | ...                   )),
     |                        ^
     |
help: remove these parentheses
     |
4131 ~                                                         (Runtime::method27(
4132 |                                                             (v306) - 1_i32,
 ...
4135 |                                                             string("")
4136 ~                                                         ),
     |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:611:33
    |
611 |         let v4: string = append((v0.l0.get().clone()), (v1));
    |                                 ^                   ^
    |
help: remove these parentheses
    |
611 -         let v4: string = append((v0.l0.get().clone()), (v1));
611 +         let v4: string = append(v0.l0.get().clone(), (v1));
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:611:56
    |
611 |         let v4: string = append((v0.l0.get().clone()), (v1));
    |                                                        ^  ^
    |
help: remove these parentheses
    |
611 -         let v4: string = append((v0.l0.get().clone()), (v1));
611 +         let v4: string = append((v0.l0.get().clone()), v1);
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:776:13
    |
776 |             (append(
    |             ^
...
788 |             )),
    |              ^
    |
help: remove these parentheses
    |
776 ~             append(
777 |                 (append(
...
787 |                 string(" / "),
788 ~             ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:789:13
    |
789 |             (v29),
    |             ^   ^
    |
help: remove these parentheses
    |
789 -             (v29),
789 +             v29,
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:777:17
    |
777 |                 (append(
    |                 ^
...
786 |                 )),
    |                  ^
    |
help: remove these parentheses
    |
777 ~                 append(
778 |                     (append(
...
785 |                     (v8),
786 ~                 ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:778:21
    |
778 |                     (append(
    |                     ^
...
784 |                     )),
    |                      ^
    |
help: remove these parentheses
    |
778 ~                     append(
779 |                         (append(
...
783 |                         string(" "),
784 ~                     ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:785:21
    |
785 |                     (v8),
    |                     ^  ^
    |
help: remove these parentheses
    |
785 -                     (v8),
785 +                     v8,
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:779:25
    |
779 |                         (append(
    |                         ^
...
782 |                         )),
    |                          ^
    |
help: remove these parentheses
    |
779 ~                         append(
780 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
781 |                             (toString(v0.l0.get().clone())),
782 ~                         ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:780:29
    |
780 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                       ^                                                                 ^
    |
help: remove these parentheses
    |
780 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
780 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:781:29
    |
781 | ...                   (toString(v0.l0.get().clone())),
    |                       ^                             ^
    |
help: remove these parentheses
    |
781 -                             (toString(v0.l0.get().clone())),
781 +                             toString(v0.l0.get().clone()),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:780:37
    |
780 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                               ^                                         ^
    |
help: remove these parentheses
    |
780 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
780 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:780:45
    |
780 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                       ^                         ^
    |
help: remove these parentheses
    |
780 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
780 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:780:74
    |
780 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                                                    ^  ^
    |
help: remove these parentheses
    |
780 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
780 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:780:53
    |
780 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                               ^  ^
    |
help: remove these parentheses
    |
780 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
780 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:890:33
    |
890 |         let v4: string = append((v0.l0.get().clone()), (v1));
    |                                 ^                   ^
    |
help: remove these parentheses
    |
890 -         let v4: string = append((v0.l0.get().clone()), (v1));
890 +         let v4: string = append(v0.l0.get().clone(), (v1));
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:890:56
    |
890 |         let v4: string = append((v0.l0.get().clone()), (v1));
    |                                                        ^  ^
    |
help: remove these parentheses
    |
890 -         let v4: string = append((v0.l0.get().clone()), (v1));
890 +         let v4: string = append((v0.l0.get().clone()), v1);
    |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1001:13
     |
1001 |             (append(
     |             ^
...
1013 |             )),
     |              ^
     |
help: remove these parentheses
     |
1001 ~             append(
1002 |                 (append(
 ...
1012 |                 string(" / "),
1013 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1014:13
     |
1014 |             (v177),
     |             ^    ^
     |
help: remove these parentheses
     |
1014 -             (v177),
1014 +             v177,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1002:17
     |
1002 |                 (append(
     |                 ^
...
1011 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
1002 ~                 append(
1003 |                     (append(
 ...
1010 |                     string("file_system.delete_directory_async"),
1011 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1003:21
     |
1003 |                     (append(
     |                     ^
...
1009 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
1003 ~                     append(
1004 |                         (append(
 ...
1008 |                         string(" "),
1009 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1004:25
     |
1004 |                         (append(
     |                         ^
...
1007 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
1004 ~                         append(
1005 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1006 |                             (toString(v0.l0.get().clone())),
1007 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1005:29
     |
1005 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
1005 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1005 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1006:29
     |
1006 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
1006 -                             (toString(v0.l0.get().clone())),
1006 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1005:37
     |
1005 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
1005 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1005 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1005:45
     |
1005 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
1005 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1005 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1005:74
     |
1005 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
1005 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1005 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1005:53
     |
1005 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
1005 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1005 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1174:13
     |
1174 |             (append(
     |             ^
...
1186 |             )),
     |              ^
     |
help: remove these parentheses
     |
1174 ~             append(
1175 |                 (append(
 ...
1185 |                 string(" / "),
1186 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1187:13
     |
1187 |             (v251),
     |             ^    ^
     |
help: remove these parentheses
     |
1187 -             (v251),
1187 +             v251,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1175:17
     |
1175 |                 (append(
     |                 ^
...
1184 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
1175 ~                 append(
1176 |                     (append(
 ...
1183 |                     string("file_system.wait_for_file_access"),
1184 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1176:21
     |
1176 |                     (append(
     |                     ^
...
1182 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
1176 ~                     append(
1177 |                         (append(
 ...
1181 |                         string(" "),
1182 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1177:25
     |
1177 |                         (append(
     |                         ^
...
1180 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
1177 ~                         append(
1178 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1179 |                             (toString(v0.l0.get().clone())),
1180 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1178:29
     |
1178 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
1178 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1178 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1179:29
     |
1179 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
1179 -                             (toString(v0.l0.get().clone())),
1179 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1178:37
     |
1178 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
1178 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1178 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1178:45
     |
1178 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
1178 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1178 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1178:74
     |
1178 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
1178 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1178 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1178:53
     |
1178 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
1178 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1178 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1352:13
     |
1352 |             (append(
     |             ^
...
1364 |             )),
     |              ^
     |
help: remove these parentheses
     |
1352 ~             append(
1353 |                 (append(
 ...
1363 |                 string(" / "),
1364 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1365:13
     |
1365 |             (v290),
     |             ^    ^
     |
help: remove these parentheses
     |
1365 -             (v290),
1365 +             v290,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1353:17
     |
1353 |                 (append(
     |                 ^
...
1362 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
1353 ~                 append(
1354 |                     (append(
 ...
1361 |                     string("file_system.read_all_text_async"),
1362 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1354:21
     |
1354 |                     (append(
     |                     ^
...
1360 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
1354 ~                     append(
1355 |                         (append(
 ...
1359 |                         string(" "),
1360 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1355:25
     |
1355 |                         (append(
     |                         ^
...
1358 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
1355 ~                         append(
1356 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1357 |                             (toString(v0.l0.get().clone())),
1358 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1356:29
     |
1356 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
1356 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1356 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1357:29
     |
1357 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
1357 -                             (toString(v0.l0.get().clone())),
1357 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1356:37
     |
1356 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
1356 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1356 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1356:45
     |
1356 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
1356 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1356 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1356:74
     |
1356 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
1356 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1356 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1356:53
     |
1356 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
1356 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1356 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1563:13
     |
1563 |             (append(
     |             ^
...
1575 |             )),
     |              ^
     |
help: remove these parentheses
     |
1563 ~             append(
1564 |                 (append(
 ...
1574 |                 string(" / "),
1575 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1576:13
     |
1576 |             (v104),
     |             ^    ^
     |
help: remove these parentheses
     |
1576 -             (v104),
1576 +             v104,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1564:17
     |
1564 |                 (append(
     |                 ^
...
1573 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
1564 ~                 append(
1565 |                     (append(
 ...
1572 |                     string("file_system.file_delete"),
1573 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1565:21
     |
1565 |                     (append(
     |                     ^
...
1571 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
1565 ~                     append(
1566 |                         (append(
 ...
1570 |                         string(" "),
1571 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1566:25
     |
1566 |                         (append(
     |                         ^
...
1569 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
1566 ~                         append(
1567 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1568 |                             (toString(v0.l0.get().clone())),
1569 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1567:29
     |
1567 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
1567 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1567 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1568:29
     |
1568 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
1568 -                             (toString(v0.l0.get().clone())),
1568 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1567:37
     |
1567 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
1567 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1567 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1567:45
     |
1567 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
1567 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1567 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1567:74
     |
1567 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
1567 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1567 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1567:53
     |
1567 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
1567 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1567 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1684:13
     |
1684 |             (append(
     |             ^
...
1696 |             )),
     |              ^
     |
help: remove these parentheses
     |
1684 ~             append(
1685 |                 (append(
 ...
1695 |                 string(" / "),
1696 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1697:13
     |
1697 |             (v177),
     |             ^    ^
     |
help: remove these parentheses
     |
1697 -             (v177),
1697 +             v177,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1685:17
     |
1685 |                 (append(
     |                 ^
...
1694 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
1685 ~                 append(
1686 |                     (append(
 ...
1693 |                     string("delete_file_async"),
1694 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1686:21
     |
1686 |                     (append(
     |                     ^
...
1692 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
1686 ~                     append(
1687 |                         (append(
 ...
1691 |                         string(" "),
1692 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1687:25
     |
1687 |                         (append(
     |                         ^
...
1690 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
1687 ~                         append(
1688 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1689 |                             (toString(v0.l0.get().clone())),
1690 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1688:29
     |
1688 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
1688 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1688 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1689:29
     |
1689 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
1689 -                             (toString(v0.l0.get().clone())),
1689 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1688:37
     |
1688 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
1688 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1688 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1688:45
     |
1688 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
1688 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1688 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1688:74
     |
1688 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
1688 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1688 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1688:53
     |
1688 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
1688 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1688 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1822:13
     |
1822 |             (append(
     |             ^
...
1834 |             )),
     |              ^
     |
help: remove these parentheses
     |
1822 ~             append(
1823 |                 (append(
 ...
1833 |                 string(" / "),
1834 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1835:13
     |
1835 |             (v248),
     |             ^    ^
     |
help: remove these parentheses
     |
1835 -             (v248),
1835 +             v248,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1823:17
     |
1823 |                 (append(
     |                 ^
...
1832 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
1823 ~                 append(
1824 |                     (append(
 ...
1831 |                     string("move_file_async"),
1832 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1824:21
     |
1824 |                     (append(
     |                     ^
...
1830 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
1824 ~                     append(
1825 |                         (append(
 ...
1829 |                         string(" "),
1830 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1825:25
     |
1825 |                         (append(
     |                         ^
...
1828 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
1825 ~                         append(
1826 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1827 |                             (toString(v0.l0.get().clone())),
1828 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1826:29
     |
1826 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
1826 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1826 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1827:29
     |
1827 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
1827 -                             (toString(v0.l0.get().clone())),
1827 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1826:37
     |
1826 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
1826 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1826 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1826:45
     |
1826 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
1826 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1826 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1826:74
     |
1826 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
1826 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1826 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1826:53
     |
1826 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
1826 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1826 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1950:13
     |
1950 |             (append(
     |             ^
...
1962 |             )),
     |              ^
     |
help: remove these parentheses
     |
1950 ~             append(
1951 |                 (append(
 ...
1961 |                 string(" / "),
1962 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1963:13
     |
1963 |             (v107),
     |             ^    ^
     |
help: remove these parentheses
     |
1963 -             (v107),
1963 +             v107,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1951:17
     |
1951 |                 (append(
     |                 ^
...
1960 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
1951 ~                 append(
1952 |                     (append(
 ...
1959 |                     string("async.run_with_timeout_async"),
1960 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1952:21
     |
1952 |                     (append(
     |                     ^
...
1958 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
1952 ~                     append(
1953 |                         (append(
 ...
1957 |                         string(" "),
1958 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1953:25
     |
1953 |                         (append(
     |                         ^
...
1956 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
1953 ~                         append(
1954 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1955 |                             (toString(v0.l0.get().clone())),
1956 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1954:29
     |
1954 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
1954 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1954 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1955:29
     |
1955 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
1955 -                             (toString(v0.l0.get().clone())),
1955 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1954:37
     |
1954 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
1954 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1954 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1954:45
     |
1954 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
1954 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1954 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1954:74
     |
1954 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
1954 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1954 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:1954:53
     |
1954 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
1954 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
1954 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2055:13
     |
2055 |             (append(
     |             ^
...
2067 |             )),
     |              ^
     |
help: remove these parentheses
     |
2055 ~             append(
2056 |                 (append(
 ...
2066 |                 string(" / "),
2067 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2068:13
     |
2068 |             (v180),
     |             ^    ^
     |
help: remove these parentheses
     |
2068 -             (v180),
2068 +             v180,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2056:17
     |
2056 |                 (append(
     |                 ^
...
2065 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
2056 ~                 append(
2057 |                     (append(
 ...
2064 |                     string("async.run_with_timeout_async**"),
2065 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2057:21
     |
2057 |                     (append(
     |                     ^
...
2063 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
2057 ~                     append(
2058 |                         (append(
 ...
2062 |                         string(" "),
2063 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2058:25
     |
2058 |                         (append(
     |                         ^
...
2061 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
2058 ~                         append(
2059 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2060 |                             (toString(v0.l0.get().clone())),
2061 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2059:29
     |
2059 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
2059 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2059 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2060:29
     |
2060 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
2060 -                             (toString(v0.l0.get().clone())),
2060 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2059:37
     |
2059 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
2059 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2059 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2059:45
     |
2059 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
2059 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2059 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2059:74
     |
2059 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
2059 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2059 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2059:53
     |
2059 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
2059 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2059 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2173:13
     |
2173 |             (append(
     |             ^
...
2185 |             )),
     |              ^
     |
help: remove these parentheses
     |
2173 ~             append(
2174 |                 (append(
 ...
2184 |                 string(" / "),
2185 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2186:13
     |
2186 |             (v180),
     |             ^    ^
     |
help: remove these parentheses
     |
2186 -             (v180),
2186 +             v180,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2174:17
     |
2174 |                 (append(
     |                 ^
...
2183 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
2174 ~                 append(
2175 |                     (append(
 ...
2182 |                     string("file_system.read_all_text_retry_async"),
2183 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2175:21
     |
2175 |                     (append(
     |                     ^
...
2181 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
2175 ~                     append(
2176 |                         (append(
 ...
2180 |                         string(" "),
2181 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2176:25
     |
2176 |                         (append(
     |                         ^
...
2179 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
2176 ~                         append(
2177 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2178 |                             (toString(v0.l0.get().clone())),
2179 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2177:29
     |
2177 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
2177 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2177 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2178:29
     |
2178 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
2178 -                             (toString(v0.l0.get().clone())),
2178 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2177:37
     |
2177 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
2177 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2177 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2177:45
     |
2177 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
2177 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2177 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2177:74
     |
2177 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
2177 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2177 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2177:53
     |
2177 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
2177 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2177 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2450:13
     |
2450 |             (append(
     |             ^
...
2462 |             )),
     |              ^
     |
help: remove these parentheses
     |
2450 ~             append(
2451 |                 (append(
 ...
2461 |                 string(" / "),
2462 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2463:13
     |
2463 |             (v216),
     |             ^    ^
     |
help: remove these parentheses
     |
2463 -             (v216),
2463 +             v216,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2451:17
     |
2451 |                 (append(
     |                 ^
...
2460 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
2451 ~                 append(
2452 |                     (append(
 ...
2459 |                     string("file_system.create_dir"),
2460 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2452:21
     |
2452 |                     (append(
     |                     ^
...
2458 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
2452 ~                     append(
2453 |                         (append(
 ...
2457 |                         string(" "),
2458 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2453:25
     |
2453 |                         (append(
     |                         ^
...
2456 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
2453 ~                         append(
2454 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2455 |                             (toString(v0.l0.get().clone())),
2456 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2454:29
     |
2454 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
2454 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2454 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2455:29
     |
2455 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
2455 -                             (toString(v0.l0.get().clone())),
2455 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2454:37
     |
2454 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
2454 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2454 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2454:45
     |
2454 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
2454 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2454 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2454:74
     |
2454 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
2454 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2454 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2454:53
     |
2454 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
2454 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2454 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2539:13
     |
2539 |             (append(
     |             ^
...
2551 |             )),
     |              ^
     |
help: remove these parentheses
     |
2539 ~             append(
2540 |                 (append(
 ...
2550 |                 string(" / "),
2551 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2552:13
     |
2552 |             (v104),
     |             ^    ^
     |
help: remove these parentheses
     |
2552 -             (v104),
2552 +             v104,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2540:17
     |
2540 |                 (append(
     |                 ^
...
2549 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
2540 ~                 append(
2541 |                     (append(
 ...
2548 |                     string("file_system.create_dir"),
2549 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2541:21
     |
2541 |                     (append(
     |                     ^
...
2547 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
2541 ~                     append(
2542 |                         (append(
 ...
2546 |                         string(" "),
2547 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2542:25
     |
2542 |                         (append(
     |                         ^
...
2545 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
2542 ~                         append(
2543 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2544 |                             (toString(v0.l0.get().clone())),
2545 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2543:29
     |
2543 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
2543 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2543 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2544:29
     |
2544 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
2544 -                             (toString(v0.l0.get().clone())),
2544 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2543:37
     |
2543 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
2543 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2543 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2543:45
     |
2543 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
2543 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2543 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2543:74
     |
2543 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
2543 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2543 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2543:53
     |
2543 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
2543 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2543 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2662:13
     |
2662 |             (append(
     |             ^
...
2674 |             )),
     |              ^
     |
help: remove these parentheses
     |
2662 ~             append(
2663 |                 (append(
 ...
2673 |                 string(" / "),
2674 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2675:13
     |
2675 |             (v177),
     |             ^    ^
     |
help: remove these parentheses
     |
2675 -             (v177),
2675 +             v177,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2663:17
     |
2663 |                 (append(
     |                 ^
...
2672 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
2663 ~                 append(
2664 |                     (append(
 ...
2671 |                     string("file_system.create_dir"),
2672 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2664:21
     |
2664 |                     (append(
     |                     ^
...
2670 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
2664 ~                     append(
2665 |                         (append(
 ...
2669 |                         string(" "),
2670 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2665:25
     |
2665 |                         (append(
     |                         ^
...
2668 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
2665 ~                         append(
2666 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2667 |                             (toString(v0.l0.get().clone())),
2668 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2666:29
     |
2666 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
2666 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2666 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2667:29
     |
2667 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
2667 -                             (toString(v0.l0.get().clone())),
2667 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2666:37
     |
2666 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
2666 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2666 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2666:45
     |
2666 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
2666 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2666 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2666:74
     |
2666 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
2666 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2666 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2666:53
     |
2666 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
2666 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
2666 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2786:74
     |
2786 |             (File_system::method95(v0, v1.clone(), (v2) + 1_i32))(append((v3), (v1)))
     |                                                                          ^  ^
     |
help: remove these parentheses
     |
2786 -             (File_system::method95(v0, v1.clone(), (v2) + 1_i32))(append((v3), (v1)))
2786 +             (File_system::method95(v0, v1.clone(), (v2) + 1_i32))(append(v3, (v1)))
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2786:80
     |
2786 |             (File_system::method95(v0, v1.clone(), (v2) + 1_i32))(append((v3), (v1)))
     |                                                                                ^  ^
     |
help: remove these parentheses
     |
2786 -             (File_system::method95(v0, v1.clone(), (v2) + 1_i32))(append((v3), (v1)))
2786 +             (File_system::method95(v0, v1.clone(), (v2) + 1_i32))(append((v3), v1))
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2800:13
     |
2800 |             ((File_system::method95(32_i32 - (length(v0.clone())), v3, 0_i32))(string(""))),
     |             ^                                                                             ^
     |
help: remove these parentheses
     |
2800 -             ((File_system::method95(32_i32 - (length(v0.clone())), v3, 0_i32))(string(""))),
2800 +             (File_system::method95(32_i32 - (length(v0.clone())), v3, 0_i32))(string("")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2801:13
     |
2801 |             (v0),
     |             ^  ^
     |
help: remove these parentheses
     |
2801 -             (v0),
2801 +             v0,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2804:13
     |
2804 |             (append(
     |             ^
...
2825 |             )),
     |              ^
     |
help: remove these parentheses
     |
2804 ~             append(
2805 |                 (append(
 ...
2824 |                 string("-"),
2825 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2826:13
     |
2826 |             (getSlice(v13, Some(20_i32), Some((32_i32) - 1_i32))),
     |             ^                                                   ^
     |
help: remove these parentheses
     |
2826 -             (getSlice(v13, Some(20_i32), Some((32_i32) - 1_i32))),
2826 +             getSlice(v13, Some(20_i32), Some((32_i32) - 1_i32)),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2805:17
     |
2805 |                 (append(
     |                 ^
...
2823 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
2805 ~                 append(
2806 |                     (append(
 ...
2822 |                     (getSlice(v13.clone(), Some(16_i32), Some((20_i32) - 1_i32))),
2823 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2806:21
     |
2806 |                     (append(
     |                     ^
...
2821 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
2806 ~                     append(
2807 |                         (append(
 ...
2820 |                         string("-"),
2821 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2822:21
     |
2822 |                     (getSlice(v13.clone(), Some(16_i32), Some((20_i32) - 1_i32))),
     |                     ^                                                           ^
     |
help: remove these parentheses
     |
2822 -                     (getSlice(v13.clone(), Some(16_i32), Some((20_i32) - 1_i32))),
2822 +                     getSlice(v13.clone(), Some(16_i32), Some((20_i32) - 1_i32)),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2807:25
     |
2807 |                         (append(
     |                         ^
...
2819 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
2807 ~                         append(
2808 |                             (append(
 ...
2818 |                             (getSlice(v13.clone(), Some(12_i32), Some((16_i32) - 1_i32))),
2819 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2808:29
     |
2808 | ...                   (append(
     |                       ^
...
2817 | ...                   )),
     |                        ^
     |
help: remove these parentheses
     |
2808 ~                             append(
2809 |                                 (append(
 ...
2816 |                                 string("-"),
2817 ~                             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2818:29
     |
2818 | ...                   (getSlice(v13.clone(), Some(12_i32), Some((16_i32) - 1_i32))),
     |                       ^                                                           ^
     |
help: remove these parentheses
     |
2818 -                             (getSlice(v13.clone(), Some(12_i32), Some((16_i32) - 1_i32))),
2818 +                             getSlice(v13.clone(), Some(12_i32), Some((16_i32) - 1_i32)),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2809:33
     |
2809 | ...                   (append(
     |                       ^
...
2815 | ...                   )),
     |                        ^
     |
help: remove these parentheses
     |
2809 ~                                 append(
2810 |                                     (append(
 ...
2814 |                                     (getSlice(v13.clone(), Some(8_i32), Some((12_i32) - 1_i32))),
2815 ~                                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2810:37
     |
2810 | ...                   (append(
     |                       ^
...
2813 | ...                   )),
     |                        ^
     |
help: remove these parentheses
     |
2810 ~                                     append(
2811 |                                         (getSlice(v13.clone(), Some(0_i32), Some((8_i32) - 1_i32))),
2812 |                                         string("-"),
2813 ~                                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2814:37
     |
2814 | ...                   (getSlice(v13.clone(), Some(8_i32), Some((12_i32) - 1_i32))),
     |                       ^                                                          ^
     |
help: remove these parentheses
     |
2814 -                                     (getSlice(v13.clone(), Some(8_i32), Some((12_i32) - 1_i32))),
2814 +                                     getSlice(v13.clone(), Some(8_i32), Some((12_i32) - 1_i32)),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2811:41
     |
2811 | ...                   (getSlice(v13.clone(), Some(0_i32), Some((8_i32) - 1_i32))),
     |                       ^                                                         ^
     |
help: remove these parentheses
     |
2811 -                                         (getSlice(v13.clone(), Some(0_i32), Some((8_i32) - 1_i32))),
2811 +                                         getSlice(v13.clone(), Some(0_i32), Some((8_i32) - 1_i32)),
     |

warning: unnecessary parentheses around `break` value
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:3717:31
     |
3717 |             break '_method126 (if v3(File_system::method79(v4.get().clone(), v0.get().clone())) {
     |                               ^
...
3758 |             });
     |              ^
     |
help: remove these parentheses
     |
3717 ~             break '_method126 if v3(File_system::method79(v4.get().clone(), v0.get().clone())) {
3718 |                 File_system::US17::US17_0(v4.get().clone())
 ...
3757 |                 }
3758 ~             };
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:3742:25
     |
3742 |                         (concat(new_array(&[
     |                         ^
...
3749 |                         ]))),
     |                            ^
     |
help: remove these parentheses
     |
3742 ~                         concat(new_array(&[
3743 |                             string("file_system.find_parent / No parent for "),
 ...
3748 |                             },
3749 ~                         ])),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:3786:21
     |
3786 |                     (concat(new_array(&[
     |                     ^
...
3789 |                     ]))),
     |                        ^
     |
help: remove these parentheses
     |
3786 ~                     concat(new_array(&[
3787 |                         string("file_system.find_parent / No parent for "),
3788 |                         if v2 { string("file") } else { string("dir") },
3789 ~                     ])),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:3870:13
     |
3870 |             (append(
     |             ^
...
3882 |             )),
     |              ^
     |
help: remove these parentheses
     |
3870 ~             append(
3871 |                 (append(
 ...
3881 |                 string(" / "),
3882 ~             ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:3883:13
     |
3883 |             (v177),
     |             ^    ^
     |
help: remove these parentheses
     |
3883 -             (v177),
3883 +             v177,
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:3871:17
     |
3871 |                 (append(
     |                 ^
...
3880 |                 )),
     |                  ^
     |
help: remove these parentheses
     |
3871 ~                 append(
3872 |                     (append(
 ...
3879 |                     string("file_system.get_workspace_root"),
3880 ~                 ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:3872:21
     |
3872 |                     (append(
     |                     ^
...
3878 |                     )),
     |                      ^
     |
help: remove these parentheses
     |
3872 ~                     append(
3873 |                         (append(
 ...
3877 |                         string(" "),
3878 ~                     ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:3873:25
     |
3873 |                         (append(
     |                         ^
...
3876 |                         )),
     |                          ^
     |
help: remove these parentheses
     |
3873 ~                         append(
3874 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
3875 |                             (toString(v0.l0.get().clone())),
3876 ~                         ),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:3874:29
     |
3874 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                       ^                                                                 ^
     |
help: remove these parentheses
     |
3874 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
3874 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:3875:29
     |
3875 | ...                   (toString(v0.l0.get().clone())),
     |                       ^                             ^
     |
help: remove these parentheses
     |
3875 -                             (toString(v0.l0.get().clone())),
3875 +                             toString(v0.l0.get().clone()),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:3874:37
     |
3874 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                               ^                                         ^
     |
help: remove these parentheses
     |
3874 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
3874 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:3874:45
     |
3874 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                       ^                         ^
     |
help: remove these parentheses
     |
3874 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
3874 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:3874:74
     |
3874 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                                                    ^  ^
     |
help: remove these parentheses
     |
3874 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
3874 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
     |

warning: unnecessary parentheses around function argument
    --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:3874:53
     |
3874 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
     |                                               ^  ^
     |
help: remove these parentheses
     |
3874 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
3874 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
     |

warning: unnecessary parentheses around function argument
  --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:94:70
   |
94 |             (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), (v1_1)))
   |                                                                      ^    ^
   |
help: remove these parentheses
   |
94 -             (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), (v1_1)))
94 +             (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append(v3_1, (v1_1)))
   |

warning: unnecessary parentheses around function argument
  --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:94:78
   |
94 |             (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), (v1_1)))
   |                                                                              ^    ^
   |
help: remove these parentheses
   |
94 -             (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), (v1_1)))
94 +             (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), v1_1))
   |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:108:13
    |
108 |             ((Sm::method0((v0_1) - (length(v2_1.clone())), v5_1, 0_i32))(string(""))),
    |             ^                                                                       ^
    |
help: remove these parentheses
    |
108 -             ((Sm::method0((v0_1) - (length(v2_1.clone())), v5_1, 0_i32))(string(""))),
108 +             (Sm::method0((v0_1) - (length(v2_1.clone())), v5_1, 0_i32))(string("")),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:109:13
    |
109 |             (v2_1),
    |             ^    ^
    |
help: remove these parentheses
    |
109 -             (v2_1),
109 +             v2_1,
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:128:13
    |
128 |             (v2_1.clone()),
    |             ^            ^
    |
help: remove these parentheses
    |
128 -             (v2_1.clone()),
128 +             v2_1.clone(),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:129:13
    |
129 |             ((Sm::method0((v0_1) - (length(v2_1)), v5_1, 0_i32))(string(""))),
    |             ^                                                               ^
    |
help: remove these parentheses
    |
129 -             ((Sm::method0((v0_1) - (length(v2_1)), v5_1, 0_i32))(string(""))),
129 +             (Sm::method0((v0_1) - (length(v2_1)), v5_1, 0_i32))(string("")),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:345:17
    |
345 |                 (getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32))),
    |                 ^                                                 ^
    |
help: remove these parentheses
    |
345 -                 (getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32))),
345 +                 getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32)),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:410:24
    |
410 |                 append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue));
    |                        ^                                            ^
    |
help: remove these parentheses
    |
410 -                 append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue));
410 +                 append(append((v1_1[v9_1].clone()), (matchValue_1)), (matchValue));
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:410:72
    |
410 |                 append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue));
    |                                                                        ^          ^
    |
help: remove these parentheses
    |
410 -                 append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue));
410 +                 append((append((v1_1[v9_1].clone()), (matchValue_1))), matchValue);
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:410:32
    |
410 |                 append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue));
    |                                ^                  ^
    |
help: remove these parentheses
    |
410 -                 append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue));
410 +                 append((append(v1_1[v9_1].clone(), (matchValue_1))), (matchValue));
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:410:54
    |
410 |                 append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue));
    |                                                      ^            ^
    |
help: remove these parentheses
    |
410 -                 append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue));
410 +                 append((append((v1_1[v9_1].clone()), matchValue_1)), (matchValue));
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:759:33
    |
759 |         let v4: string = append((v0_1.l0.get().clone()), (v1_1));
    |                                 ^                     ^
    |
help: remove these parentheses
    |
759 -         let v4: string = append((v0_1.l0.get().clone()), (v1_1));
759 +         let v4: string = append(v0_1.l0.get().clone(), (v1_1));
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:759:58
    |
759 |         let v4: string = append((v0_1.l0.get().clone()), (v1_1));
    |                                                          ^    ^
    |
help: remove these parentheses
    |
759 -         let v4: string = append((v0_1.l0.get().clone()), (v1_1));
759 +         let v4: string = append((v0_1.l0.get().clone()), v1_1);
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:858:13
    |
858 |             (append(
    |             ^
...
870 |             )),
    |              ^
    |
help: remove these parentheses
    |
858 ~             append(
859 |                 (append(
...
869 |                 string(" / "),
870 ~             ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:871:13
    |
871 |             (v254),
    |             ^    ^
    |
help: remove these parentheses
    |
871 -             (v254),
871 +             v254,
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:859:17
    |
859 |                 (append(
    |                 ^
...
868 |                 )),
    |                  ^
    |
help: remove these parentheses
    |
859 ~                 append(
860 |                     (append(
...
867 |                     string("crypto.hash_to_port"),
868 ~                 ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:860:21
    |
860 |                     (append(
    |                     ^
...
866 |                     )),
    |                      ^
    |
help: remove these parentheses
    |
860 ~                     append(
861 |                         (append(
...
865 |                         string(" "),
866 ~                     ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:861:25
    |
861 |                         (append(
    |                         ^
...
864 |                         )),
    |                          ^
    |
help: remove these parentheses
    |
861 ~                         append(
862 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
863 |                             (toString(v0_1.l0.get().clone())),
864 ~                         ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:862:29
    |
862 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                       ^                                                                 ^
    |
help: remove these parentheses
    |
862 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
862 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:863:29
    |
863 | ...                   (toString(v0_1.l0.get().clone())),
    |                       ^                               ^
    |
help: remove these parentheses
    |
863 -                             (toString(v0_1.l0.get().clone())),
863 +                             toString(v0_1.l0.get().clone()),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:862:37
    |
862 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                               ^                                         ^
    |
help: remove these parentheses
    |
862 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
862 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:862:45
    |
862 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                       ^                         ^
    |
help: remove these parentheses
    |
862 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
862 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:862:74
    |
862 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                                                    ^  ^
    |
help: remove these parentheses
    |
862 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
862 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:862:53
    |
862 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                               ^  ^
    |
help: remove these parentheses
    |
862 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
862 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:690:33
    |
690 |         let v4: string = append((v0.l0.get().clone()), (v1));
    |                                 ^                   ^
    |
help: remove these parentheses
    |
690 -         let v4: string = append((v0.l0.get().clone()), (v1));
690 +         let v4: string = append(v0.l0.get().clone(), (v1));
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:690:56
    |
690 |         let v4: string = append((v0.l0.get().clone()), (v1));
    |                                                        ^  ^
    |
help: remove these parentheses
    |
690 -         let v4: string = append((v0.l0.get().clone()), (v1));
690 +         let v4: string = append((v0.l0.get().clone()), v1);
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:777:13
    |
777 |             (append(
    |             ^
...
789 |             )),
    |              ^
    |
help: remove these parentheses
    |
777 ~             append(
778 |                 (append(
...
788 |                 string(" / "),
789 ~             ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:790:13
    |
790 |             (v219),
    |             ^    ^
    |
help: remove these parentheses
    |
790 -             (v219),
790 +             v219,
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:778:17
    |
778 |                 (append(
    |                 ^
...
787 |                 )),
    |                  ^
    |
help: remove these parentheses
    |
778 ~                 append(
779 |                     (append(
...
786 |                     string("common.retry_fn"),
787 ~                 ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:779:21
    |
779 |                     (append(
    |                     ^
...
785 |                     )),
    |                      ^
    |
help: remove these parentheses
    |
779 ~                     append(
780 |                         (append(
...
784 |                         string(" "),
785 ~                     ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:780:25
    |
780 |                         (append(
    |                         ^
...
783 |                         )),
    |                          ^
    |
help: remove these parentheses
    |
780 ~                         append(
781 |                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
782 |                             (toString(v0.l0.get().clone())),
783 ~                         ),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:781:29
    |
781 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                       ^                                                                 ^
    |
help: remove these parentheses
    |
781 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
781 +                             append((append((append((v6), string(" "))), (v7))), string(" #")),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:782:29
    |
782 | ...                   (toString(v0.l0.get().clone())),
    |                       ^                             ^
    |
help: remove these parentheses
    |
782 -                             (toString(v0.l0.get().clone())),
782 +                             toString(v0.l0.get().clone()),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:781:37
    |
781 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                               ^                                         ^
    |
help: remove these parentheses
    |
781 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
781 +                             (append(append((append((v6), string(" "))), (v7)), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:781:45
    |
781 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                       ^                         ^
    |
help: remove these parentheses
    |
781 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
781 +                             (append((append(append((v6), string(" ")), (v7))), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:781:74
    |
781 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                                                    ^  ^
    |
help: remove these parentheses
    |
781 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
781 +                             (append((append((append((v6), string(" "))), v7)), string(" #"))),
    |

warning: unnecessary parentheses around function argument
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:781:53
    |
781 | ...                   (append((append((append((v6), string(" "))), (v7))), string(" #"))),
    |                                               ^  ^
    |
help: remove these parentheses
    |
781 -                             (append((append((append((v6), string(" "))), (v7))), string(" #"))),
781 +                             (append((append((append(v6, string(" "))), (v7))), string(" #"))),
    |

warning: unnecessary parentheses around `break` value
   --> C:\home\git\spiral\deps\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:874:29
    |
874 |             break '_method8 ({
    |                             ^
...
911 |             });
    |              ^
    |
help: remove these parentheses
    |
874 ~             break '_method8 {
875 |                 let result: LrcPtr<MutCell<Common::US7>> = refCell(Common::US7::US7_1);
...
910 |                 }
911 ~             };
    |

warning: `plot` (lib) generated 379 warnings (run `cargo fix --lib -p plot` to apply 379 suggestions)
    Finished `release` profile [optimized] target(s) in 28.99s
polyglot/scripts/core.ps1/GetFullPath / Path: ../../deps/polyglot/lib/fsharp / Location: C:\home\git\spiral\lib\spiral / ResolvedLocation: C:\home\git\spiral\lib\spiral
polyglot/scripts/core.ps1/GetFullPath / FullPath: C:\home\git\spiral\deps\polyglot\lib\fsharp
00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "C:\home\git\spiral\lib\spiral/lustre.dib", "--retries", "3"])) }
00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/spiral/lib/spiral/lustre.dib", "--output-path", "c:/home/git/spiral/lib/spiral/lustre.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/spiral/lib/spiral/lustre.dib" --output-path "c:/home/git/spiral/lib/spiral/lustre.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ # lustre
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## lustre
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### attribute
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> nominal attribute t =
>     `(
>         backend_switch `(()) `({}) {
>             Gleam = (fun () => global "import lustre/internals/vdom") : () -> ()
>         }
>         $'' : $'vdom.Attribute(`t)'
>     )
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### element
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> nominal element t =
>     `(
>         backend_switch `(()) `({}) {
>             Gleam = (fun () => global "import lustre/element") : () -> ()
>         }
>         $'' : $'element.Element(`t)'
>     )
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### text
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl text forall t. (text : string) : element t =
>     global "import lustre/element/html"
>     $'element.text(!text)'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### on_click
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl on_click forall t. (msg : t) : attribute t =
>     global "import lustre/event"
>     $'event.on_click(!msg)'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### style
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl style forall t. (styles : list (string * string)) : attribute t =
>     global "import lustre/attribute"
>     inl styles = styles |> listm'.box
>     $'attribute.style(!styles)'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### div
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl div forall t. (attributes : list (attribute t)) (children : list (element 
> t)) : element t =
>     global "import lustre/element/html"
>     inl attributes = attributes |> listm'.box
>     inl children = children |> listm'.box
>     $'html.div(!attributes, !children)'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### p
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl p forall t. (attributes : list (attribute t)) (children : list (element t)) 
> : element t =
>     global "import lustre/element/html"
>     inl attributes = attributes |> listm'.box
>     inl children = children |> listm'.box
>     $'html.p(!attributes, !children)'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### button
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl button forall t. (attributes : list (attribute t)) (children : list (element
> t)) : element t =
>     global "import lustre/ui/button"
>     inl attributes = attributes |> listm'.box
>     inl children = children |> listm'.box
>     $'button.button(!attributes, !children)'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### centre
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl centre forall t. (attributes : list (attribute t)) (children : element t) : 
> element t =
>     global "import lustre/ui/centre"
>     inl attributes = attributes |> listm'.box
>     $'centre.centre(!attributes, !children)'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### app
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> nominal app model msg = $'lustre.App(`model, `model, `msg)'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### simple
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl simple forall model msg.
>     (init : model -> model)
>     (update : model * msg -> model)
>     (view : model -> element msg)
>     : app model msg
>     =
>     global "import lustre"
>     $'lustre.simple(!init, fn (a, b) { !update(#(a, b)) }, !view)'
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### start
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl start id app =
>     $'let assert Ok(_) = lustre.start(!app, !id, 0)' : ()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## counter
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### model
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> type model = int
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### init
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl init initial_count : model =
>     if initial_count < 0
>     then 0
>     else initial_count
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### msg
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> union msg =
>     | Incr
>     | Decr
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### update
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl update n (model, msg) =
>     match msg with
>     | Incr => model + n
>     | Decr => model - n
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### view
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl view model =
>     div [[
>         style [[
>             "display", "flex"
>         ]]
>     ]] [[
>         div [[
>             style [[
>                 "display", "flex"
>                 "flex-direction", "column"
>             ]]
>         ]] [[
>             button [[
>                 on_click Incr
>             ]] [[
>                 text "+"
>             ]]
>             p [[
>                 style [[
>                     "text-align", "center"
>                 ]]
>             ]] [[
>                 model |> sm'.obj_to_string |> text
>             ]]
>             button [[
>                 on_click Decr
>             ]] [[
>                 text "-"
>             ]]
>         ]]
>     ]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## tests
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> ///! gleam -t javascript -d lustre=\">=4.6.0\" lustre_ui=\"1.0.0-rc.1\" 
> gleam_json=\">=2.0.0\"
> 
> simple init (update 1) view
> |> start "#app_"
> 
> ── [ 2.36s - return value ] ────────────────────────────────────────────────────
> │ <!doctype html><html lang=en><meta charset=UTF-8><meta 
> content="width=device-width,initial-scale=1.0" name=viewport><style>@layer 
> reset{*,:after,:before{box-sizing:border-box;border:0 solid 
> #e2e8f0}:host,html{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;t
> ab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-ta
> p-highlight-color:transparent;line-height:1.5}body{line-height:inherit;margin:0}
> hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decorati
> on:underline 
> dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;t
> ext-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-featur
> e-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono
> -Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier 
> New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;
> font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}ta
> ble{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,opt
> group,select,textarea{font-feature-settings:inherit;font-variation-settings:inhe
> rit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;l
> etter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transf
> orm:none}button,input:where([type=button]),input:where([type=reset]),input:where
> ([type=submit]){-webkit-appearance:button;background-color:#0000;background-imag
> e:none}:-moz-focusring{outline:auto}:-moz...};this.#t=b,this.#o=c.handlers}#a(a=
> []){for(;this.#r.length>c;){let 
> b=this.#r.shift(),[c,d]=this.#s(this.#e,b);a=a.concat(d.all.toArray()),this.#e=c
> };for(;a.length>c;)a.shift()({dispatch:a=>this.send(new 
> c8(a)),emit:(a,b)=>this.root.dispatchEvent(new 
> CustomEvent(a,{detail:b,bubbles:!c,composed:!c})),select:()=>{},root:k});this.#r
> .length>c&&this.#a(a)}},cr=cq.start,cs=()=>f.window&&window.document;var 
> ct=class extends 
> a6{constructor(a,b,c,d){super(),this.init=a,this.update=b,this.view=c,this.on_at
> tribute_change=d}};var cu=class extends 
> a6{constructor(a){super(),this.selector=a}},cv=class extends a6{};var cG=class 
> extends a6{},cH=class extends a6{};cM()})()</script><link crossorigin 
> href=./spiral_af357c5889fb50be5320c0935afb88ca3c018962f0ac49180565a314cd5d9624-2
> cfcb692a30c7217.js rel=modulepreload><link as=fetch crossorigin 
> href=./spiral_af357c5889fb50be5320c0935afb88ca3c018962f0ac49180565a314cd5d9624-2
> cfcb692a30c7217_bg.wasm rel=preload type=application/wasm></head><body><div 
> id=app_af357c5889fb50be5320c0935afb88ca3c018962f0ac49180565a314cd5d9624></div><s
> cript type=module>import init, * as bindings from 
> './spiral_af357c5889fb50be5320c0935afb88ca3c018962f0ac49180565a314cd5d9624-2cfcb
> 692a30c7217.js';
> │ const wasm = await init({ module_or_path: 
> './spiral_af357c5889fb50be5320c0935afb88ca3c018962f0ac49180565a314cd5d9624-2cfcb
> 692a30c7217_bg.wasm' });
> │ 
> │ 
> │ window.wasmBindings = bindings;
> │ 
> │ 
> │ dispatchEvent(new CustomEvent("TrunkApplicationStarted", 
> {detail: {wasm}}));</script></body></html>
> │ 
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> ///! gleam -t javascript -d lustre=\">=4.6.0\" lustre_ui=\"1.0.0-rc.1\" 
> gleam_json=\">=2.0.0\"
> 
> simple init (update 2) view
> |> start "#app_"
> 
> ── [ 1.65s - return value ] ────────────────────────────────────────────────────
> │ <!doctype html><html lang=en><meta charset=UTF-8><meta 
> content="width=device-width,initial-scale=1.0" name=viewport><style>@layer 
> reset{*,:after,:before{box-sizing:border-box;border:0 solid 
> #e2e8f0}:host,html{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;t
> ab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-ta
> p-highlight-color:transparent;line-height:1.5}body{line-height:inherit;margin:0}
> hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decorati
> on:underline 
> dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;t
> ext-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-featur
> e-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono
> -Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier 
> New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;
> font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}ta
> ble{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,opt
> group,select,textarea{font-feature-settings:inherit;font-variation-settings:inhe
> rit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;l
> etter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transf
> orm:none}button,input:where([type=button]),input:where([type=reset]),input:where
> ([type=submit]){-webkit-appearance:button;background-color:#0000;background-imag
> e:none}:-moz-focusring{outline:auto}:-moz...};this.#t=b,this.#o=c.handlers}#a(a=
> []){for(;this.#r.length>c;){let 
> b=this.#r.shift(),[c,d]=this.#s(this.#e,b);a=a.concat(d.all.toArray()),this.#e=c
> };for(;a.length>c;)a.shift()({dispatch:a=>this.send(new 
> c8(a)),emit:(a,b)=>this.root.dispatchEvent(new 
> CustomEvent(a,{detail:b,bubbles:!c,composed:!c})),select:()=>{},root:k});this.#r
> .length>c&&this.#a(a)}},cr=cq.start,cs=()=>f.window&&window.document;var 
> ct=class extends 
> a6{constructor(a,b,c,d){super(),this.init=a,this.update=b,this.view=c,this.on_at
> tribute_change=d}};var cu=class extends 
> a6{constructor(a){super(),this.selector=a}},cv=class extends a6{};var cG=class 
> extends a6{},cH=class extends a6{};cM()})()</script><link crossorigin 
> href=./spiral_7693f2fdaa9b647abc2ffa8d280d4211248d047cf30fe6f051a053285637ab4d-c
> 61eeb2cbf922198.js rel=modulepreload><link as=fetch crossorigin 
> href=./spiral_7693f2fdaa9b647abc2ffa8d280d4211248d047cf30fe6f051a053285637ab4d-c
> 61eeb2cbf922198_bg.wasm rel=preload type=application/wasm></head><body><div 
> id=app_7693f2fdaa9b647abc2ffa8d280d4211248d047cf30fe6f051a053285637ab4d></div><s
> cript type=module>import init, * as bindings from 
> './spiral_7693f2fdaa9b647abc2ffa8d280d4211248d047cf30fe6f051a053285637ab4d-c61ee
> b2cbf922198.js';
> │ const wasm = await init({ module_or_path: 
> './spiral_7693f2fdaa9b647abc2ffa8d280d4211248d047cf30fe6f051a053285637ab4d-c61ee
> b2cbf922198_bg.wasm' });
> │ 
> │ 
> │ window.wasmBindings = bindings;
> │ 
> │ 
> │ dispatchEvent(new CustomEvent("TrunkApplicationStarted", 
> {detail: {wasm}}));</script></body></html>
> │ 
00:00:18 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 14080 }
00:00:18 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/spiral/lib/spiral/lustre.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/spiral/lib/spiral/lustre.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:20 v #5 ! [NbConvertApp] Converting notebook c:/home/git/spiral/lib/spiral/lustre.dib.ipynb to html
00:00:20 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:20 v #7 !   validate(nb)
00:00:20 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:20 v #9 !   return _pygments_highlight(
00:00:20 v #10 ! [NbConvertApp] Writing 393293 bytes to c:\home\git\spiral\lib\spiral\lustre.dib.html
00:00:21 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 850 }
00:00:21 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 850 }
00:00:21 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/spiral/lib/spiral/lustre.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/spiral/lib/spiral/lustre.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:21 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:00:21 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:00:21 d #16 spiral.run / dib / { exit_code = 0; result_length = 14989 }
00:00:00 d #1 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/physics.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/physics.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:59 d #2 runtime.execute_with_options_async / { exit_code = 0; output_length = 127996; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/physics.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:59 d #1 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/physics.dib --retries 3
00:00:59 d #3 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/parsing.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/parsing.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:02:02 d #4 runtime.execute_with_options_async / { exit_code = 0; output_length = 71133; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/parsing.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:02:02 d #2 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/parsing.dib --retries 3
00:02:02 d #5 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/sm'.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/sm'.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:03:36 d #6 runtime.execute_with_options_async / { exit_code = 0; output_length = 175062; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/sm'.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:03:36 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/sm'.dib --retries 3
00:03:36 d #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/rust/rust.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/rust/rust.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:04:12 d #8 runtime.execute_with_options_async / { exit_code = 0; output_length = 58995; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/rust/rust.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:04:12 d #4 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/rust/rust.dib --retries 3
00:04:12 d #9 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/rust/testing.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/rust/testing.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:06:02 d #10 runtime.execute_with_options_async / { exit_code = 0; output_length = 18660; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/rust/testing.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:06:02 d #5 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/rust/testing.dib --retries 3
00:06:02 d #11 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/rust/near.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/rust/near.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:06:21 d #12 runtime.execute_with_options_async / { exit_code = 0; output_length = 14781; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/rust/near.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:06:21 d #6 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/rust/near.dib --retries 3
00:06:21 d #13 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0
  "dib --path C:\home\git\spiral\lib\spiral/rust/near_workspaces.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/rust/near_workspaces.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:06:40 d #14 runtime.execute_with_options_async / { exit_code = 0; output_length = 17696; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/rust/near_workspaces.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:06:40 d #7 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/rust/near_workspaces.dib --retries 3
00:06:40 d #15 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/testing.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/testing.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:07:01 d #16 runtime.execute_with_options_async / { exit_code = 0; output_length = 26983; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/testing.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:07:01 d #8 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/testing.dib --retries 3
00:07:01 d #17 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/guid.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/guid.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:07:18 d #18 runtime.execute_with_options_async / { exit_code = 0; output_length = 9455; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/guid.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:07:18 d #9 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/guid.dib --retries 3
00:07:18 d #19 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/async.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/async.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:07:50 d #20 runtime.execute_with_options_async / { exit_code = 0; output_length = 36390; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/async.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:07:50 d #10 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/async.dib --retries 3
00:07:50 d #21 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/runtime.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/runtime.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:11:21 d #22 runtime.execute_with_options_async / { exit_code = 0; output_length = 100339; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/runtime.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:11:21 d #11 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/runtime.dib --retries 3
00:11:21 d #23 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/trace.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/trace.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:11:44 d #24 runtime.execute_with_options_async / { exit_code = 0; output_length = 23519; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/trace.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:11:44 d #12 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/trace.dib --retries 3
00:11:44 d #25 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/am'.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/am'.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:12:36 d #26 runtime.execute_with_options_async / { exit_code = 0; output_length = 49063; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/am'.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:12:36 d #13 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/am'.dib --retries 3
00:12:36 d #27 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/crypto.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/crypto.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:15:00 d #28 runtime.execute_with_options_async / { exit_code = 0; output_length = 26283; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/crypto.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:15:00 d #14 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/crypto.dib --retries 3
00:15:00 d #29 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/common.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/common.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:15:27 d #30 runtime.execute_with_options_async / { exit_code = 0; output_length = 17483; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/common.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:15:27 d #15 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/common.dib --retries 3
00:15:27 d #31 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/resultm.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/resultm.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:15:54 d #32 runtime.execute_with_options_async / { exit_code = 0; output_length = 23940; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/resultm.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:15:54 d #16 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/resultm.dib --retries 3
00:15:54 d #33 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/console.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/console.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:16:06 d #34 runtime.execute_with_options_async / { exit_code = 0; output_length = 6479; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/console.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:16:06 d #17 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/console.dib --retries 3
00:16:06 d #35 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/base.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/base.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:17:30 d #36 runtime.execute_with_options_async / { exit_code = 0; output_length = 170155; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/base.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:17:30 d #18 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/base.dib --retries 3
00:17:30 d #37 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/date_time.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/date_time.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:18:38 d #38 runtime.execute_with_options_async / { exit_code = 0; output_length = 62332; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/date_time.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:18:38 d #19 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/date_time.dib --retries 3
00:18:38 d #39 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/math.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/math.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:18:57 d #40 runtime.execute_with_options_async / { exit_code = 0; output_length = 12227; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/math.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:18:57 d #20 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/math.dib --retries 3
00:18:57 d #41 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/mapm.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/mapm.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:19:13 d #42 runtime.execute_with_options_async / { exit_code = 0; output_length = 10156; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/mapm.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:19:13 d #21 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/mapm.dib --retries 3
00:19:13 d #43 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/optionm'.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/optionm'.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:19:44 d #44 runtime.execute_with_options_async / { exit_code = 0; output_length = 22159; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/optionm'.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:19:44 d #22 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/optionm'.dib --retries 3
00:19:44 d #45 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/listm'.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/listm'.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:20:21 d #46 runtime.execute_with_options_async / { exit_code = 0; output_length = 173846; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/listm'.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:20:21 d #23 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/listm'.dib --retries 3
00:20:21 d #47 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/reflection.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/reflection.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:20:50 d #48 runtime.execute_with_options_async / { exit_code = 0; output_length = 23730; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/reflection.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:20:50 d #24 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/reflection.dib --retries 3
00:20:50 d #49 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/iter.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/iter.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:21:06 d #50 runtime.execute_with_options_async / { exit_code = 0; output_length = 9156; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/iter.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:21:06 d #25 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/iter.dib --retries 3
00:21:06 d #51 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/wasm.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/wasm.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:21:22 d #52 runtime.execute_with_options_async / { exit_code = 0; output_length = 10792; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/wasm.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:21:22 d #26 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/wasm.dib --retries 3
00:21:22 d #53 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/leptos/leptos.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/leptos/leptos.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:22:26 d #54 runtime.execute_with_options_async / { exit_code = 0; output_length = 94496; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/leptos/leptos.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:22:26 d #27 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/leptos/leptos.dib --retries 3
00:22:26 d #55 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/lustre.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/lustre.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:22:46 d #56 runtime.execute_with_options_async / { exit_code = 0; output_length = 18178; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/lustre.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:22:46 d #28 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/lustre.dib --retries 3
00:22:46 d #57 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/util.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/util.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:23:00 d #58 runtime.execute_with_options_async / { exit_code = 0; output_length = 6858; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/util.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:23:00 d #29 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/util.dib --retries 3
00:23:00 d #59 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/platform.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/platform.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:23:14 d #60 runtime.execute_with_options_async / { exit_code = 0; output_length = 7806; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/platform.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:23:14 d #30 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/platform.dib --retries 3
00:23:14 d #61 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/stream.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/stream.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:23:41 d #62 runtime.execute_with_options_async / { exit_code = 0; output_length = 27698; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/stream.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:23:41 d #31 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/stream.dib --retries 3
00:23:41 d #63 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/threading.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/threading.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:24:10 d #64 runtime.execute_with_options_async / { exit_code = 0; output_length = 28223; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/threading.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:24:10 d #32 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/threading.dib --retries 3
00:24:10 d #65 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/benchmark.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/benchmark.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:24:30 d #66 runtime.execute_with_options_async / { exit_code = 0; output_length = 22116; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/benchmark.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:24:30 d #33 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/benchmark.dib --retries 3
00:24:30 d #67 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/seq.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/seq.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:25:15 d #68 runtime.execute_with_options_async / { exit_code = 0; output_length = 40436; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/seq.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:25:15 d #34 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/seq.dib --retries 3
00:25:15 d #69 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/env.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/env.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:25:33 d #70 runtime.execute_with_options_async / { exit_code = 0; output_length = 10316; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/env.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:25:33 d #35 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/env.dib --retries 3
00:25:33 d #71 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/python.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/python.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:25:45 d #72 runtime.execute_with_options_async / { exit_code = 0; output_length = 5136; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/python.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:25:45 d #36 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/python.dib --retries 3
00:25:45 d #73 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/typescript.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/typescript.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:25:57 d #74 runtime.execute_with_options_async / { exit_code = 0; output_length = 5184; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/typescript.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:25:57 d #37 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/typescript.dib --retries 3
00:25:57 d #75 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/file_system.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/file_system.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:31:52 d #76 runtime.execute_with_options_async / { exit_code = 0; output_length = 99043; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/file_system.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:31:52 d #38 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/file_system.dib --retries 3
00:31:52 d #77 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path C:\home\git\spiral\lib\spiral/networking.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/networking.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:35:40 d #78 runtime.execute_with_options_async / { exit_code = 0; output_length = 30227; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/networking.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }
00:35:39 d #39 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path C:\home\git\spiral\lib\spiral/networking.dib --retries 3
00:00:00 d #1 writeDibCode / output: Spi / path: trace.dib
00:00:00 d #1 writeDibCode / output: Spi / path: testing.dib
00:00:00 d #1 writeDibCode / output: Spi / path: threading.dib
00:00:00 d #1 writeDibCode / output: Spi / path: crypto.dib
00:00:00 d #1 writeDibCode / output: Spi / path: async.dib
00:00:00 d #1 writeDibCode / output: Spi / path: networking.dib
00:00:00 d #1 writeDibCode / output: Spi / path: common.dib
00:00:00 d #1 writeDibCode / output: Spi / path: runtime.dib
00:00:00 d #2 parseDibCode / output: Spi / file: common.dib
00:00:00 d #4 parseDibCode / output: Spi / file: runtime.dib
00:00:00 d #5 parseDibCode / output: Spi / file: testing.dib
00:00:00 d #5 parseDibCode / output: Spi / file: threading.dib
00:00:00 d #7 parseDibCode / output: Spi / file: async.dib
00:00:00 d #2 parseDibCode / output: Spi / file: crypto.dib
00:00:00 d #8 parseDibCode / output: Spi / file: trace.dib
00:00:00 d #9 parseDibCode / output: Spi / file: networking.dib
00:00:00 d #10 writeDibCode / output: Spi / path: console.dib
00:00:00 d #10 writeDibCode / output: Spi / path: iter.dib
00:00:00 d #10 writeDibCode / output: Spi / path: parsing.dib
00:00:00 d #10 writeDibCode / output: Spi / path: base.dib
00:00:00 d #10 writeDibCode / output: Spi / path: resultm.dib
00:00:00 d #10 writeDibCode / output: Spi / path: date_time.dib
00:00:00 d #17 parseDibCode / output: Spi / file: iter.dib
00:00:00 d #18 parseDibCode / output: Spi / file: console.dib
00:00:00 d #19 parseDibCode / output: Spi / file: parsing.dib
00:00:00 d #20 parseDibCode / output: Spi / file: resultm.dib
00:00:00 d #12 writeDibCode / output: Spi / path: env.dib
00:00:00 d #21 parseDibCode / output: Spi / file: date_time.dib
00:00:00 d #22 parseDibCode / output: Spi / file: base.dib
00:00:00 d #23 parseDibCode / output: Spi / file: env.dib
00:00:00 d #24 writeDibCode / output: Spi / path: file_system.dib
00:00:00 d #25 parseDibCode / output: Spi / file: file_system.dib
00:00:00 d #26 writeDibCode / output: Spi / path: guid.dib
00:00:00 d #27 writeDibCode / output: Spi / path: math.dib
00:00:00 d #28 writeDibCode / output: Spi / path: mapm.dib
00:00:00 d #29 parseDibCode / output: Spi / file: guid.dib
00:00:00 d #30 parseDibCode / output: Spi / file: math.dib
00:00:00 d #31 parseDibCode / output: Spi / file: mapm.dib
00:00:00 d #32 writeDibCode / output: Spi / path: optionm'.dib
00:00:00 d #33 writeDibCode / output: Spi / path: am'.dib
00:00:00 d #34 parseDibCode / output: Spi / file: optionm'.dib
00:00:00 d #35 parseDibCode / output: Spi / file: am'.dib
00:00:00 d #36 writeDibCode / output: Spi / path: sm'.dib
00:00:00 d #37 parseDibCode / output: Spi / file: sm'.dib
00:00:00 d #38 writeDibCode / output: Spir / path: sm'.dib
00:00:00 d #39 writeDibCode / output: Spi / path: listm'.dib
00:00:00 d #40 writeDibCode / output: Spi / path: reflection.dib
00:00:00 d #41 parseDibCode / output: Spir / file: sm'.dib
00:00:00 d #42 parseDibCode / output: Spi / file: listm'.dib
00:00:00 d #43 parseDibCode / output: Spi / file: reflection.dib
00:00:00 d #44 writeDibCode / output: Spi / path: python.dib
00:00:00 d #44 writeDibCode / output: Spi / path: typescript.dib
00:00:00 d #46 parseDibCode / output: Spi / file: typescript.dib
00:00:00 d #47 parseDibCode / output: Spi / file: python.dib
00:00:00 d #48 writeDibCode / output: Spi / path: benchmark.dib
00:00:00 d #49 parseDibCode / output: Spi / file: benchmark.dib
00:00:00 d #50 writeDibCode / output: Spi / path: stream.dib
00:00:00 d #51 parseDibCode / output: Spi / file: stream.dib
00:00:00 d #52 writeDibCode / output: Spi / path: seq.dib
00:00:00 d #53 parseDibCode / output: Spi / file: seq.dib
00:00:00 d #54 writeDibCode / output: Spi / path: util.dib
00:00:00 d #55 parseDibCode / output: Spi / file: util.dib
00:00:00 d #56 writeDibCode / output: Spi / path: platform.dib
00:00:00 d #57 writeDibCode / output: Spi / path: rust/rust.dib
00:00:00 d #58 parseDibCode / output: Spi / file: platform.dib
00:00:00 d #59 writeDibCode / output: Spi / path: rust/testing.dib
00:00:00 d #60 parseDibCode / output: Spi / file: rust/rust.dib
00:00:00 d #61 parseDibCode / output: Spi / file: rust/testing.dib
00:00:00 d #62 writeDibCode / output: Spi / path: rust/near.dib
00:00:00 d #63 parseDibCode / output: Spi / file: rust/near.dib
00:00:00 d #64 writeDibCode / output: Spi / path: rust/near_workspaces.dib
00:00:00 d #65 writeDibCode / output: Spi / path: physics.dib
00:00:00 d #66 parseDibCode / output: Spi / file: physics.dib
00:00:00 d #67 parseDibCode / output: Spi / file: rust/near_workspaces.dib
00:00:00 d #68 writeDibCode / output: Spi / path: leptos/leptos.dib
00:00:00 d #69 writeDibCode / output: Spi / path: lustre.dib
00:00:00 d #70 writeDibCode / output: Spi / path: wasm.dib
00:00:00 d #71 parseDibCode / output: Spi / file: leptos/leptos.dib
00:00:00 d #72 parseDibCode / output: Spi / file: lustre.dib
00:00:00 d #73 parseDibCode / output: Spi / file: wasm.dib
spiral/lib/spiral/near/wallet/build.ps1 / ScriptDir: C:\home\git\spiral\lib\spiral\near\wallet / ResolvedScriptDir: C:\home\git\spiral\lib\spiral\near\wallet
00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "C:\home\git\spiral\lib\spiral\near\wallet/src/near_wallet.dib"])) }
00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/spiral/lib/spiral/near/wallet/src/near_wallet.dib", "--output-path", "c:/home/git/spiral/lib/spiral/near/wallet/src/near_wallet.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/spiral/lib/spiral/near/wallet/src/near_wallet.dib" --output-path "c:/home/git/spiral/lib/spiral/near/wallet/src/near_wallet.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ # near_wallet
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## near_wallet
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> open lustre
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### model
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> type model = int
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### init
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl init initial_count : model =
>     if initial_count < 0
>     then 0
>     else initial_count
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### msg
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> union msg =
>     | Incr
>     | Decr
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### update
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl update n (model, msg) =
>     match msg with
>     | Incr => model + n
>     | Decr => model - n
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### view
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl view model =
>     div [[
>         style [[
>             "display", "flex"
>         ]]
>     ]] [[
>         div [[
>             style [[
>                 "display", "flex"
>                 "flex-direction", "column"
>             ]]
>         ]] [[
>             button [[
>                 on_click Incr
>             ]] [[
>                 text "+"
>             ]]
>             p [[
>                 style [[
>                     "text-align", "center"
>                 ]]
>             ]] [[
>                 model |> sm'.obj_to_string |> text
>             ]]
>             button [[
>                 on_click Decr
>             ]] [[
>                 text "-"
>             ]]
>         ]]
>     ]]
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## tests
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> ///! gleam -t javascript -d lustre=\">=4.6.0\" lustre_ui=\"1.0.0-rc.1\" 
> gleam_json=\">=2.0.0\"
> 
> simple init (update 1) view
> |> start "#app_"
> 
> ── [ 4.01s - return value ] ────────────────────────────────────────────────────
> │ <!doctype html><html lang=en><meta charset=UTF-8><meta 
> content="width=device-width,initial-scale=1.0" name=viewport><style>@layer 
> reset{*,:after,:before{box-sizing:border-box;border:0 solid 
> #e2e8f0}:host,html{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;t
> ab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-ta
> p-highlight-color:transparent;line-height:1.5}body{line-height:inherit;margin:0}
> hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decorati
> on:underline 
> dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;t
> ext-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-featur
> e-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono
> -Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier 
> New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;
> font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}ta
> ble{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,opt
> group,select,textarea{font-feature-settings:inherit;font-variation-settings:inhe
> rit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;l
> etter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transf
> orm:none}button,input:where([type=button]),input:where([type=reset]),input:where
> ([type=submit]){-webkit-appearance:button;background-color:#0000;background-imag
> e:none}:-moz-focusring{outline:auto}:-moz...};this.#t=b,this.#o=c.handlers}#a(a=
> []){for(;this.#r.length>c;){let 
> b=this.#r.shift(),[c,d]=this.#s(this.#e,b);a=a.concat(d.all.toArray()),this.#e=c
> };for(;a.length>c;)a.shift()({dispatch:a=>this.send(new 
> c8(a)),emit:(a,b)=>this.root.dispatchEvent(new 
> CustomEvent(a,{detail:b,bubbles:!c,composed:!c})),select:()=>{},root:k});this.#r
> .length>c&&this.#a(a)}},cr=cq.start,cs=()=>f.window&&window.document;var 
> ct=class extends 
> a6{constructor(a,b,c,d){super(),this.init=a,this.update=b,this.view=c,this.on_at
> tribute_change=d}};var cu=class extends 
> a6{constructor(a){super(),this.selector=a}},cv=class extends a6{};var cG=class 
> extends a6{},cH=class extends a6{};cM()})()</script><link crossorigin 
> href=./spiral_af357c5889fb50be5320c0935afb88ca3c018962f0ac49180565a314cd5d9624-2
> cfcb692a30c7217.js rel=modulepreload><link as=fetch crossorigin 
> href=./spiral_af357c5889fb50be5320c0935afb88ca3c018962f0ac49180565a314cd5d9624-2
> cfcb692a30c7217_bg.wasm rel=preload type=application/wasm></head><body><div 
> id=app_af357c5889fb50be5320c0935afb88ca3c018962f0ac49180565a314cd5d9624></div><s
> cript type=module>import init, * as bindings from 
> './spiral_af357c5889fb50be5320c0935afb88ca3c018962f0ac49180565a314cd5d9624-2cfcb
> 692a30c7217.js';
> │ const wasm = await init({ module_or_path: 
> './spiral_af357c5889fb50be5320c0935afb88ca3c018962f0ac49180565a314cd5d9624-2cfcb
> 692a30c7217_bg.wasm' });
> │ 
> │ 
> │ window.wasmBindings = bindings;
> │ 
> │ 
> │ dispatchEvent(new CustomEvent("TrunkApplicationStarted", 
> {detail: {wasm}}));</script></body></html>
> │ 
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> ///! gleam -t javascript -d lustre=\">=4.6.0\" lustre_ui=\"1.0.0-rc.1\" 
> gleam_json=\">=2.0.0\"
> 
> simple init (update 2) view
> |> start "#app_"
> 
> ── [ 3.14s - return value ] ────────────────────────────────────────────────────
> │ <!doctype html><html lang=en><meta charset=UTF-8><meta 
> content="width=device-width,initial-scale=1.0" name=viewport><style>@layer 
> reset{*,:after,:before{box-sizing:border-box;border:0 solid 
> #e2e8f0}:host,html{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;t
> ab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-ta
> p-highlight-color:transparent;line-height:1.5}body{line-height:inherit;margin:0}
> hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decorati
> on:underline 
> dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;t
> ext-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-featur
> e-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono
> -Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier 
> New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;
> font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}ta
> ble{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,opt
> group,select,textarea{font-feature-settings:inherit;font-variation-settings:inhe
> rit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;l
> etter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transf
> orm:none}button,input:where([type=button]),input:where([type=reset]),input:where
> ([type=submit]){-webkit-appearance:button;background-color:#0000;background-imag
> e:none}:-moz-focusring{outline:auto}:-moz...};this.#t=b,this.#o=c.handlers}#a(a=
> []){for(;this.#r.length>c;){let 
> b=this.#r.shift(),[c,d]=this.#s(this.#e,b);a=a.concat(d.all.toArray()),this.#e=c
> };for(;a.length>c;)a.shift()({dispatch:a=>this.send(new 
> c8(a)),emit:(a,b)=>this.root.dispatchEvent(new 
> CustomEvent(a,{detail:b,bubbles:!c,composed:!c})),select:()=>{},root:k});this.#r
> .length>c&&this.#a(a)}},cr=cq.start,cs=()=>f.window&&window.document;var 
> ct=class extends 
> a6{constructor(a,b,c,d){super(),this.init=a,this.update=b,this.view=c,this.on_at
> tribute_change=d}};var cu=class extends 
> a6{constructor(a){super(),this.selector=a}},cv=class extends a6{};var cG=class 
> extends a6{},cH=class extends a6{};cM()})()</script><link crossorigin 
> href=./spiral_7693f2fdaa9b647abc2ffa8d280d4211248d047cf30fe6f051a053285637ab4d-c
> 61eeb2cbf922198.js rel=modulepreload><link as=fetch crossorigin 
> href=./spiral_7693f2fdaa9b647abc2ffa8d280d4211248d047cf30fe6f051a053285637ab4d-c
> 61eeb2cbf922198_bg.wasm rel=preload type=application/wasm></head><body><div 
> id=app_7693f2fdaa9b647abc2ffa8d280d4211248d047cf30fe6f051a053285637ab4d></div><s
> cript type=module>import init, * as bindings from 
> './spiral_7693f2fdaa9b647abc2ffa8d280d4211248d047cf30fe6f051a053285637ab4d-c61ee
> b2cbf922198.js';
> │ const wasm = await init({ module_or_path: 
> './spiral_7693f2fdaa9b647abc2ffa8d280d4211248d047cf30fe6f051a053285637ab4d-c61ee
> b2cbf922198_bg.wasm' });
> │ 
> │ 
> │ window.wasmBindings = bindings;
> │ 
> │ 
> │ dispatchEvent(new CustomEvent("TrunkApplicationStarted", 
> {detail: {wasm}}));</script></body></html>
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## main
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> ///! _
> 
> inl main' (n : int) =
>     simple init (update 1) view
>     |> start "#app_"
> 
> inl main () =
>     $'!main' (0)' : ()
00:00:18 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 9800 }
00:00:18 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/spiral/lib/spiral/near/wallet/src/near_wallet.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/spiral/lib/spiral/near/wallet/src/near_wallet.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:19 v #5 ! [NbConvertApp] Converting notebook c:/home/git/spiral/lib/spiral/near/wallet/src/near_wallet.dib.ipynb to html
00:00:19 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:19 v #7 !   validate(nb)
00:00:20 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:20 v #9 !   return _pygments_highlight(
00:00:20 v #10 ! [NbConvertApp] Writing 372413 bytes to c:\home\git\spiral\lib\spiral\near\wallet\src\near_wallet.dib.html
00:00:20 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 892 }
00:00:20 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 892 }
00:00:20 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/spiral/lib/spiral/near/wallet/src/near_wallet.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/spiral/lib/spiral/near/wallet/src/near_wallet.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:21 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:00:21 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:00:21 d #16 spiral.run / dib / { exit_code = 0; result_length = 10751 }
00:00:00 d #1 writeDibCode / output: Spi / path: src/near_wallet.dib
00:00:00 d #2 parseDibCode / output: Spi / file: src/near_wallet.dib
bun install v1.2.7 (5c0fa6dc)
Resolving dependencies
Resolved, downloaded and extracted [4]

+ npm-check-updates@17.1.16

1 package installed [1500.00ms]
spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\home\git\polyglot\target\Builder\near_wallet
warning: Unused imported module
  ┌─ C:\home\git\spiral\lib\spiral\near\wallet\src\near_wallet.gleam:1:1
  │
1 │ import lustre/internals/vdom
  │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This imported module is never used

Hint: You can safely remove it.

warning: Unused variable
   ┌─ C:\home\git\spiral\lib\spiral\near\wallet\src\near_wallet.gleam:95:78
   │
95 │ pub fn closure0 () -> fn(_) -> fn(Nil) -> Nil   { fn(x : #( Int)) { let #(   v0) = x
   │                                                                              ^^ This variable is never used

Hint: You can ignore it with an underscore: `_v0`.

   Compiled in 0.24s

  dist\near_wallet.js  25.9kb

⚡ Done in 35ms
2025-03-29T09:32:25.925920Z  INFO 🚀 Starting trunk 0.21.9
2025-03-29T09:32:25.931520Z  INFO ⏫ Found an update of trunk: 0.21.9 -> 0.21.12
2025-03-29T09:32:31.682650Z  INFO 📦 starting build
warning: C:\home\git\spiral\lib\spiral\near\wallet\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\spiral\workspace\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\spiral\apps\wasm\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\spiral\apps\spiral\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
   Compiling near_wallet v0.0.1 (C:\home\git\spiral\lib\spiral\near\wallet)
    Finished `release` profile [optimized] target(s) in 0.33s
2025-03-29T09:32:33.069149Z  INFO applying new distribution
2025-03-29T09:32:33.071113Z  INFO ✅ success

# Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: C:\home\git\spiral\lib\spiral\near\wallet / $OnError: Continue / $exitcode: -1 / $Error: 'Cannot find path 'C:\home\git\spiral\lib\spiral\near\wallet\public' because it does not exist.' / $ScriptBlock:
'Copy-Item ./public/* ./dist -Recurse -Force'

$ playwright test

Running 1 test using 1 worker

[1/1] [Desktop Chrome] › test.spec.ts:3:5 › test
  1 passed (14.9s)

To open last HTML report run:

  npx playwright show-report

spiral/lib/spiral/near/wallet/build.ps1 / $targetDir = C:\home\git\polyglot\target\Builder\near_wallet / $projectName: near_wallet / $env:CI:''
00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "build.dib"])) }
00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/scripts/build.dib", "--output-path", "c:/home/git/polyglot/scripts/build.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/scripts/build.dib" --output-path "c:/home/git/polyglot/scripts/build.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> . ./nbs_header.ps1
> . ./core.ps1
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> { pwsh ../apps/builder/build.ps1 } | Invoke-Block
> 
> ── [ 1.59m - stdout ] ──────────────────────────────────────────────────────────
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ # DibParser (Polyglot)
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ #r 
> │ 
> @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
> │ dard2.1/FSharp.Control.AsyncSeq.dll"
> │ #r 
> │ 
> @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
> │ 0/System.Reactive.dll"
> │ #r 
> │ 
> @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
> │ netstandard2.0/System.Reactive.Linq.dll"
> │ #r 
> │ 
> @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll"
> │ #r 
> │ 
> @"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
> │ arsec.dll"
> │ #r 
> │ 
> @"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
> │ arsecCS.dll"
> │ 
> │ ── pwsh 
> ────────────────────────────────────────────────────────────────────────
> │ ls ~/.nuget/packages/argu
> │ 
> │ ── [ 445.01ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ │ 
> │ │     Directory: 
> C:\Users\i574n\.nuget\packages\argu
> │ │ 
> │ │ Mode                 
> LastWriteTime 
> │ Length Name
> │ │ ----                 
> ------------- 
> │ ------ ----
> │ │ d----          2023-05-17  3:38 PM│ 6.1.1
> │ │ d----          2024-03-12  8:22 PM│ 6.1.4
> │ │ d----          2024-01-29  5:12 PM│ 6.1.5
> │ │ d----          2024-03-12  8:20 PM│ 6.2.0
> │ │ d----          2024-02-23  6:50 PM│ 6.2.1
> │ │ d----          2024-03-12  8:15 PM│ 6.2.2
> │ │ d----          2024-05-14  8:20 PM│ 6.2.3
> │ │ d----          2024-06-06  7:37 PM│ 6.2.4
> │ │ d----          2024-12-08 11:22 AM│ 6.2.5
> │ │ 
> │ │ 
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ #if !INTERACTIVE
> │ open Lib
> │ #endif
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ open Common
> │ open FParsec
> │ open SpiralFileSystem.Operators
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ ## escapeCell (test)
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ let inline escapeCell input =
> │     input
> │     |> SpiralSm.split "\n"
> │     |> Array.map (function
> │         | line when line |> SpiralSm.starts_with "\\#!" || 
> line |> 
> │ SpiralSm.starts_with "\\#r" ->
> │             System.Text.RegularExpressions.Regex.Replace 
> (line, "^\\\\#", "#")
> │         | line -> line
> │     )
> │     |> SpiralSm.concat "\n"
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ $"a{nl}\\#!magic{nl}b{nl}"
> │ |> escapeCell
> │ |> _assertEqual (
> │     $"a{nl}#!magic{nl}b{nl}"
> │ )
> │ 
> │ ── [ 46.99ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ │ "a
> │ │ #!magic
> │ │ b
> │ │ "
> │ │ 
> │ │ 
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ ## magicMarker
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ let magicMarker : Parser<string, unit> = pstring "#!"
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ "#!magic"
> │ |> run magicMarker
> │ |> _assertEqual (
> │     Success ("#!", (), Position ("", 2, 1, 3))
> │ )
> │ 
> │ ── [ 32.19ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ │ Success: "#!"
> │ │ 
> │ │ 
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ "##!magic"
> │ |> run magicMarker
> │ |> _assertEqual (
> │     Failure (
> │         $"Error in Ln: 1 Col: 
> 1{nl}##!magic{nl}^{nl}Expecting: '#!'{nl}",
> │         ParserError (
> │             Position ("", 0, 1, 1),
> │             (),
> │             ErrorMessageList (ExpectedString "#!")
> │         ),
> │         ()
> │     )
> │ )
> │ 
> │ ── [ 29.37ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ │ Failure:
> │ │ Error in Ln: 1 Col: 1
> │ │ ##!magic
> │ │ ^
> │ │ Expecting: '#!'
> │ │ 
> │ │ 
> │ │ 
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ ## magicCommand
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ let magicCommand =
> │     magicMarker
> │     >>. manyTill anyChar newline
> │     |>> (System.String.Concat >> SpiralSm.trim)
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ "#!magic
> │ 
> │ a"
> │ |> run magicCommand
> │ |> _assertEqual (
> │     Success ("magic", (), Position ("", 8, 2, 1))
> │ )
> │ 
> │ ── [ 20.48ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ │ Success: "magic"
> │ │ 
> │ │ 
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ " #!magic
> │ 
> │ a"
> │ |> run magicCommand
> │ |> _assertEqual (
> │     Failure (
> │         $"Error in Ln: 1 Col: 1{nl} 
> #!magic{nl}^{nl}Expecting: '#!'{nl}",
> │         ParserError (
> │             Position ("", 0, 1, 1),
> │             (),
> │             ErrorMessageList (ExpectedString "#!")
> │         ),
> │         ()
> │     )
> │ )
> │ 
> │ ── [ 19.40ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ │ Failure:
> │ │ Error in Ln: 1 Col: 1
> │ │  #!magic
> │ │ ^
> │ │ Expecting: '#!'
> │ │ 
> │ │ 
> │ │ 
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ ## content
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ let content =
> │     (newline >>. magicMarker) <|> (eof >>. preturn "")
> │     |> attempt
> │     |> lookAhead
> │     |> manyTill anyChar
> │     |>> (System.String.Concat >> SpiralSm.trim)
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ "#!magic
> │ 
> │ 
> │ a
> │ 
> │ 
> │ "
> │ |> run content
> │ |> _assertEqual (
> │     Success ("#!magic
> │ 
> │ 
> │ a", (), Position ("", 14, 7, 1))
> │ )
> │ 
> │ ── [ 18.92ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ │ Success: "#!magic
> │ │ 
> │ │ 
> │ │ a"
> │ │ 
> │ │ 
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ ## Output
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ type Output =
> │     | Fs
> │     | Md
> │     | Spi
> │     | Spir
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ ## Magic
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ type Magic =
> │     | Fsharp
> │     | Markdown
> │     | Spiral of Output
> │     | Magic of string
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ ## kernelOutputs
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ let inline kernelOutputs magic =
> │     match magic with
> │     | Fsharp -> [[ Fs ]]
> │     | Markdown -> [[ Md ]]
> │     | Spiral output -> [[ output ]]
> │     | _ -> [[]]
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ ## Block
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ type Block =
> │     {
> │         magic : Magic
> │         content : string
> │     }
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ ## block
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ let block =
> │     pipe2
> │         magicCommand
> │         content
> │         (fun magic content ->
> │             let magic, content =
> │                 match magic with
> │                 | "fsharp" -> Fsharp, content
> │                 | "markdown" -> Markdown, content
> │                 | "spiral" ->
> │                     let output = if content |> 
> SpiralSm.contains "//// real\n" 
> │ then Spir else Spi
> │                     let content =
> │                         if output = Spi
> │                         then content
> │                         else
> │                             content
> │                             |> SpiralSm.replace "//// 
> real\n\n" ""
> │                             |> SpiralSm.replace "//// real\n"
> ""
> │                     Spiral output, content
> │                 | magic -> magic |> Magic, content
> │             {
> │                 magic = magic
> │                 content = content
> │             })
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ "#!magic
> │ 
> │ 
> │ a
> │ 
> │ 
> │ "
> │ |> run block
> │ |> _assertEqual (
> │     Success (
> │         { magic = Magic "magic"; content = "a" },
> │         (),
> │         Position ("", 14, 7, 1)
> │     )
> │ )
> │ 
> │ ── [ 47.80ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ │ Success: { magic = Magic "magic"
> │ │   content = "a" }
> │ │ 
> │ │ 
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ ## blocks
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ let blocks =
> │     skipMany newline
> │     >>. sepEndBy block (skipMany1 newline)
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ 
> │ "#!magic1
> │ 
> │ a
> │ 
> │ \#!magic2
> │ 
> │ b
> │ 
> │ "
> │ |> escapeCell
> │ |> run blocks
> │ |> _assertEqual (
> │     Success (
> │         [[
> │             { magic = Magic "magic1"; content = "a" }
> │             { magic = Magic "magic2"; content = "b" }
> │         ]],
> │         (),
> │         Position ("", 26, 9, 1)
> │     )
> │ )
> │ 
> │ ── [ 39.29ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ │ Success: [{ magic = Magic "magic1"
> │ │    content = "a" }; { magic = Magic 
> "magic2"
> │ │                       content = "b" }]
> │ │ 
> │ │ 
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ ## formatBlock
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ let inline formatBlock output (block : Block) =
> │     match output, block with
> │     | output, { magic = Markdown; content = content } ->
> │         let markdownComment =
> │             match output with
> │             | Spi | Spir -> "/// "
> │             | Fs -> "/// "
> │             | _ -> ""
> │         content
> │         |> SpiralSm.split "\n"
> │         |> Array.map (SpiralSm.trim_end [[||]])
> │         |> Array.filter (SpiralSm.ends_with " (test)" >> not)
> │         |> Array.map (function
> │             | "" -> markdownComment
> │             | line -> 
> System.Text.RegularExpressions.Regex.Replace (line, 
> │ "^\\s*", $"$&{markdownComment}")
> │         )
> │         |> SpiralSm.concat "\n"
> │     | Fs, { magic = Fsharp; content = content } ->
> │         let trimmedContent = content |> SpiralSm.trim
> │         if trimmedContent |> SpiralSm.contains "//// test\n"
> │             || trimmedContent |> SpiralSm.contains "//// 
> ignore\n"
> │         then ""
> │         else
> │             content
> │             |> SpiralSm.split "\n"
> │             |> Array.filter (SpiralSm.trim_start [[||]] >> 
> SpiralSm.starts_with 
> │ "#r" >> not)
> │             |> SpiralSm.concat "\n"
> │     | (Spi | Spir), { magic = Spiral output'; content = 
> content } when output' =
> │ output ->
> │         let trimmedContent = content |> SpiralSm.trim
> │         if trimmedContent |> SpiralSm.contains "//// test\n"
> │             || trimmedContent |> SpiralSm.contains "//// 
> ignore\n"
> │         then ""
> │         else content
> │     | _ -> ""
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ "#!markdown
> │ 
> │ 
> │ a
> │ 
> │     b
> │ 
> │ c
> │ 
> │ 
> │ \#!markdown
> │ 
> │ 
> │ c
> │ 
> │ 
> │ \#!fsharp
> │ 
> │ 
> │ let a = 1"
> │ |> escapeCell
> │ |> run block
> │ |> function
> │     | Success (block, _, _) -> formatBlock Fs block
> │     | Failure (msg, _, _) -> failwith msg
> │ |> _assertEqual "/// a
> │ /// 
> │     /// b
> │ /// 
> │ /// c"
> │ 
> │ ── [ 43.20ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ │ "/// a
> │ │ /// 
> │ │     /// b
> │ │ /// 
> │ │ /// c"
> │ │ 
> │ │ 
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ ## formatBlocks
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ let inline formatBlocks output blocks =
> │     blocks
> │     |> List.map (fun block ->
> │         block, formatBlock output block
> │     )
> │     |> List.filter (snd >> (<>) "")
> │     |> fun list ->
> │         (list, (None, [[]]))
> │         ||> List.foldBack (fun (block, content) (lastMagic, 
> acc) ->
> │             let lineBreak =
> │                 if block.magic = Markdown && lastMagic <> 
> Some Markdown && 
> │ lastMagic <> None
> │                 then ""
> │                 else "\n"
> │             Some block.magic, $"{content}{lineBreak}" :: acc
> │         )
> │     |> snd
> │     |> SpiralSm.concat "\n"
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ "#!markdown
> │ 
> │ 
> │ a
> │ 
> │ b
> │ 
> │ 
> │ \#!markdown
> │ 
> │ 
> │ c
> │ 
> │ 
> │ \#!fsharp
> │ 
> │ 
> │ let a = 1
> │ 
> │ \#!markdown
> │ 
> │ d (test)
> │ 
> │ \#!fsharp
> │ 
> │ //// test
> │ 
> │ let a = 2
> │ 
> │ \#!markdown
> │ 
> │ e
> │ 
> │ \#!fsharp
> │ 
> │ let a = 3"
> │ |> escapeCell
> │ |> run blocks
> │ |> function
> │     | Success (blocks, _, _) -> formatBlocks Fs blocks
> │     | Failure (msg, _, _) -> failwith msg
> │ |> _assertEqual "/// a
> │ /// 
> │ /// b
> │ 
> │ /// c
> │ let a = 1
> │ 
> │ /// e
> │ let a = 3
> │ "
> │ 
> │ ── [ 60.15ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ │ "/// a
> │ │ /// 
> │ │ /// b
> │ │ 
> │ │ /// c
> │ │ let a = 1
> │ │ 
> │ │ /// e
> │ │ let a = 3
> │ │ "
> │ │ 
> │ │ 
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ ## parse
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ let inline parse output input =
> │     match run blocks input with
> │     | Success (blocks, _, _) ->
> │         let blocks =
> │             blocks
> │             |> List.filter (fun block ->
> │                 block.magic |> kernelOutputs |> List.contains
> output || 
> │ block.magic = Markdown
> │             )
> │ 
> │         match blocks with
> │         | { magic = Markdown; content = content } :: _
> │             when output = Fs
> │             && content |> SpiralSm.starts_with "# "
> │             && content |> SpiralSm.ends_with ")"
> │             ->
> │             let inline indentBlock (block : Block) =
> │                 { block with
> │                     content =
> │                         block.content
> │                         |> SpiralSm.split "\n"
> │                         |> Array.fold
> │                             (fun (lines, isMultiline) line ->
> │                                 let trimmedLine = line |> 
> SpiralSm.trim
> │                                 if trimmedLine = ""
> │                                 then "" :: lines, isMultiline
> │                                 else
> │                                     let inline 
> singleQuoteLine () =
> │                                         trimmedLine |> 
> Seq.sumBy ((=) '"' >> 
> │ System.Convert.ToInt32) = 1
> │                                         && trimmedLine |> 
> SpiralSm.contains 
> │ @"'""'" |> not
> │                                         && trimmedLine |> 
> SpiralSm.ends_with "{"
> │ |> not
> │                                         && trimmedLine |> 
> SpiralSm.ends_with 
> │ "{|" |> not
> │                                         && trimmedLine |> 
> SpiralSm.starts_with 
> │ "}" |> not
> │                                         && trimmedLine |> 
> SpiralSm.starts_with 
> │ "|}" |> not
> │ 
> │                                     match isMultiline, 
> trimmedLine |> 
> │ SpiralSm.split_string [[| $"{q}{q}{q}" |]] with
> │                                     | false, [[| _; _ |]] ->
> │                                         $"    {line}" :: 
> lines, true
> │ 
> │                                     | true, [[| _; _ |]] ->
> │                                         line :: lines, false
> │ 
> │                                     | false, _ when 
> singleQuoteLine () ->
> │                                         $"    {line}" :: 
> lines, true
> │ 
> │                                     | false, _ when line |> 
> SpiralSm.starts_with
> │ "#" && block.magic = Fsharp ->
> │                                         line :: lines, false
> │ 
> │                                     | false, _ ->
> │                                         $"    {line}" :: 
> lines, false
> │ 
> │                                     | true, _ when 
> singleQuoteLine () && line |>
> │ SpiralSm.starts_with "    " ->
> │                                         $"    {line}" :: 
> lines, false
> │ 
> │                                     | true, _ when 
> singleQuoteLine () ->
> │                                         line :: lines, false
> │ 
> │                                     | true, _ ->
> │                                         line :: lines, true
> │                             )
> │                             ([[]], false)
> │                         |> fst
> │                         |> List.rev
> │                         |> SpiralSm.concat "\n"
> │                 }
> │ 
> │             let moduleName, namespaceName =
> │                 System.Text.RegularExpressions.Regex.Match 
> (content, @"# (.*) 
> │ \((.*)\)$")
> │                 |> fun m -> m.Groups.[[1]].Value, 
> m.Groups.[[2]].Value
> │ 
> │             let moduleBlock =
> │                 {
> │                     magic = Fsharp
> │                     content =
> │                         $"#if !INTERACTIVE
> │ namespace {namespaceName}
> │ #endif
> │ 
> │ module {moduleName} ="
> │                 }
> │ 
> │             blocks
> │             |> List.indexed
> │             |> List.fold
> │                 (fun blocks (index, block) ->
> │                     match index with
> │                     | 0 -> blocks
> │                     | 1 -> indentBlock block :: moduleBlock 
> :: blocks
> │                     | _ -> indentBlock block :: blocks
> │                 )
> │                 [[]]
> │             |> List.rev
> │         | _ -> blocks
> │         |> Result.Ok
> │     | Failure (errorMsg, _, _) -> Result.Error errorMsg
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ let example1 =
> │     $"""#!meta
> │ 
> │ 
> {{"kernelInfo":{{"defaultKernelName":"fsharp","items":[[{{"aliases":[[]],"name":
> │ "fsharp"}},{{"aliases":[[]],"name":"fsharp"}}]]}}}}
> │ 
> │ \#!markdown
> │ 
> │ # TestModule (TestNamespace)
> │ 
> │ \#!fsharp
> │ 
> │ \#!import file.dib
> │ 
> │ \#!fsharp
> │ 
> │ \#r "nuget:Expecto"
> │ 
> │ \#!markdown
> │ 
> │ ## ParserLibrary
> │ 
> │ \#!fsharp
> │ 
> │ open System
> │ 
> │ \#!markdown
> │ 
> │ ## x (test)
> │ 
> │ \#!fsharp
> │ 
> │ //// ignore
> │ 
> │ let x = 1
> │ 
> │ \#!spiral
> │ 
> │ //// test
> │ 
> │ inl x = 1i32
> │ 
> │ \#!spiral
> │ 
> │ //// real
> │ 
> │ inl x = 2i32
> │ 
> │ \#!spiral
> │ 
> │ inl x = 3i32
> │ 
> │ \#!markdown
> │ 
> │ ### TextInput
> │ 
> │ \#!fsharp
> │ 
> │ let str1 = "abc
> │ def"
> │ 
> │ let str2 =
> │     "abc\
> │ def"
> │ 
> │ let str3 =
> │     $"1{{
> │         1
> │     }}1"
> │ 
> │ let str4 =
> │     $"1{{({{|
> │         a = 1
> │     |}}).a}}1"
> │ 
> │ let str5 =
> │     "abc \
> │         def"
> │ 
> │ let x =
> │     match '"' with
> │     | '"' -> true
> │     | _ -> false
> │ 
> │ let long1 = {q}{q}{q}a{q}{q}{q}
> │ 
> │ let long2 =
> │     {q}{q}{q}
> │ a
> │ {q}{q}{q}
> │ 
> │ \#!fsharp
> │ 
> │ type Position =
> │     {{
> │ #if INTERACTIVE
> │         line : string
> │ #else
> │         line : int
> │ #endif
> │         column : int
> │     }}"""
> │     |> escapeCell
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ example1
> │ |> parse Fs
> │ |> Result.toOption
> │ |> Option.get
> │ |> (formatBlocks Fs)
> │ |> _assertEqual $"""#if !INTERACTIVE
> │ namespace TestNamespace
> │ #endif
> │ 
> │ module TestModule =
> │ 
> │     /// ## ParserLibrary
> │     open System
> │ 
> │     /// ### TextInput
> │     let str1 = "abc
> │ def"
> │ 
> │     let str2 =
> │         "abc\
> │ def"
> │ 
> │     let str3 =
> │         $"1{{
> │             1
> │         }}1"
> │ 
> │     let str4 =
> │         $"1{{({{|
> │             a = 1
> │         |}}).a}}1"
> │ 
> │     let str5 =
> │         "abc \
> │             def"
> │ 
> │     let x =
> │         match '"' with
> │         | '"' -> true
> │         | _ -> false
> │ 
> │     let long1 = {q}{q}{q}a{q}{q}{q}
> │ 
> │     let long2 =
> │         {q}{q}{q}
> │ a
> │ {q}{q}{q}
> │ 
> │     type Position =
> │         {{
> │ #if INTERACTIVE
> │             line : string
> │ #else
> │             line : int
> │ #endif
> │             column : int
> │         }}
> │ """
> │ 
> │ ── [ 138.39ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ │ "#if !INTERACTIVE
> │ │ namespace TestNamespace
> │ │ #endif
> │ │ 
> │ │ module TestModule =
> │ │ 
> │ │     /// ## ParserLibrary
> │ │     open System
> │ │ 
> │ │     /// ### TextInput
> │ │     let str1 = "abc
> │ │ def"
> │ │ 
> │ │     let str2 =
> │ │         "abc\
> │ │ def"
> │ │ 
> │ │     let str3 =
> │ │         $"1{
> │ │             1
> │ │         }1"
> │ │ 
> │ │     let str4 =
> │ │         $"1{({|
> │ │             a = 1
> │ │         |}).a}1"
> │ │ 
> │ │     let str5 =
> │ │         "abc \
> │ │             def"
> │ │ 
> │ │     let x =
> │ │         match '"' with
> │ │         | '"' -> true
> │ │         | _ -> false
> │ │ 
> │ │     let long1 = """a"""
> │ │ 
> │ │     let long2 =
> │ │         """
> │ │ a
> │ │ """
> │ │ 
> │ │     type Position =
> │ │         {
> │ │ #if INTERACTIVE
> │ │             line : string
> │ │ #else
> │ │             line : int
> │ │ #endif
> │ │             column : int
> │ │         }
> │ │ "
> │ │ 
> │ │ 
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ example1
> │ |> parse Md
> │ |> Result.toOption
> │ |> Option.get
> │ |> (formatBlocks Md)
> │ |> _assertEqual "# TestModule (TestNamespace)
> │ 
> │ ## ParserLibrary
> │ 
> │ ### TextInput
> │ "
> │ 
> │ ── [ 113.94ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ │ "# TestModule (TestNamespace)
> │ │ 
> │ │ ## ParserLibrary
> │ │ 
> │ │ ### TextInput
> │ │ "
> │ │ 
> │ │ 
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ example1
> │ |> parse Spi
> │ |> Result.toOption
> │ |> Option.get
> │ |> (formatBlocks Spi)
> │ |> _assertEqual "/// # TestModule (TestNamespace)
> │ 
> │ /// ## ParserLibrary
> │ inl x = 3i32
> │ 
> │ /// ### TextInput
> │ "
> │ 
> │ ── [ 135.17ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ │ "/// # TestModule (TestNamespace)
> │ │ 
> │ │ /// ## ParserLibrary
> │ │ inl x = 3i32
> │ │ 
> │ │ /// ### TextInput
> │ │ "
> │ │ 
> │ │ 
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ example1
> │ |> parse Spir
> │ |> Result.toOption
> │ |> Option.get
> │ |> (formatBlocks Spir)
> │ |> _assertEqual "/// # TestModule (TestNamespace)
> │ 
> │ /// ## ParserLibrary
> │ inl x = 2i32
> │ 
> │ /// ### TextInput
> │ "
> │ 
> │ ── [ 116.27ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ │ "/// # TestModule (TestNamespace)
> │ │ 
> │ │ /// ## ParserLibrary
> │ │ inl x = 2i32
> │ │ 
> │ │ /// ### TextInput
> │ │ "
> │ │ 
> │ │ 
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ ## parseDibCode
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ let inline parseDibCode output file = async {
> │     trace Debug
> │         (fun () -> "parseDibCode")
> │         (fun () -> $"output: {output} / file: {file} / 
> {_locals ()}")
> │     let! input = file |> SpiralFileSystem.read_all_text_async
> │     match parse output input with
> │     | Result.Ok blocks -> return blocks |> formatBlocks 
> output
> │     | Result.Error msg -> return failwith msg
> │ }
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ ## writeDibCode
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ let inline writeDibCode output path = async {
> │     trace Debug
> │         (fun () -> "writeDibCode")
> │         (fun () -> $"output: {output} / path: {path} / 
> {_locals ()}")
> │     let! result = parseDibCode output path
> │     let pathDir = path |> System.IO.Path.GetDirectoryName
> │     let fileNameWithoutExt =
> │         match output, path |> 
> System.IO.Path.GetFileNameWithoutExtension with
> │         | Spir, fileNameWithoutExt -> 
> $"{fileNameWithoutExt}_real"
> │         | _, fileNameWithoutExt -> fileNameWithoutExt
> │     let outputPath = pathDir </> 
> $"{fileNameWithoutExt}.{output |> string |> 
> │ SpiralSm.to_lower}"
> │     do! result |> SpiralFileSystem.write_all_text_async 
> outputPath
> │ }
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ ## Arguments
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ [[<RequireQualifiedAccess>]]
> │ type Arguments =
> │     | [[<Argu.ArguAttributes.MainCommand; 
> Argu.ArguAttributes.Mandatory>]]
> │         File of file : string * Output
> │ 
> │     interface Argu.IArgParserTemplate with
> │         member s.Usage =
> │             match s with
> │             | File _ -> nameof File
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
> │ 
> │ ── [ 90.17ms - return value ] 
> ──────────────────────────────────────────────────
> │ │ "USAGE: dotnet-repl [--help] <file> 
> <fs|md|spi|spir>
> │ │ 
> │ │ FILE:
> │ │ 
> │ │     <file> <fs|md|spi|spir>
> │ │                           File
> │ │ 
> │ │ OPTIONS:
> │ │ 
> │ │     --help                display this 
> list of options.
> │ │ "
> │ │ 
> │ 
> │ ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ │ ## main
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ let main args =
> │     let argsMap = args |> Runtime.parseArgsMap<Arguments>
> │ 
> │     let files =
> │         argsMap.[[nameof Arguments.File]]
> │         |> List.map (function
> │             | Arguments.File (path, output) -> path, output
> │         )
> │ 
> │     files
> │     |> List.map (fun (path, output) -> path |> writeDibCode 
> output)
> │     |> Async.Parallel
> │     |> Async.Ignore
> │     |> Async.runWithTimeout 30000
> │     |> function
> │         | Some () -> 0
> │         | None -> 1
> │ 
> │ ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ //// test
> │ 
> │ let args =
> │     System.Environment.GetEnvironmentVariable "ARGS"
> │     |> SpiralRuntime.split_args
> │     |> Result.toArray
> │     |> Array.collect id
> │ 
> │ match args with
> │ | [[||]] -> 0
> │ | args -> if main args = 0 then 0 else failwith "main failed"
> │ 
> │ ── [ 151.14ms - return value ] 
> ─────────────────────────────────────────────────
> │ │ <div class="dni-plaintext"><pre>0
> │ │ </pre></div><style>
> │ │ .dni-code-hint {
> │ │     font-style: italic;
> │ │     overflow: hidden;
> │ │     white-space: nowrap;
> │ │ }
> │ │ .dni-treeview {
> │ │     white-space: nowrap;
> │ │ }
> │ │ .dni-treeview td {
> │ │     vertical-align: top;
> │ │     text-align: start;
> │ │ }
> │ │ details.dni-treeview {
> │ │     padding-left: 1em;
> │ │ }
> │ │ table td {
> │ │     text-align: start;
> │ │ }
> │ │ table tr { 
> │ │     vertical-align: top; 
> │ │     margin: 0em 0px;
> │ │ }
> │ │ table tr td pre 
> │ │ { 
> │ │     vertical-align: top !important; 
> │ │     margin: 0em 0px !important;
> │ │ } 
> │ │ table th {
> │ │     text-align: start;
> │ │ }
> │ │ </style>
> │ 
> │ ── [ 151.96ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ │ 00:00:04 d #1 writeDibCode / output: 
> Fs / path: 
> │ Builder.dib
> │ │ 00:00:04 d #2 parseDibCode / output: 
> Fs / file: 
> │ Builder.dib
> │ │ 
> │ 00:00:00 d #1 spiral.main / { args = 
> Array(MutCell(["dib", "--path", "Builder.dib"])) }
> │ 00:00:00 d #2 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", 
> "c:/home/git/polyglot/apps/builder/Builder.dib", "--output-path", 
> "c:/home/git/polyglot/apps/builder/Builder.dib.ipynb"]; options = { command = 
> dotnet repl --exit-after-run --run 
> "c:/home/git/polyglot/apps/builder/Builder.dib" --output-path 
> "c:/home/git/polyglot/apps/builder/Builder.dib.ipynb"; cancellation_token = 
> None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), 
> ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; 
> working_directory = None } }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ # Builder (Polyglot)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
> │ > dard2.1/FSharp.Control.AsyncSeq.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
> │ > 0/System.Reactive.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
> │ > netstandard2.0/System.Reactive.Linq.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > #if !INTERACTIVE
> │ > open Lib
> │ > #endif
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > open Common
> │ > open SpiralFileSystem.Operators
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## buildProject
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline buildProject runtime outputDir path = async {
> │ >     let fullPath = path |> System.IO.Path.GetFullPath
> │ >     let fileDir = fullPath |> 
> System.IO.Path.GetDirectoryName
> │ >     let extension = fullPath |> System.IO.Path.GetExtension
> │ > 
> │ >     trace Debug
> │ >         (fun () -> "buildProject")
> │ >         (fun () -> $"fullPath: {fullPath} / {_locals ()}")
> │ > 
> │ >     match extension with
> │ >     | ".fsproj" -> ()
> │ >     | _ -> failwith "Invalid project file"
> │ > 
> │ >     let runtimes =
> │ >         runtime
> │ >         |> Option.map List.singleton
> │ >         |> Option.defaultValue [[ "linux-x64"; "win-x64" ]]
> │ > 
> │ >     let outputDir = outputDir |> Option.defaultValue "dist"
> │ > 
> │ >     return!
> │ >         runtimes
> │ >         |> List.map (fun runtime -> async {
> │ >             let command = $@"dotnet publish ""{path}"" 
> --configuration Release 
> │ > --output ""{outputDir}"" --runtime {runtime}"
> │ >             let! exitCode, _result =
> │ >                 SpiralRuntime.execution_options (fun x ->
> │ >                     { x with
> │ >                         l0 = command
> │ >                         l6 = Some fileDir
> │ >                     }
> │ >                 )
> │ >                 |> SpiralRuntime.execute_with_options_async
> │ >             return exitCode
> │ >         })
> │ >         |> Async.Sequential
> │ >         |> Async.map Array.sum
> │ > }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## persistCodeProject
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline persistCodeProject packages modules name hash 
> code = async {
> │ >     trace Debug
> │ >         (fun () -> "persistCodeProject")
> │ >         (fun () -> $"packages: {packages} / modules: 
> {modules} / name: {name} / 
> │ > hash: {hash} / code.Length: {code |> String.length} / 
> {_locals ()}")
> │ > 
> │ >     let workspaceRoot = SpiralFileSystem.get_workspace_root
> ()
> │ > 
> │ >     let targetDir =
> │ >         let targetDir = workspaceRoot </> "target/Builder" 
> </> name
> │ >         match hash with
> │ >         | Some hash -> targetDir </> "packages" </> hash
> │ >         | None -> targetDir
> │ >     targetDir |> System.IO.Directory.CreateDirectory |> 
> ignore
> │ > 
> │ >     let filePath = targetDir </> $"{name}.fs" |> 
> System.IO.Path.GetFullPath
> │ >     do! code |> SpiralFileSystem.write_all_text_exists 
> filePath
> │ > 
> │ >     let modulesCode =
> │ >         modules
> │ >         |> List.map (fun path -> $"""<Compile 
> Include="{workspaceRoot </> path}"
> │ > />""")
> │ >         |> SpiralSm.concat "\n        "
> │ > 
> │ >     let fsprojPath = targetDir </> $"{name}.fsproj"
> │ >     let fsprojCode = $"""<Project Sdk="Microsoft.NET.Sdk">
> │ >     <PropertyGroup>
> │ >         <TargetFramework>net9.0</TargetFramework>
> │ >         <LangVersion>preview</LangVersion>
> │ >         <RollForward>Major</RollForward>
> │ >         
> <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
> │ >         
> <ServerGarbageCollection>true</ServerGarbageCollection>
> │ >         
> <ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
> │ >         <PublishAot>false</PublishAot>
> │ >         <PublishTrimmed>false</PublishTrimmed>
> │ >         <PublishSingleFile>true</PublishSingleFile>
> │ >         <SelfContained>true</SelfContained>
> │ >         <Version>0.0.1-alpha.1</Version>
> │ >         <OutputType>Exe</OutputType>
> │ >     </PropertyGroup>
> │ > 
> │ >     <PropertyGroup 
> Condition="$([[MSBuild]]::IsOSPlatform('FreeBSD'))">
> │ >         <DefineConstants>_FREEBSD</DefineConstants>
> │ >     </PropertyGroup>
> │ > 
> │ >     <PropertyGroup 
> Condition="$([[MSBuild]]::IsOSPlatform('Linux'))">
> │ >         <DefineConstants>_LINUX</DefineConstants>
> │ >     </PropertyGroup>
> │ > 
> │ >     <PropertyGroup 
> Condition="$([[MSBuild]]::IsOSPlatform('OSX'))">
> │ >         <DefineConstants>_OSX</DefineConstants>
> │ >     </PropertyGroup>
> │ > 
> │ >     <PropertyGroup 
> Condition="$([[MSBuild]]::IsOSPlatform('Windows'))">
> │ >         <DefineConstants>_WINDOWS</DefineConstants>
> │ >     </PropertyGroup>
> │ > 
> │ >     <ItemGroup>
> │ >         {modulesCode}
> │ >         <Compile Include="{filePath}" />
> │ >     </ItemGroup>
> │ > 
> │ >     <ItemGroup>
> │ >         <FrameworkReference 
> Include="Microsoft.AspNetCore.App" />
> │ >     </ItemGroup>
> │ > 
> │ >     <Import 
> Project="{workspaceRoot}/.paket/Paket.Restore.targets" />
> │ > </Project>
> │ > """
> │ >     do! fsprojCode |> 
> SpiralFileSystem.write_all_text_exists fsprojPath
> │ > 
> │ >     let paketReferencesPath = targetDir </> 
> "paket.references"
> │ >     let paketReferencesCode =
> │ >         "FSharp.Core" :: packages
> │ >         |> SpiralSm.concat "\n"
> │ >     do! paketReferencesCode |> 
> SpiralFileSystem.write_all_text_exists 
> │ > paketReferencesPath
> │ > 
> │ >     return fsprojPath
> │ > }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## buildCode
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline buildCode runtime packages modules outputDir 
> name code = async {
> │ >     let! fsprojPath = code |> persistCodeProject packages 
> modules name None
> │ >     let! exitCode = fsprojPath |> buildProject runtime 
> outputDir
> │ >     if exitCode <> 0 then
> │ >         let! fsprojText = fsprojPath |> 
> SpiralFileSystem.read_all_text_async
> │ >         trace Critical
> │ >             (fun () -> "buildCode")
> │ >             (fun () -> $"code: {code |> 
> SpiralSm.ellipsis_end 400} / fsprojText:
> │ > {fsprojText} / {_locals ()}")
> │ >     return exitCode
> │ > }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > "1 + 1 |> ignore"
> │ > |> buildCode None [[]] [[]] None "test1"
> │ > |> Async.runWithTimeout 180000
> │ > |> _assertEqual (Some 0)
> │ > 
> │ > ── [ 11.21s - stdout ] 
> ─────────────────────────────────────────────────────────
> │ > │ 00:00:02 d #1 persistCodeProject / 
> packages: [] / 
> │ > modules: [] / name: test1 / hash:  / code.Length: 15
> │ > │ 00:00:02 d #2 buildProject / 
> fullPath: 
> │ > c:\home\git\polyglot\target\Builder\test1\test1.fsproj
> │ > │ 00:00:05 d #1 
> runtime.execute_with_options_async / { 
> │ > file_name = dotnet; arguments = US5_0
> │ > │   "publish 
> │ > "c:/home/git\polyglot\target/Builder\test1\test1.fsproj" 
> --configuration Release
> │ > --output "dist" --runtime linux-x64"; options = { command =
> dotnet publish 
> │ > "c:/home/git\polyglot\target/Builder\test1\test1.fsproj" 
> --configuration Release
> │ > --output "dist" --runtime linux-x64; cancellation_token = 
> None; 
> │ > environment_variables = [||]; on_line = None; stdin = None;
> trace = true; 
> │ > working_directory = Some 
> "c:\home\git\polyglot\target\Builder\test1" } }
> │ > │ 00:00:05 v #2 >   Determining 
> projects to restore...
> │ > │ 00:00:06 v #3 >   Paket version 
> │ > 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ > │ 00:00:06 v #4 >   The last full 
> restore is still up to 
> │ > date. Nothing left to do.
> │ > │ 00:00:06 v #5 >   Total time taken:
> 0 milliseconds
> │ > │ 00:00:07 v #6 >   Restored 
> │ > c:\home\git\polyglot\target\Builder\test1\test1.fsproj (in 
> 929 ms).
> │ > │ 00:00:10 v #7 >   test1 -> 
> │ > 
> c:\home\git\polyglot\target\Builder\test1\bin\Release\net9.0\linux-x64\test1.dll
> │ > │ 00:00:11 v #8 >   test1 -> 
> │ > c:\home\git\polyglot\target\Builder\test1\dist\
> │ > │ 00:00:11 d #9 
> runtime.execute_with_options_async / { 
> │ > exit_code = 0; output_length = 429; options = { command = 
> dotnet publish 
> │ > "c:/home/git\polyglot\target/Builder\test1\test1.fsproj" 
> --configuration Release
> │ > --output "dist" --runtime linux-x64; cancellation_token = 
> None; 
> │ > environment_variables = [||]; on_line = None; stdin = None;
> trace = true; 
> │ > working_directory = Some 
> "c:\home\git\polyglot\target\Builder\test1" } }
> │ > │ 00:00:11 d #10 
> runtime.execute_with_options_async / { 
> │ > file_name = dotnet; arguments = US5_0
> │ > │   "publish 
> │ > "c:/home/git\polyglot\target/Builder\test1\test1.fsproj" 
> --configuration Release
> │ > --output "dist" --runtime win-x64"; options = { command = 
> dotnet publish 
> │ > "c:/home/git\polyglot\target/Builder\test1\test1.fsproj" 
> --configuration Release
> │ > --output "dist" --runtime win-x64; cancellation_token = 
> None; 
> │ > environment_variables = [||]; on_line = None; stdin = None;
> trace = true; 
> │ > working_directory = Some 
> "c:\home\git\polyglot\target\Builder\test1" } }
> │ > │ 00:00:12 v #11 >   Determining 
> projects to restore...
> │ > │ 00:00:12 v #12 >   Paket version 
> │ > 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ > │ 00:00:12 v #13 >   The last full 
> restore is still up to 
> │ > date. Nothing left to do.
> │ > │ 00:00:12 v #14 >   Total time 
> taken: 0 milliseconds
> │ > │ 00:00:13 v #15 >   Restored 
> │ > c:\home\git\polyglot\target\Builder\test1\test1.fsproj (in 
> 283 ms).
> │ > │ 00:00:14 v #16 >   test1 -> 
> │ > 
> c:\home\git\polyglot\target\Builder\test1\bin\Release\net9.0\win-x64\test1.dll
> │ > │ 00:00:15 v #17 >   test1 -> 
> │ > c:\home\git\polyglot\target\Builder\test1\dist\
> │ > │ 00:00:15 d #18 
> runtime.execute_with_options_async / { 
> │ > exit_code = 0; output_length = 427; options = { command = 
> dotnet publish 
> │ > "c:/home/git\polyglot\target/Builder\test1\test1.fsproj" 
> --configuration Release
> │ > --output "dist" --runtime win-x64; cancellation_token = 
> None; 
> │ > environment_variables = [||]; on_line = None; stdin = None;
> trace = true; 
> │ > working_directory = Some 
> "c:\home\git\polyglot\target\Builder\test1" } }
> │ > │ Some 0
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > "1 + a |> ignore"
> │ > |> buildCode None [[]] [[]] None "test2"
> │ > |> Async.runWithTimeout 180000
> │ > |> _assertEqual (Some 2)
> │ > 
> │ > ── [ 7.90s - stdout ] 
> ──────────────────────────────────────────────────────────
> │ > │ 00:00:13 d #3 persistCodeProject / 
> packages: [] / 
> │ > modules: [] / name: test2 / hash:  / code.Length: 15
> │ > │ 00:00:13 d #4 buildProject / 
> fullPath: 
> │ > c:\home\git\polyglot\target\Builder\test2\test2.fsproj
> │ > │ 00:00:16 d #19 
> runtime.execute_with_options_async / { 
> │ > file_name = dotnet; arguments = US5_0
> │ > │   "publish 
> │ > "c:/home/git\polyglot\target/Builder\test2\test2.fsproj" 
> --configuration Release
> │ > --output "dist" --runtime linux-x64"; options = { command =
> dotnet publish 
> │ > "c:/home/git\polyglot\target/Builder\test2\test2.fsproj" 
> --configuration Release
> │ > --output "dist" --runtime linux-x64; cancellation_token = 
> None; 
> │ > environment_variables = [||]; on_line = None; stdin = None;
> trace = true; 
> │ > working_directory = Some 
> "c:\home\git\polyglot\target\Builder\test2" } }
> │ > │ 00:00:16 v #20 >   Determining 
> projects to restore...
> │ > │ 00:00:17 v #21 >   Paket version 
> │ > 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ > │ 00:00:17 v #22 >   The last full 
> restore is still up to 
> │ > date. Nothing left to do.
> │ > │ 00:00:17 v #23 >   Total time 
> taken: 0 milliseconds
> │ > │ 00:00:17 v #24 >   Restored 
> │ > c:\home\git\polyglot\target\Builder\test2\test2.fsproj (in 
> 272 ms).
> │ > │ 00:00:20 v #25 > 
> │ > c:\home\git\polyglot\target\Builder\test2\test2.fs(1,5): 
> error FS0039: The value
> │ > or constructor 'a' is not defined. 
> │ > [c:\home\git\polyglot\target\Builder\test2\test2.fsproj]
> │ > │ 00:00:20 d #26 
> runtime.execute_with_options_async / { 
> │ > exit_code = 1; output_length = 451; options = { command = 
> dotnet publish 
> │ > "c:/home/git\polyglot\target/Builder\test2\test2.fsproj" 
> --configuration Release
> │ > --output "dist" --runtime linux-x64; cancellation_token = 
> None; 
> │ > environment_variables = [||]; on_line = None; stdin = None;
> trace = true; 
> │ > working_directory = Some 
> "c:\home\git\polyglot\target\Builder\test2" } }
> │ > │ 00:00:20 d #27 
> runtime.execute_with_options_async / { 
> │ > file_name = dotnet; arguments = US5_0
> │ > │   "publish 
> │ > "c:/home/git\polyglot\target/Builder\test2\test2.fsproj" 
> --configuration Release
> │ > --output "dist" --runtime win-x64"; options = { command = 
> dotnet publish 
> │ > "c:/home/git\polyglot\target/Builder\test2\test2.fsproj" 
> --configuration Release
> │ > --output "dist" --runtime win-x64; cancellation_token = 
> None; 
> │ > environment_variables = [||]; on_line = None; stdin = None;
> trace = true; 
> │ > working_directory = Some 
> "c:\home\git\polyglot\target\Builder\test2" } }
> │ > │ 00:00:20 v #28 >   Determining 
> projects to restore...
> │ > │ 00:00:21 v #29 >   Paket version 
> │ > 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ > │ 00:00:21 v #30 >   The last full 
> restore is still up to 
> │ > date. Nothing left to do.
> │ > │ 00:00:21 v #31 >   Total time 
> taken: 0 milliseconds
> │ > │ 00:00:21 v #32 >   Restored 
> │ > c:\home\git\polyglot\target\Builder\test2\test2.fsproj (in 
> 270 ms).
> │ > │ 00:00:23 v #33 > 
> │ > c:\home\git\polyglot\target\Builder\test2\test2.fs(1,5): 
> error FS0039: The value
> │ > or constructor 'a' is not defined. 
> │ > [c:\home\git\polyglot\target\Builder\test2\test2.fsproj]
> │ > │ 00:00:23 d #34 
> runtime.execute_with_options_async / { 
> │ > exit_code = 1; output_length = 451; options = { command = 
> dotnet publish 
> │ > "c:/home/git\polyglot\target/Builder\test2\test2.fsproj" 
> --configuration Release
> │ > --output "dist" --runtime win-x64; cancellation_token = 
> None; 
> │ > environment_variables = [||]; on_line = None; stdin = None;
> trace = true; 
> │ > working_directory = Some 
> "c:\home\git\polyglot\target\Builder\test2" } }
> │ > │ 00:00:21 c #5 buildCode / code: 1 +
> a |> ignore / 
> │ > fsprojText: <Project Sdk="Microsoft.NET.Sdk">
> │ > │     <PropertyGroup>
> │ > │         
> <TargetFramework>net9.0</TargetFramework>
> │ > │         
> <LangVersion>preview</LangVersion>
> │ > │         <RollForward>Major</RollForward>
> │ > │         
> │ > <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
> │ > │         
> │ > <ServerGarbageCollection>true</ServerGarbageCollection>
> │ > │         
> │ > 
> <ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
> │ > │         <PublishAot>false</PublishAot>
> │ > │         
> <PublishTrimmed>false</PublishTrimmed>
> │ > │         
> <PublishSingleFile>true</PublishSingleFile>
> │ > │         
> <SelfContained>true</SelfContained>
> │ > │         <Version>0.0.1-alpha.1</Version>
> │ > │         <OutputType>Exe</OutputType>
> │ > │     </PropertyGroup>
> │ > │ 
> │ > │     <PropertyGroup 
> │ > Condition="$([MSBuild]::IsOSPlatform('FreeBSD'))">
> │ > │         
> <DefineConstants>_FREEBSD</DefineConstants>
> │ > │     </PropertyGroup>
> │ > │ 
> │ > │     <PropertyGroup 
> │ > Condition="$([MSBuild]::IsOSPlatform('Linux'))">
> │ > │         
> <DefineConstants>_LINUX</DefineConstants>
> │ > │     </PropertyGroup>
> │ > │ 
> │ > │     <PropertyGroup 
> │ > Condition="$([MSBuild]::IsOSPlatform('OSX'))">
> │ > │         
> <DefineConstants>_OSX</DefineConstants>
> │ > │     </PropertyGroup>
> │ > │ 
> │ > │     <PropertyGroup 
> │ > Condition="$([MSBuild]::IsOSPlatform('Windows'))">
> │ > │         
> <DefineConstants>_WINDOWS</DefineConstants>
> │ > │     </PropertyGroup>
> │ > │ 
> │ > │     <ItemGroup>
> │ > │         
> │ > │         <Compile 
> │ > 
> Include="c:\home\git\polyglot\target\Builder\test2\test2.fs" />
> │ > │     </ItemGroup>
> │ > │ 
> │ > │     <ItemGroup>
> │ > │         <FrameworkReference 
> │ > Include="Microsoft.AspNetCore.App" />
> │ > │     </ItemGroup>
> │ > │ 
> │ > │     <Import 
> │ > Project="c:/home/git\polyglot/.paket/Paket.Restore.targets"
> />
> │ > │ </Project>
> │ > │ 
> │ > │ Some 2
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## readFile
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline readFile path = async {
> │ >     let! code = path |> 
> SpiralFileSystem.read_all_text_async
> │ > 
> │ >     let code = System.Text.RegularExpressions.Regex.Replace
> (
> │ >         code,
> │ >         @"( *)(let\s+main\s+\w+\s*=)",
> │ >         fun m -> m.Groups.[[1]].Value + 
> "[[<EntryPoint>]]\n" + 
> │ > m.Groups.[[1]].Value + m.Groups.[[2]].Value
> │ >     )
> │ > 
> │ >     let codeTrim = code |> SpiralSm.trim_end [[||]]
> │ >     return
> │ >         if codeTrim |> SpiralSm.ends_with "\n()"
> │ >         then codeTrim |> SpiralSm.slice 0 ((codeTrim |> 
> String.length) - 3)
> │ >         else code
> │ > }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## buildFile
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline buildFile runtime packages modules path = async 
> {
> │ >     let fullPath = path |> System.IO.Path.GetFullPath
> │ >     let dir = fullPath |> System.IO.Path.GetDirectoryName
> │ >     let name = fullPath |> 
> System.IO.Path.GetFileNameWithoutExtension
> │ >     let! code = fullPath |> readFile
> │ >     return! code |> buildCode runtime packages modules (dir
> </> "dist" |> Some) 
> │ > name
> │ > }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## persistFile
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline persistFile packages modules path = async {
> │ >     let fullPath = path |> System.IO.Path.GetFullPath
> │ >     let name = fullPath |> 
> System.IO.Path.GetFileNameWithoutExtension
> │ >     let! code = fullPath |> readFile
> │ >     return! code |> persistCodeProject packages modules 
> name None
> │ > }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## Arguments
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > [[<RequireQualifiedAccess>]]
> │ > type Arguments =
> │ >     | [[<Argu.ArguAttributes.MainCommand; 
> Argu.ArguAttributes.ExactlyOnce>]] 
> │ > Path of path : string
> │ >     | [[<Argu.ArguAttributes.Unique>]] Packages of packages
> : string list
> │ >     | [[<Argu.ArguAttributes.Unique>]] Modules of modules :
> string list
> │ >     | [[<Argu.ArguAttributes.Unique>]] Runtime of runtime :
> string
> │ >     | [[<Argu.ArguAttributes.Unique>]] Persist_Only
> │ > 
> │ >     interface Argu.IArgParserTemplate with
> │ >         member s.Usage =
> │ >             match s with
> │ >             | Path _ -> nameof Path
> │ >             | Packages _ -> nameof Packages
> │ >             | Modules _ -> nameof Modules
> │ >             | Runtime _ -> nameof Runtime
> │ >             | Persist_Only -> nameof Persist_Only
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
> │ > 
> │ > ── [ 102.13ms - return value ] 
> ─────────────────────────────────────────────────
> │ > │ "USAGE: dotnet-repl [--help] [--packages
> [<packages>...]]
> │ > │                    [--modules 
> [<modules>...]] [--runtime 
> │ > <runtime>]
> │ > │                    [--persist-only] 
> <path>
> │ > │ 
> │ > │ PATH:
> │ > │ 
> │ > │     <path>                Path
> │ > │ 
> │ > │ OPTIONS:
> │ > │ 
> │ > │     --packages [<packages>...]
> │ > │                           Packages
> │ > │     --modules [<modules>...]
> │ > │                           Modules
> │ > │     --runtime <runtime>   Runtime
> │ > │     --persist-only        Persist_Only
> │ > │     --help                display this 
> list of options.
> │ > │ "
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## main
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let main args =
> │ >     let argsMap = args |> Runtime.parseArgsMap<Arguments>
> │ > 
> │ >     let path =
> │ >         match argsMap.[[nameof Arguments.Path]] with
> │ >         | [[ Arguments.Path path ]] -> Some path
> │ >         | _ -> None
> │ >         |> Option.get
> │ > 
> │ >     let packages =
> │ >         match argsMap |> Map.tryFind (nameof 
> Arguments.Packages) with
> │ >         | Some [[ Arguments.Packages packages ]] -> 
> packages
> │ >         | _ -> [[]]
> │ > 
> │ >     let modules =
> │ >         match argsMap |> Map.tryFind (nameof 
> Arguments.Modules) with
> │ >         | Some [[ Arguments.Modules modules ]] -> modules
> │ >         | _ -> [[]]
> │ > 
> │ >     let runtime =
> │ >         match argsMap |> Map.tryFind (nameof 
> Arguments.Runtime) with
> │ >         | Some [[ Arguments.Runtime runtime ]] -> Some 
> runtime
> │ >         | _ -> None
> │ > 
> │ >     let persistOnly = argsMap |> Map.containsKey (nameof 
> Arguments.Persist_Only)
> │ > 
> │ >     if persistOnly
> │ >     then path |> persistFile packages modules |> Async.map 
> (fun _ -> 0)
> │ >     else path |> buildFile runtime packages modules
> │ >     |> Async.runWithTimeout (60001 * 60 * 24)
> │ >     |> function
> │ >         | Some exitCode -> exitCode
> │ >         | None -> 1
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let args =
> │ >     System.Environment.GetEnvironmentVariable "ARGS"
> │ >     |> SpiralRuntime.split_args
> │ >     |> Result.toArray
> │ >     |> Array.collect id
> │ > 
> │ > match args with
> │ > | [[||]] -> 0
> │ > | args -> if main args = 0 then 0 else failwith "main 
> failed"
> │ > 
> │ > ── [ 30.55s - return value ] 
> ───────────────────────────────────────────────────
> │ > │ <div class="dni-plaintext"><pre>0
> │ > │ </pre></div><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 30.55s - stdout ] 
> ─────────────────────────────────────────────────────────
> │ > │ 00:00:22 d #6 persistCodeProject / 
> packages: [Argu; 
> │ > FSharp.Control.AsyncSeq; System.Reactive.Linq] / modules: 
> │ > [deps/spiral/lib/spiral/common.fsx; 
> deps/spiral/lib/spiral/sm.fsx; 
> │ > deps/spiral/lib/spiral/crypto.fsx; ... ] / name: Builder / 
> hash:  / code.Length:
> │ > 8451
> │ > │ 00:00:22 d #7 buildProject / 
> fullPath: 
> │ > c:\home\git\polyglot\target\Builder\Builder\Builder.fsproj
> │ > │ 00:00:24 d #35 
> runtime.execute_with_options_async / { 
> │ > file_name = dotnet; arguments = US5_0
> │ > │   "publish 
> │ > 
> "c:/home/git\polyglot\target/Builder\Builder\Builder.fsproj" --configuration 
> │ > Release --output "C:\home\git\polyglot\apps\builder\dist" 
> --runtime linux-x64"; 
> │ > options = { command = dotnet publish 
> │ > 
> "c:/home/git\polyglot\target/Builder\Builder\Builder.fsproj" --configuration 
> │ > Release --output "C:\home\git\polyglot\apps\builder\dist" 
> --runtime linux-x64; 
> │ > cancellation_token = None; environment_variables = [||]; 
> on_line = None; stdin =
> │ > None; trace = true; working_directory = Some 
> │ > "c:\home\git\polyglot\target\Builder\Builder" } }
> │ > │ 00:00:25 v #36 >   Determining 
> projects to restore...
> │ > │ 00:00:25 v #37 >   Paket version 
> │ > 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ > │ 00:00:25 v #38 >   The last full 
> restore is still up to 
> │ > date. Nothing left to do.
> │ > │ 00:00:25 v #39 >   Total time 
> taken: 0 milliseconds
> │ > │ 00:00:26 v #40 >   Restored 
> │ > c:\home\git\polyglot\target\Builder\Builder\Builder.fsproj 
> (in 311 ms).
> │ > │ 00:00:38 v #41 >   Builder -> 
> │ > 
> c:\home\git\polyglot\target\Builder\Builder\bin\Release\net9.0\linux-x64\Builder
> │ > .dll
> │ > │ 00:00:39 v #42 >   Builder -> 
> │ > C:\home\git\polyglot\apps\builder\dist\
> │ > │ 00:00:39 d #43 
> runtime.execute_with_options_async / { 
> │ > exit_code = 0; output_length = 433; options = { command = 
> dotnet publish 
> │ > 
> "c:/home/git\polyglot\target/Builder\Builder\Builder.fsproj" --configuration 
> │ > Release --output "C:\home\git\polyglot\apps\builder\dist" 
> --runtime linux-x64; 
> │ > cancellation_token = None; environment_variables = [||]; 
> on_line = None; stdin =
> │ > None; trace = true; working_directory = Some 
> │ > "c:\home\git\polyglot\target\Builder\Builder" } }
> │ > │ 00:00:39 d #44 
> runtime.execute_with_options_async / { 
> │ > file_name = dotnet; arguments = US5_0
> │ > │   "publish 
> │ > 
> "c:/home/git\polyglot\target/Builder\Builder\Builder.fsproj" --configuration 
> │ > Release --output "C:\home\git\polyglot\apps\builder\dist" 
> --runtime win-x64"; 
> │ > options = { command = dotnet publish 
> │ > 
> "c:/home/git\polyglot\target/Builder\Builder\Builder.fsproj" --configuration 
> │ > Release --output "C:\home\git\polyglot\apps\builder\dist" 
> --runtime win-x64; 
> │ > cancellation_token = None; environment_variables = [||]; 
> on_line = None; stdin =
> │ > None; trace = true; working_directory = Some 
> │ > "c:\home\git\polyglot\target\Builder\Builder" } }
> │ > │ 00:00:40 v #45 >   Determining 
> projects to restore...
> │ > │ 00:00:40 v #46 >   Paket version 
> │ > 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ > │ 00:00:40 v #47 >   The last full 
> restore is still up to 
> │ > date. Nothing left to do.
> │ > │ 00:00:40 v #48 >   Total time 
> taken: 0 milliseconds
> │ > │ 00:00:41 v #49 >   Restored 
> │ > c:\home\git\polyglot\target\Builder\Builder\Builder.fsproj 
> (in 295 ms).
> │ > │ 00:00:53 v #50 >   Builder -> 
> │ > 
> c:\home\git\polyglot\target\Builder\Builder\bin\Release\net9.0\win-x64\Builder.d
> │ > ll
> │ > │ 00:00:55 v #51 >   Builder -> 
> │ > C:\home\git\polyglot\apps\builder\dist\
> │ > │ 00:00:55 d #52 
> runtime.execute_with_options_async / { 
> │ > exit_code = 0; output_length = 431; options = { command = 
> dotnet publish 
> │ > 
> "c:/home/git\polyglot\target/Builder\Builder\Builder.fsproj" --configuration 
> │ > Release --output "C:\home\git\polyglot\apps\builder\dist" 
> --runtime win-x64; 
> │ > cancellation_token = None; environment_variables = [||]; 
> on_line = None; stdin =
> │ > None; trace = true; working_directory = Some 
> │ > "c:\home\git\polyglot\target\Builder\Builder" } }
> │ > │ 
> │ 00:01:09 v #3 runtime.execute_with_options / result / {
> exit_code = 0; std_trace_length = 28638 }
> │ 00:01:09 d #4 runtime.execute_with_options / { 
> file_name = jupyter; arguments = ["nbconvert", 
> "c:/home/git/polyglot/apps/builder/Builder.dib.ipynb", "--to", "html", 
> "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert 
> "c:/home/git/polyglot/apps/builder/Builder.dib.ipynb" --to html 
> --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:01:11 v #5 ! [NbConvertApp] Converting notebook 
> c:/home/git/polyglot/apps/builder/Builder.dib.ipynb to html
> │ 00:01:11 v #6 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.
> py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a 
> hard error in future nbformat versions. You may want to use `normalize()` on 
> your notebooks before validations (available since nbformat 5.1.4). Previous 
> versions of nbformat are fixing this issue transparently, and will stop doing so
> in the future.
> │ 00:01:11 v #7 !   validate(nb)
> │ 00:01:11 v #8 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\
> highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python
> 3
> │ 00:01:11 v #9 !   return _pygments_highlight(
> │ 00:01:12 v #10 ! [NbConvertApp] Writing 337357 bytes to
> c:\home\git\polyglot\apps\builder\Builder.dib.html
> │ 00:01:12 v #11 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 860 }
> │ 00:01:12 d #12 spiral.run / dib / jupyter nbconvert / {
> exit_code = 0; jupyter_result_length = 860 }
> │ 00:01:12 d #13 runtime.execute_with_options / { 
> file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/builder/Builder.dib.html'; (Get-Content $path -Raw) 
> -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } 
> | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/builder/Builder.dib.html'; (Get-Content $path -Raw) 
> -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | 
> Set-Content $path"; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:01:12 v #14 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 0 }
> │ 00:01:12 d #15 spiral.run / dib / html cell ids / { 
> exit_code = 0; pwsh_replace_html_result_length = 0 }
> │ 00:01:12 d #16 spiral.run / dib / { exit_code = 0; 
> result_length = 29557 }
> │ polyglot/apps/builder/build.ps1 / $env:CI:''
> │ 
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> { pwsh ../deps/spiral/apps/spiral/build.ps1 -fast 1 -SkipFsx 1 } | Invoke-Block
> 
> ── [ 1.27m - stdout ] ──────────────────────────────────────────────────────────
> │ spiral/apps/spiral/build.ps1 / ScriptDir: 
> C:\home\git\polyglot\deps\spiral\apps\spiral / ResolvedScriptDir: 
> C:\home\git\spiral\apps\spiral
> │ 00:00:00 d #1 persistCodeProject / packages: 
> [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; 
> deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: 
> spiral / hash:  / code.Length: 1690956
> │ spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: 
> C:\home\git\polyglot\target\Builder\spiral
> │ polyglot/scripts/core.ps1/ResolveLink #4 / Path: 
> C:\home\git\polyglot\deps\spiral\deps\polyglot\deps\spiral\lib\spiral/../../deps
> /polyglot / parent_target:  / path_target: C:\home\git\polyglot / parent: 
> C:\home\git\polyglot\deps\spiral\deps\polyglot\deps\spiral\lib\spiral\..\..\deps
> / End: polyglot
> │ spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: 
> C:\home\git\polyglot\target\Builder\spiral / ProjectName: spiral / Language: rs 
> / Runtime:  / root: C:\home\git\polyglot
> │ Fable 5.0.0-alpha.9: F# to Rust compiler (status: alpha)
> │ 
> │ Thanks to the contributor! @cartermp
> │ Stand with Ukraine! https://standwithukraine.com.ua/
> │ 
> │ Parsing target\Builder\spiral\spiral.fsproj...
> │ Project and references (14 source files) parsed in 2633ms
> │ 
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.JSInt
> erop.dll for Fable plugins, skipping this assembly. Original error: The 
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Routing.dll for Fable plugins, skipping this assembly. Original error: The
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Routing.Abstractions.dll for Fable plugins, skipping this assembly. 
> Original error: The exception has been reported. This internal exception should 
> now be caught at an error recovery point on the stack. Original message: The 
> type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You 
> must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.ViewFeatures.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.dll for Fable plugins, skipping this assembly. Original error: The 
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.Core.dll for Fable plugins, skipping this assembly. Original error: 
> The exception has been reported. This internal exception should now be caught at
> an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Http.Abstractions.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.Forms.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.Endpoints.dll for Fable plugins, skipping this assembly. 
> Original error: The exception has been reported. This internal exception should 
> now be caught at an error recovery point on the stack. Original message: The 
> type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You 
> must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.dll for Fable plugins, skipping this assembly. Original error: 
> The exception has been reported. This internal exception should now be caught at
> an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ 
> │ Started Fable compilation...
> │ 
> │ Fable compilation finished in 20072ms
> │ 
> │ .\deps\spiral\lib\spiral\sm.fsx(561,0): (561,2) warning 
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\common.fsx(2199,0): (2199,2) warning
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\async_.fsx(250,0): (250,2) warning 
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\threading.fsx(139,0): (139,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\crypto.fsx(2426,0): (2426,2) warning
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\date_time.fsx(2546,0): (2546,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\platform.fsx(121,0): (121,2) warning
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\networking.fsx(5050,0): (5050,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\trace.fsx(2232,0): (2232,2) warning 
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\runtime.fsx(7321,0): (7321,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\file_system.fsx(19036,0): (19036,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ spiral/apps/spiral/build.ps1 / path: 
> C:\home\git\polyglot\target\Builder\spiral/target/rs/spiral.rs
> │ spiral/apps/spiral/build.ps1 / $projectName: spiral / 
> $env:CI:''
> │ warning: C:\home\git\spiral\workspace\Cargo.toml: the 
> cargo feature `edition2024` has been stabilized in the 1.85 release and is no 
> longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> C:\home\git\spiral\lib\spiral\near\wallet\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: C:\home\git\spiral\apps\wasm\Cargo.toml: the 
> cargo feature `edition2024` has been stabilized in the 1.85 release and is no 
> longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: C:\home\git\spiral\apps\spiral\Cargo.toml: the 
> cargo feature `edition2024` has been stabilized in the 1.85 release and is no 
> longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │    Compiling spiral v0.0.1 
> (C:\home\git\spiral\apps\spiral)
> │ error: failed to remove file 
> `C:\home\git\spiral\workspace\target\release\spiral.exe`
> │ 
> │ Caused by:
> │   Access is denied. (os error 5)
> │ 
> │ # Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: 
> C:\home\git\spiral\apps\spiral / $OnError: Continue / $exitcode: 101 / $Error: 
> '' / $ScriptBlock:
> │ 'cargo build --release'
> │ 
> │ 
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> { pwsh ../apps/parser/build.ps1 } | Invoke-Block
> 
> ── [ 1.80m - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:00 d #1 spiral.main / { args = 
> Array(MutCell(["dib", "--path", "DibParser.dib"])) }
> │ 00:00:00 d #2 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", 
> "c:/home/git/polyglot/apps/parser/DibParser.dib", "--output-path", 
> "c:/home/git/polyglot/apps/parser/DibParser.dib.ipynb"]; options = { command = 
> dotnet repl --exit-after-run --run 
> "c:/home/git/polyglot/apps/parser/DibParser.dib" --output-path 
> "c:/home/git/polyglot/apps/parser/DibParser.dib.ipynb"; cancellation_token = 
> None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), 
> ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; 
> working_directory = None } }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ # DibParser (Polyglot)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
> │ > dard2.1/FSharp.Control.AsyncSeq.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
> │ > 0/System.Reactive.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
> │ > netstandard2.0/System.Reactive.Linq.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
> │ > arsec.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
> │ > arsecCS.dll"
> │ > 
> │ > ── pwsh 
> ────────────────────────────────────────────────────────────────────────
> │ > ls ~/.nuget/packages/argu
> │ > 
> │ > ── [ 448.06ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 
> │ > │     Directory: 
> C:\Users\i574n\.nuget\packages\argu
> │ > │ 
> │ > │ Mode                 
> LastWriteTime 
> │ > Length Name
> │ > │ ----                 
> ------------- 
> │ > ------ ----
> │ > │ d----          2023-05-17  3:38 PM│ > 6.1.1
> │ > │ d----          2024-03-12  8:22 PM│ > 6.1.4
> │ > │ d----          2024-01-29  5:12 PM│ > 6.1.5
> │ > │ d----          2024-03-12  8:20 PM│ > 6.2.0
> │ > │ d----          2024-02-23  6:50 PM│ > 6.2.1
> │ > │ d----          2024-03-12  8:15 PM│ > 6.2.2
> │ > │ d----          2024-05-14  8:20 PM│ > 6.2.3
> │ > │ d----          2024-06-06  7:37 PM│ > 6.2.4
> │ > │ d----          2024-12-08 11:22 AM│ > 6.2.5
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > #if !INTERACTIVE
> │ > open Lib
> │ > #endif
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > open Common
> │ > open FParsec
> │ > open SpiralFileSystem.Operators
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## escapeCell (test)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let inline escapeCell input =
> │ >     input
> │ >     |> SpiralSm.split "\n"
> │ >     |> Array.map (function
> │ >         | line when line |> SpiralSm.starts_with "\\#!" || 
> line |> 
> │ > SpiralSm.starts_with "\\#r" ->
> │ >             System.Text.RegularExpressions.Regex.Replace 
> (line, "^\\\\#", "#")
> │ >         | line -> line
> │ >     )
> │ >     |> SpiralSm.concat "\n"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > $"a{nl}\\#!magic{nl}b{nl}"
> │ > |> escapeCell
> │ > |> _assertEqual (
> │ >     $"a{nl}#!magic{nl}b{nl}"
> │ > )
> │ > 
> │ > ── [ 47.43ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ "a
> │ > │ #!magic
> │ > │ b
> │ > │ "
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## magicMarker
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let magicMarker : Parser<string, unit> = pstring "#!"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > "#!magic"
> │ > |> run magicMarker
> │ > |> _assertEqual (
> │ >     Success ("#!", (), Position ("", 2, 1, 3))
> │ > )
> │ > 
> │ > ── [ 53.71ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success: "#!"
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > "##!magic"
> │ > |> run magicMarker
> │ > |> _assertEqual (
> │ >     Failure (
> │ >         $"Error in Ln: 1 Col: 
> 1{nl}##!magic{nl}^{nl}Expecting: '#!'{nl}",
> │ >         ParserError (
> │ >             Position ("", 0, 1, 1),
> │ >             (),
> │ >             ErrorMessageList (ExpectedString "#!")
> │ >         ),
> │ >         ()
> │ >     )
> │ > )
> │ > 
> │ > ── [ 39.20ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Failure:
> │ > │ Error in Ln: 1 Col: 1
> │ > │ ##!magic
> │ > │ ^
> │ > │ Expecting: '#!'
> │ > │ 
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## magicCommand
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let magicCommand =
> │ >     magicMarker
> │ >     >>. manyTill anyChar newline
> │ >     |>> (System.String.Concat >> SpiralSm.trim)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > "#!magic
> │ > 
> │ > a"
> │ > |> run magicCommand
> │ > |> _assertEqual (
> │ >     Success ("magic", (), Position ("", 8, 2, 1))
> │ > )
> │ > 
> │ > ── [ 20.32ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success: "magic"
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > " #!magic
> │ > 
> │ > a"
> │ > |> run magicCommand
> │ > |> _assertEqual (
> │ >     Failure (
> │ >         $"Error in Ln: 1 Col: 1{nl} 
> #!magic{nl}^{nl}Expecting: '#!'{nl}",
> │ >         ParserError (
> │ >             Position ("", 0, 1, 1),
> │ >             (),
> │ >             ErrorMessageList (ExpectedString "#!")
> │ >         ),
> │ >         ()
> │ >     )
> │ > )
> │ > 
> │ > ── [ 19.55ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Failure:
> │ > │ Error in Ln: 1 Col: 1
> │ > │  #!magic
> │ > │ ^
> │ > │ Expecting: '#!'
> │ > │ 
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## content
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let content =
> │ >     (newline >>. magicMarker) <|> (eof >>. preturn "")
> │ >     |> attempt
> │ >     |> lookAhead
> │ >     |> manyTill anyChar
> │ >     |>> (System.String.Concat >> SpiralSm.trim)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > "#!magic
> │ > 
> │ > 
> │ > a
> │ > 
> │ > 
> │ > "
> │ > |> run content
> │ > |> _assertEqual (
> │ >     Success ("#!magic
> │ > 
> │ > 
> │ > a", (), Position ("", 14, 7, 1))
> │ > )
> │ > 
> │ > ── [ 19.64ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success: "#!magic
> │ > │ 
> │ > │ 
> │ > │ a"
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## Output
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > type Output =
> │ >     | Fs
> │ >     | Md
> │ >     | Spi
> │ >     | Spir
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## Magic
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > type Magic =
> │ >     | Fsharp
> │ >     | Markdown
> │ >     | Spiral of Output
> │ >     | Magic of string
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## kernelOutputs
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline kernelOutputs magic =
> │ >     match magic with
> │ >     | Fsharp -> [[ Fs ]]
> │ >     | Markdown -> [[ Md ]]
> │ >     | Spiral output -> [[ output ]]
> │ >     | _ -> [[]]
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## Block
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > type Block =
> │ >     {
> │ >         magic : Magic
> │ >         content : string
> │ >     }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## block
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let block =
> │ >     pipe2
> │ >         magicCommand
> │ >         content
> │ >         (fun magic content ->
> │ >             let magic, content =
> │ >                 match magic with
> │ >                 | "fsharp" -> Fsharp, content
> │ >                 | "markdown" -> Markdown, content
> │ >                 | "spiral" ->
> │ >                     let output = if content |> 
> SpiralSm.contains "//// real\n" 
> │ > then Spir else Spi
> │ >                     let content =
> │ >                         if output = Spi
> │ >                         then content
> │ >                         else
> │ >                             content
> │ >                             |> SpiralSm.replace "//// 
> real\n\n" ""
> │ >                             |> SpiralSm.replace "//// 
> real\n" ""
> │ >                     Spiral output, content
> │ >                 | magic -> magic |> Magic, content
> │ >             {
> │ >                 magic = magic
> │ >                 content = content
> │ >             })
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > "#!magic
> │ > 
> │ > 
> │ > a
> │ > 
> │ > 
> │ > "
> │ > |> run block
> │ > |> _assertEqual (
> │ >     Success (
> │ >         { magic = Magic "magic"; content = "a" },
> │ >         (),
> │ >         Position ("", 14, 7, 1)
> │ >     )
> │ > )
> │ > 
> │ > ── [ 35.80ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success: { magic = Magic "magic"
> │ > │   content = "a" }
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## blocks
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let blocks =
> │ >     skipMany newline
> │ >     >>. sepEndBy block (skipMany1 newline)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > 
> │ > "#!magic1
> │ > 
> │ > a
> │ > 
> │ > \#!magic2
> │ > 
> │ > b
> │ > 
> │ > "
> │ > |> escapeCell
> │ > |> run blocks
> │ > |> _assertEqual (
> │ >     Success (
> │ >         [[
> │ >             { magic = Magic "magic1"; content = "a" }
> │ >             { magic = Magic "magic2"; content = "b" }
> │ >         ]],
> │ >         (),
> │ >         Position ("", 26, 9, 1)
> │ >     )
> │ > )
> │ > 
> │ > ── [ 39.43ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success: [{ magic = Magic "magic1"
> │ > │    content = "a" }; { magic = Magic 
> "magic2"
> │ > │                       content = "b" }]
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## formatBlock
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline formatBlock output (block : Block) =
> │ >     match output, block with
> │ >     | output, { magic = Markdown; content = content } ->
> │ >         let markdownComment =
> │ >             match output with
> │ >             | Spi | Spir -> "/// "
> │ >             | Fs -> "/// "
> │ >             | _ -> ""
> │ >         content
> │ >         |> SpiralSm.split "\n"
> │ >         |> Array.map (SpiralSm.trim_end [[||]])
> │ >         |> Array.filter (SpiralSm.ends_with " (test)" >> 
> not)
> │ >         |> Array.map (function
> │ >             | "" -> markdownComment
> │ >             | line -> 
> System.Text.RegularExpressions.Regex.Replace (line, 
> │ > "^\\s*", $"$&{markdownComment}")
> │ >         )
> │ >         |> SpiralSm.concat "\n"
> │ >     | Fs, { magic = Fsharp; content = content } ->
> │ >         let trimmedContent = content |> SpiralSm.trim
> │ >         if trimmedContent |> SpiralSm.contains "//// 
> test\n"
> │ >             || trimmedContent |> SpiralSm.contains "//// 
> ignore\n"
> │ >         then ""
> │ >         else
> │ >             content
> │ >             |> SpiralSm.split "\n"
> │ >             |> Array.filter (SpiralSm.trim_start [[||]] >> 
> SpiralSm.starts_with 
> │ > "#r" >> not)
> │ >             |> SpiralSm.concat "\n"
> │ >     | (Spi | Spir), { magic = Spiral output'; content = 
> content } when output' =
> │ > output ->
> │ >         let trimmedContent = content |> SpiralSm.trim
> │ >         if trimmedContent |> SpiralSm.contains "//// 
> test\n"
> │ >             || trimmedContent |> SpiralSm.contains "//// 
> ignore\n"
> │ >         then ""
> │ >         else content
> │ >     | _ -> ""
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > "#!markdown
> │ > 
> │ > 
> │ > a
> │ > 
> │ >     b
> │ > 
> │ > c
> │ > 
> │ > 
> │ > \#!markdown
> │ > 
> │ > 
> │ > c
> │ > 
> │ > 
> │ > \#!fsharp
> │ > 
> │ > 
> │ > let a = 1"
> │ > |> escapeCell
> │ > |> run block
> │ > |> function
> │ >     | Success (block, _, _) -> formatBlock Fs block
> │ >     | Failure (msg, _, _) -> failwith msg
> │ > |> _assertEqual "/// a
> │ > /// 
> │ >     /// b
> │ > /// 
> │ > /// c"
> │ > 
> │ > ── [ 42.16ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ "/// a
> │ > │ /// 
> │ > │     /// b
> │ > │ /// 
> │ > │ /// c"
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## formatBlocks
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline formatBlocks output blocks =
> │ >     blocks
> │ >     |> List.map (fun block ->
> │ >         block, formatBlock output block
> │ >     )
> │ >     |> List.filter (snd >> (<>) "")
> │ >     |> fun list ->
> │ >         (list, (None, [[]]))
> │ >         ||> List.foldBack (fun (block, content) (lastMagic,
> acc) ->
> │ >             let lineBreak =
> │ >                 if block.magic = Markdown && lastMagic <> 
> Some Markdown && 
> │ > lastMagic <> None
> │ >                 then ""
> │ >                 else "\n"
> │ >             Some block.magic, $"{content}{lineBreak}" :: 
> acc
> │ >         )
> │ >     |> snd
> │ >     |> SpiralSm.concat "\n"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > "#!markdown
> │ > 
> │ > 
> │ > a
> │ > 
> │ > b
> │ > 
> │ > 
> │ > \#!markdown
> │ > 
> │ > 
> │ > c
> │ > 
> │ > 
> │ > \#!fsharp
> │ > 
> │ > 
> │ > let a = 1
> │ > 
> │ > \#!markdown
> │ > 
> │ > d (test)
> │ > 
> │ > \#!fsharp
> │ > 
> │ > //// test
> │ > 
> │ > let a = 2
> │ > 
> │ > \#!markdown
> │ > 
> │ > e
> │ > 
> │ > \#!fsharp
> │ > 
> │ > let a = 3"
> │ > |> escapeCell
> │ > |> run blocks
> │ > |> function
> │ >     | Success (blocks, _, _) -> formatBlocks Fs blocks
> │ >     | Failure (msg, _, _) -> failwith msg
> │ > |> _assertEqual "/// a
> │ > /// 
> │ > /// b
> │ > 
> │ > /// c
> │ > let a = 1
> │ > 
> │ > /// e
> │ > let a = 3
> │ > "
> │ > 
> │ > ── [ 59.65ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ "/// a
> │ > │ /// 
> │ > │ /// b
> │ > │ 
> │ > │ /// c
> │ > │ let a = 1
> │ > │ 
> │ > │ /// e
> │ > │ let a = 3
> │ > │ "
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## parse
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline parse output input =
> │ >     match run blocks input with
> │ >     | Success (blocks, _, _) ->
> │ >         let blocks =
> │ >             blocks
> │ >             |> List.filter (fun block ->
> │ >                 block.magic |> kernelOutputs |> 
> List.contains output || 
> │ > block.magic = Markdown
> │ >             )
> │ > 
> │ >         match blocks with
> │ >         | { magic = Markdown; content = content } :: _
> │ >             when output = Fs
> │ >             && content |> SpiralSm.starts_with "# "
> │ >             && content |> SpiralSm.ends_with ")"
> │ >             ->
> │ >             let inline indentBlock (block : Block) =
> │ >                 { block with
> │ >                     content =
> │ >                         block.content
> │ >                         |> SpiralSm.split "\n"
> │ >                         |> Array.fold
> │ >                             (fun (lines, isMultiline) line 
> ->
> │ >                                 let trimmedLine = line |> 
> SpiralSm.trim
> │ >                                 if trimmedLine = ""
> │ >                                 then "" :: lines, 
> isMultiline
> │ >                                 else
> │ >                                     let inline 
> singleQuoteLine () =
> │ >                                         trimmedLine |> 
> Seq.sumBy ((=) '"' >> 
> │ > System.Convert.ToInt32) = 1
> │ >                                         && trimmedLine |> 
> SpiralSm.contains 
> │ > @"'""'" |> not
> │ >                                         && trimmedLine |> 
> SpiralSm.ends_with "{"
> │ > |> not
> │ >                                         && trimmedLine |> 
> SpiralSm.ends_with 
> │ > "{|" |> not
> │ >                                         && trimmedLine |> 
> SpiralSm.starts_with 
> │ > "}" |> not
> │ >                                         && trimmedLine |> 
> SpiralSm.starts_with 
> │ > "|}" |> not
> │ > 
> │ >                                     match isMultiline, 
> trimmedLine |> 
> │ > SpiralSm.split_string [[| $"{q}{q}{q}" |]] with
> │ >                                     | false, [[| _; _ |]] 
> ->
> │ >                                         $"    {line}" :: 
> lines, true
> │ > 
> │ >                                     | true, [[| _; _ |]] ->
> │ >                                         line :: lines, 
> false
> │ > 
> │ >                                     | false, _ when 
> singleQuoteLine () ->
> │ >                                         $"    {line}" :: 
> lines, true
> │ > 
> │ >                                     | false, _ when line |>
> SpiralSm.starts_with
> │ > "#" && block.magic = Fsharp ->
> │ >                                         line :: lines, 
> false
> │ > 
> │ >                                     | false, _ ->
> │ >                                         $"    {line}" :: 
> lines, false
> │ > 
> │ >                                     | true, _ when 
> singleQuoteLine () && line |>
> │ > SpiralSm.starts_with "    " ->
> │ >                                         $"    {line}" :: 
> lines, false
> │ > 
> │ >                                     | true, _ when 
> singleQuoteLine () ->
> │ >                                         line :: lines, 
> false
> │ > 
> │ >                                     | true, _ ->
> │ >                                         line :: lines, true
> │ >                             )
> │ >                             ([[]], false)
> │ >                         |> fst
> │ >                         |> List.rev
> │ >                         |> SpiralSm.concat "\n"
> │ >                 }
> │ > 
> │ >             let moduleName, namespaceName =
> │ >                 System.Text.RegularExpressions.Regex.Match 
> (content, @"# (.*) 
> │ > \((.*)\)$")
> │ >                 |> fun m -> m.Groups.[[1]].Value, 
> m.Groups.[[2]].Value
> │ > 
> │ >             let moduleBlock =
> │ >                 {
> │ >                     magic = Fsharp
> │ >                     content =
> │ >                         $"#if !INTERACTIVE
> │ > namespace {namespaceName}
> │ > #endif
> │ > 
> │ > module {moduleName} ="
> │ >                 }
> │ > 
> │ >             blocks
> │ >             |> List.indexed
> │ >             |> List.fold
> │ >                 (fun blocks (index, block) ->
> │ >                     match index with
> │ >                     | 0 -> blocks
> │ >                     | 1 -> indentBlock block :: moduleBlock
> :: blocks
> │ >                     | _ -> indentBlock block :: blocks
> │ >                 )
> │ >                 [[]]
> │ >             |> List.rev
> │ >         | _ -> blocks
> │ >         |> Result.Ok
> │ >     | Failure (errorMsg, _, _) -> Result.Error errorMsg
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let example1 =
> │ >     $"""#!meta
> │ > 
> │ > 
> {{"kernelInfo":{{"defaultKernelName":"fsharp","items":[[{{"aliases":[[]],"name":
> │ > "fsharp"}},{{"aliases":[[]],"name":"fsharp"}}]]}}}}
> │ > 
> │ > \#!markdown
> │ > 
> │ > # TestModule (TestNamespace)
> │ > 
> │ > \#!fsharp
> │ > 
> │ > \#!import file.dib
> │ > 
> │ > \#!fsharp
> │ > 
> │ > \#r "nuget:Expecto"
> │ > 
> │ > \#!markdown
> │ > 
> │ > ## ParserLibrary
> │ > 
> │ > \#!fsharp
> │ > 
> │ > open System
> │ > 
> │ > \#!markdown
> │ > 
> │ > ## x (test)
> │ > 
> │ > \#!fsharp
> │ > 
> │ > //// ignore
> │ > 
> │ > let x = 1
> │ > 
> │ > \#!spiral
> │ > 
> │ > //// test
> │ > 
> │ > inl x = 1i32
> │ > 
> │ > \#!spiral
> │ > 
> │ > //// real
> │ > 
> │ > inl x = 2i32
> │ > 
> │ > \#!spiral
> │ > 
> │ > inl x = 3i32
> │ > 
> │ > \#!markdown
> │ > 
> │ > ### TextInput
> │ > 
> │ > \#!fsharp
> │ > 
> │ > let str1 = "abc
> │ > def"
> │ > 
> │ > let str2 =
> │ >     "abc\
> │ > def"
> │ > 
> │ > let str3 =
> │ >     $"1{{
> │ >         1
> │ >     }}1"
> │ > 
> │ > let str4 =
> │ >     $"1{{({{|
> │ >         a = 1
> │ >     |}}).a}}1"
> │ > 
> │ > let str5 =
> │ >     "abc \
> │ >         def"
> │ > 
> │ > let x =
> │ >     match '"' with
> │ >     | '"' -> true
> │ >     | _ -> false
> │ > 
> │ > let long1 = {q}{q}{q}a{q}{q}{q}
> │ > 
> │ > let long2 =
> │ >     {q}{q}{q}
> │ > a
> │ > {q}{q}{q}
> │ > 
> │ > \#!fsharp
> │ > 
> │ > type Position =
> │ >     {{
> │ > #if INTERACTIVE
> │ >         line : string
> │ > #else
> │ >         line : int
> │ > #endif
> │ >         column : int
> │ >     }}"""
> │ >     |> escapeCell
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > example1
> │ > |> parse Fs
> │ > |> Result.toOption
> │ > |> Option.get
> │ > |> (formatBlocks Fs)
> │ > |> _assertEqual $"""#if !INTERACTIVE
> │ > namespace TestNamespace
> │ > #endif
> │ > 
> │ > module TestModule =
> │ > 
> │ >     /// ## ParserLibrary
> │ >     open System
> │ > 
> │ >     /// ### TextInput
> │ >     let str1 = "abc
> │ > def"
> │ > 
> │ >     let str2 =
> │ >         "abc\
> │ > def"
> │ > 
> │ >     let str3 =
> │ >         $"1{{
> │ >             1
> │ >         }}1"
> │ > 
> │ >     let str4 =
> │ >         $"1{{({{|
> │ >             a = 1
> │ >         |}}).a}}1"
> │ > 
> │ >     let str5 =
> │ >         "abc \
> │ >             def"
> │ > 
> │ >     let x =
> │ >         match '"' with
> │ >         | '"' -> true
> │ >         | _ -> false
> │ > 
> │ >     let long1 = {q}{q}{q}a{q}{q}{q}
> │ > 
> │ >     let long2 =
> │ >         {q}{q}{q}
> │ > a
> │ > {q}{q}{q}
> │ > 
> │ >     type Position =
> │ >         {{
> │ > #if INTERACTIVE
> │ >             line : string
> │ > #else
> │ >             line : int
> │ > #endif
> │ >             column : int
> │ >         }}
> │ > """
> │ > 
> │ > ── [ 131.35ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ "#if !INTERACTIVE
> │ > │ namespace TestNamespace
> │ > │ #endif
> │ > │ 
> │ > │ module TestModule =
> │ > │ 
> │ > │     /// ## ParserLibrary
> │ > │     open System
> │ > │ 
> │ > │     /// ### TextInput
> │ > │     let str1 = "abc
> │ > │ def"
> │ > │ 
> │ > │     let str2 =
> │ > │         "abc\
> │ > │ def"
> │ > │ 
> │ > │     let str3 =
> │ > │         $"1{
> │ > │             1
> │ > │         }1"
> │ > │ 
> │ > │     let str4 =
> │ > │         $"1{({|
> │ > │             a = 1
> │ > │         |}).a}1"
> │ > │ 
> │ > │     let str5 =
> │ > │         "abc \
> │ > │             def"
> │ > │ 
> │ > │     let x =
> │ > │         match '"' with
> │ > │         | '"' -> true
> │ > │         | _ -> false
> │ > │ 
> │ > │     let long1 = """a"""
> │ > │ 
> │ > │     let long2 =
> │ > │         """
> │ > │ a
> │ > │ """
> │ > │ 
> │ > │     type Position =
> │ > │         {
> │ > │ #if INTERACTIVE
> │ > │             line : string
> │ > │ #else
> │ > │             line : int
> │ > │ #endif
> │ > │             column : int
> │ > │         }
> │ > │ "
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > example1
> │ > |> parse Md
> │ > |> Result.toOption
> │ > |> Option.get
> │ > |> (formatBlocks Md)
> │ > |> _assertEqual "# TestModule (TestNamespace)
> │ > 
> │ > ## ParserLibrary
> │ > 
> │ > ### TextInput
> │ > "
> │ > 
> │ > ── [ 115.10ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ "# TestModule (TestNamespace)
> │ > │ 
> │ > │ ## ParserLibrary
> │ > │ 
> │ > │ ### TextInput
> │ > │ "
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > example1
> │ > |> parse Spi
> │ > |> Result.toOption
> │ > |> Option.get
> │ > |> (formatBlocks Spi)
> │ > |> _assertEqual "/// # TestModule (TestNamespace)
> │ > 
> │ > /// ## ParserLibrary
> │ > inl x = 3i32
> │ > 
> │ > /// ### TextInput
> │ > "
> │ > 
> │ > ── [ 116.99ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ "/// # TestModule (TestNamespace)
> │ > │ 
> │ > │ /// ## ParserLibrary
> │ > │ inl x = 3i32
> │ > │ 
> │ > │ /// ### TextInput
> │ > │ "
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > example1
> │ > |> parse Spir
> │ > |> Result.toOption
> │ > |> Option.get
> │ > |> (formatBlocks Spir)
> │ > |> _assertEqual "/// # TestModule (TestNamespace)
> │ > 
> │ > /// ## ParserLibrary
> │ > inl x = 2i32
> │ > 
> │ > /// ### TextInput
> │ > "
> │ > 
> │ > ── [ 122.83ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ "/// # TestModule (TestNamespace)
> │ > │ 
> │ > │ /// ## ParserLibrary
> │ > │ inl x = 2i32
> │ > │ 
> │ > │ /// ### TextInput
> │ > │ "
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## parseDibCode
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline parseDibCode output file = async {
> │ >     trace Debug
> │ >         (fun () -> "parseDibCode")
> │ >         (fun () -> $"output: {output} / file: {file} / 
> {_locals ()}")
> │ >     let! input = file |> 
> SpiralFileSystem.read_all_text_async
> │ >     match parse output input with
> │ >     | Result.Ok blocks -> return blocks |> formatBlocks 
> output
> │ >     | Result.Error msg -> return failwith msg
> │ > }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## writeDibCode
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline writeDibCode output path = async {
> │ >     trace Debug
> │ >         (fun () -> "writeDibCode")
> │ >         (fun () -> $"output: {output} / path: {path} / 
> {_locals ()}")
> │ >     let! result = parseDibCode output path
> │ >     let pathDir = path |> System.IO.Path.GetDirectoryName
> │ >     let fileNameWithoutExt =
> │ >         match output, path |> 
> System.IO.Path.GetFileNameWithoutExtension with
> │ >         | Spir, fileNameWithoutExt -> 
> $"{fileNameWithoutExt}_real"
> │ >         | _, fileNameWithoutExt -> fileNameWithoutExt
> │ >     let outputPath = pathDir </> 
> $"{fileNameWithoutExt}.{output |> string |> 
> │ > SpiralSm.to_lower}"
> │ >     do! result |> SpiralFileSystem.write_all_text_async 
> outputPath
> │ > }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## Arguments
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > [[<RequireQualifiedAccess>]]
> │ > type Arguments =
> │ >     | [[<Argu.ArguAttributes.MainCommand; 
> Argu.ArguAttributes.Mandatory>]]
> │ >         File of file : string * Output
> │ > 
> │ >     interface Argu.IArgParserTemplate with
> │ >         member s.Usage =
> │ >             match s with
> │ >             | File _ -> nameof File
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
> │ > 
> │ > ── [ 82.87ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ "USAGE: dotnet-repl [--help] <file> 
> <fs|md|spi|spir>
> │ > │ 
> │ > │ FILE:
> │ > │ 
> │ > │     <file> <fs|md|spi|spir>
> │ > │                           File
> │ > │ 
> │ > │ OPTIONS:
> │ > │ 
> │ > │     --help                display this 
> list of options.
> │ > │ "
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## main
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let main args =
> │ >     let argsMap = args |> Runtime.parseArgsMap<Arguments>
> │ > 
> │ >     let files =
> │ >         argsMap.[[nameof Arguments.File]]
> │ >         |> List.map (function
> │ >             | Arguments.File (path, output) -> path, output
> │ >         )
> │ > 
> │ >     files
> │ >     |> List.map (fun (path, output) -> path |> writeDibCode
> output)
> │ >     |> Async.Parallel
> │ >     |> Async.Ignore
> │ >     |> Async.runWithTimeout 30000
> │ >     |> function
> │ >         | Some () -> 0
> │ >         | None -> 1
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let args =
> │ >     System.Environment.GetEnvironmentVariable "ARGS"
> │ >     |> SpiralRuntime.split_args
> │ >     |> Result.toArray
> │ >     |> Array.collect id
> │ > 
> │ > match args with
> │ > | [[||]] -> 0
> │ > | args -> if main args = 0 then 0 else failwith "main 
> failed"
> │ > 
> │ > ── [ 150.56ms - return value ] 
> ─────────────────────────────────────────────────
> │ > │ <div class="dni-plaintext"><pre>0
> │ > │ </pre></div><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 151.38ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 00:00:05 d #1 writeDibCode / 
> output: Fs / path: 
> │ > DibParser.dib
> │ > │ 00:00:05 d #2 parseDibCode / 
> output: Fs / file: 
> │ > DibParser.dib
> │ > │ 
> │ 00:00:22 v #3 runtime.execute_with_options / result / {
> exit_code = 0; std_trace_length = 29954 }
> │ 00:00:22 d #4 runtime.execute_with_options / { 
> file_name = jupyter; arguments = ["nbconvert", 
> "c:/home/git/polyglot/apps/parser/DibParser.dib.ipynb", "--to", "html", 
> "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert 
> "c:/home/git/polyglot/apps/parser/DibParser.dib.ipynb" --to html 
> --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:00:23 v #5 ! [NbConvertApp] Converting notebook 
> c:/home/git/polyglot/apps/parser/DibParser.dib.ipynb to html
> │ 00:00:23 v #6 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.
> py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a 
> hard error in future nbformat versions. You may want to use `normalize()` on 
> your notebooks before validations (available since nbformat 5.1.4). Previous 
> versions of nbformat are fixing this issue transparently, and will stop doing so
> in the future.
> │ 00:00:23 v #7 !   validate(nb)
> │ 00:00:24 v #8 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\
> highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python
> 3
> │ 00:00:24 v #9 !   return _pygments_highlight(
> │ 00:00:25 v #10 ! [NbConvertApp] Writing 378895 bytes to
> c:\home\git\polyglot\apps\parser\DibParser.dib.html
> │ 00:00:25 v #11 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 862 }
> │ 00:00:25 d #12 spiral.run / dib / jupyter nbconvert / {
> exit_code = 0; jupyter_result_length = 862 }
> │ 00:00:25 d #13 runtime.execute_with_options / { 
> file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/parser/DibParser.dib.html'; (Get-Content $path -Raw) 
> -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } 
> | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/parser/DibParser.dib.html'; (Get-Content $path -Raw) 
> -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | 
> Set-Content $path"; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:00:25 v #14 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 0 }
> │ 00:00:25 d #15 spiral.run / dib / html cell ids / { 
> exit_code = 0; pwsh_replace_html_result_length = 0 }
> │ 00:00:25 d #16 spiral.run / dib / { exit_code = 0; 
> result_length = 30875 }
> │ 00:00:00 d #1 persistCodeProject / packages: [Argu; 
> FParsec; FSharp.Control.AsyncSeq; ... ] / modules: 
> [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; 
> deps/spiral/lib/spiral/crypto.fsx; ... ] / name: DibParser / hash:  / 
> code.Length: 10861
> │ 00:00:00 d #2 buildProject / fullPath: 
> c:\home\git\polyglot\target\Builder\DibParser\DibParser.fsproj
> │ 00:00:00 d #1 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   "publish 
> "c:/home/git\polyglot\target/Builder\DibParser\DibParser.fsproj" --configuration
> Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime linux-x64"; 
> options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\DibParser\DibParser.fsproj" --configuration
> Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime linux-x64; 
> cancellation_token = None; environment_variables = [||]; on_line = None; stdin =
> None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\DibParser" } }
> │ 00:00:01 v #2 >   Determining projects to restore...
> │ 00:00:01 v #3 >   Paket version 
> 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ 00:00:01 v #4 >   The last full restore is still up to 
> date. Nothing left to do.
> │ 00:00:01 v #5 >   Total time taken: 0 milliseconds
> │ 00:00:02 v #6 >   Restored 
> c:\home\git\polyglot\target\Builder\DibParser\DibParser.fsproj (in 297 ms).
> │ 00:00:15 v #7 >   DibParser -> 
> c:\home\git\polyglot\target\Builder\DibParser\bin\Release\net9.0\linux-x64\DibPa
> rser.dll
> │ 00:00:16 v #8 >   DibParser -> 
> C:\home\git\polyglot\apps\parser\dist\
> │ 00:00:16 d #9 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 444; options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\DibParser\DibParser.fsproj" --configuration
> Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime linux-x64; 
> cancellation_token = None; environment_variables = [||]; on_line = None; stdin =
> None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\DibParser" } }
> │ 00:00:16 d #10 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   "publish 
> "c:/home/git\polyglot\target/Builder\DibParser\DibParser.fsproj" --configuration
> Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime win-x64"; 
> options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\DibParser\DibParser.fsproj" --configuration
> Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime win-x64; 
> cancellation_token = None; environment_variables = [||]; on_line = None; stdin =
> None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\DibParser" } }
> │ 00:00:17 v #11 >   Determining projects to restore...
> │ 00:00:17 v #12 >   Paket version 
> 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ 00:00:17 v #13 >   The last full restore is still up to 
> date. Nothing left to do.
> │ 00:00:17 v #14 >   Total time taken: 0 milliseconds
> │ 00:00:18 v #15 >   Restored 
> c:\home\git\polyglot\target\Builder\DibParser\DibParser.fsproj (in 296 ms).
> │ 00:00:30 v #16 >   DibParser -> 
> c:\home\git\polyglot\target\Builder\DibParser\bin\Release\net9.0\win-x64\DibPars
> er.dll
> │ 00:00:32 v #17 >   DibParser -> 
> C:\home\git\polyglot\apps\parser\dist\
> │ 00:00:32 d #18 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 442; options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\DibParser\DibParser.fsproj" --configuration
> Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime win-x64; 
> cancellation_token = None; environment_variables = [||]; on_line = None; stdin =
> None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\DibParser" } }
> │ 00:00:00 d #1 spiral.main / { args = 
> Array(MutCell(["dib", "--path", "JsonParser.dib"])) }
> │ 00:00:00 d #2 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", 
> "c:/home/git/polyglot/apps/parser/JsonParser.dib", "--output-path", 
> "c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb"]; options = { command = 
> dotnet repl --exit-after-run --run 
> "c:/home/git/polyglot/apps/parser/JsonParser.dib" --output-path 
> "c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb"; cancellation_token = 
> None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), 
> ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; 
> working_directory = None } }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ # JsonParser (Polyglot)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > open Common
> │ > open Parser
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## JsonParser
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > (*
> │ > // --------------------------------
> │ > JSON spec from http://www.json.org/
> │ > // --------------------------------
> │ > 
> │ > The JSON spec is available at 
> [[json.org]](http://www.json.org/). I'll paraphase
> │ > it here:
> │ > 
> │ > * A `value` can be a `string` or a `number` or a `bool` or 
> `null` or an `object`
> │ > or an `array`.
> │ >   * These structures can be nested.
> │ > * A `string` is a sequence of zero or more Unicode 
> characters, wrapped in double
> │ > quotes, using backslash escapes.
> │ > * A `number` is very much like a C or Java number, except 
> that the octal and 
> │ > hexadecimal formats are not used.
> │ > * A `boolean` is the literal `true` or `false`
> │ > * A `null` is the literal `null`
> │ > * An `object` is an unordered set of name/value pairs.
> │ >   * An object begins with { (left brace) and ends with } 
> (right brace).
> │ >   * Each name is followed by : (colon) and the name/value 
> pairs are separated by
> │ > , (comma).
> │ > * An `array` is an ordered collection of values.
> │ >   * An array begins with [[ (left bracket) and ends with ]]
> (right bracket).
> │ >   * Values are separated by , (comma).
> │ > * Whitespace can be inserted between any pair of tokens.
> │ > *)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let inline parserEqual (expected : ParseResult<'a>) (actual
> : ParseResult<'a * 
> │ > Input>) =
> │ >     match actual, expected with
> │ >     | Success (_actual, _), Success _expected ->
> │ >         printResult actual
> │ >         _actual |> _assertEqual _expected
> │ >     | Failure (l1, e1, p1), Failure (l2, e2, p2) when l1 = 
> l2 && e1 = e2 && p1 =
> │ > p2 ->
> │ >         printResult actual
> │ >     | _ ->
> │ >         printfn $"Actual: {actual}"
> │ >         printfn $"Expected: {expected}"
> │ >         failwith "Parse failed"
> │ >     actual
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### JValue
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > type JValue =
> │ >     | JString of string
> │ >     | JNumber of float
> │ >     | JBool   of bool
> │ >     | JNull
> │ >     | JObject of Map<string, JValue>
> │ >     | JArray  of JValue list
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let jValue, jValueRef = createParserForwardedToRef<JValue> 
> ()
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### jNull
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let jNull =
> │ >     pstring "null"
> │ >     >>% JNull
> │ >     <?> "null"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > jValueRef <|
> │ >     choice
> │ >         [[
> │ >             jNull
> │ >         ]]
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jValue "null"
> │ > |> parserEqual (Success JNull)
> │ > 
> │ > ── [ 179.78ms - return value ] 
> ─────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JNull, { lines = 
> [|&quot;null&quot;|]<br />
> │ > position = { line = 0<br />                               
> column = 4 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JNull, { lines = 
> [|&quot;null&quot;|]<br />  
> │ > position = { line = 0<br />               column = 4 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > 
> class="dni-code-hint"><code>JNull</code></span></summary><div><table><thead><tr>
> │ > 
> </tr></thead><tbody></tbody></table></div></details></td></tr><tr><td>Item2</td>
> │ > <td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ 
> │ > lines = [|&quot;null&quot;|]<br />  position = { line = 
> 0<br />               
> │ > column = 4 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ null 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 4 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>4
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 190.78ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ JNull
> │ > │ JNull
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jNull "nulp"
> │ > |> parserEqual (
> │ >     Failure (
> │ >         "null",
> │ >         "Unexpected 'p'",
> │ >         { currentLine = "nulp"; line = 0; column = 3 }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 45.08ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Failure (&quot;null&quot;, 
> &quot;Unexpected 
> │ > &#39;p&#39;&quot;, { currentLine = &quot;nulp&quot;<br />
> │ > line = 0<br />                                     column =
> 3 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><div class="dni-plaintext"><pre>&quot;null&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>Item2</td><td><div 
> │ > class="dni-plaintext"><pre>&quot;Unexpected 
> &#39;p&#39;&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>Item3</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ currentLine = 
> │ > &quot;nulp&quot;<br />  line = 0<br />  column = 3 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr
> │ > entLine</td><td><div 
> class="dni-plaintext"><pre>&quot;nulp&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>line</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>3
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > </div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 46.51ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Line:0 Col:3 Error parsing null
> │ > │ nulp
> │ > │    ^Unexpected 'p'
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### jBool
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let jBool =
> │ >     let jtrue =
> │ >         pstring "true"
> │ >         >>% JBool true
> │ >     let jfalse =
> │ >         pstring "false"
> │ >         >>% JBool false
> │ > 
> │ >     jtrue <|> jfalse
> │ >     <?> "bool"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > jValueRef <|
> │ >     choice
> │ >         [[
> │ >             jNull
> │ >             jBool
> │ >         ]]
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jBool "true"
> │ > |> parserEqual (Success (JBool true))
> │ > 
> │ > ── [ 43.95ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JBool true, { lines = 
> │ > [|&quot;true&quot;|]<br />                       position =
> { line = 0<br />
> │ > column = 4 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JBool true, { lines = 
> [|&quot;true&quot;|]<br />  
> │ > position = { line = 0<br />               column = 4 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JBool 
> │ > 
> true</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>I
> │ > tem</td><td><div class="dni-plaintext"><pre>true
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;true&quot;|]<br />  position = { line = 
> 0<br />               
> │ > column = 4 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ true 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 4 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>4
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 45.74ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JBool true
> │ > │ JBool true
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jBool "false"
> │ > |> parserEqual (Success (JBool false))
> │ > 
> │ > ── [ 36.45ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JBool false, { lines =│ > [|&quot;false&quot;|]<br />                        position
> = { line = 0<br />
> │ > column = 5 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JBool false, { lines = 
> [|&quot;false&quot;|]<br />
> │ > position = { line = 0<br />               column = 5 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JBool 
> │ > 
> false</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> │ > Item</td><td><div class="dni-plaintext"><pre>false
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;false&quot;|]<br />  position = { line = 
> 0<br />               
> │ > column = 5 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ false 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 5 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>5
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 38.41ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JBool false
> │ > │ JBool false
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jBool "truX"
> │ > |> parserEqual (
> │ >     Failure (
> │ >         "bool",
> │ >         "Unexpected 't'",
> │ >         { currentLine = "truX"; line = 0; column = 0 }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 35.80ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Failure (&quot;bool&quot;, 
> &quot;Unexpected 
> │ > &#39;t&#39;&quot;, { currentLine = &quot;truX&quot;<br />
> │ > line = 0<br />                                     column =
> 0 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><div class="dni-plaintext"><pre>&quot;bool&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>Item2</td><td><div 
> │ > class="dni-plaintext"><pre>&quot;Unexpected 
> &#39;t&#39;&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>Item3</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ currentLine = 
> │ > &quot;truX&quot;<br />  line = 0<br />  column = 0 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr
> │ > entLine</td><td><div 
> class="dni-plaintext"><pre>&quot;truX&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>line</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > </div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 37.23ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Line:0 Col:0 Error parsing bool
> │ > │ truX
> │ > │ ^Unexpected 't'
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### jUnescapedChar
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let jUnescapedChar =
> │ >     satisfy (fun ch -> ch <> '\\' && ch <> '\"') "char"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jUnescapedChar "a"
> │ > |> parserEqual (Success 'a')
> │ > 
> │ > ── [ 49.67ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (&#39;a&#39;, { lines =
> [|&quot;a&quot;|]<br
> │ > />                position = { line = 0<br />
> column
> │ > = 1 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(a, { lines = 
> [|&quot;a&quot;|]<br />  position = { 
> │ > line = 0<br />               column = 1 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><div class="dni-plaintext"><pre>&#39;a&#39;
> │ > │ 
> </pre></div></td></tr><tr><td>Item2</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ lines = 
> │ > [|&quot;a&quot;|]<br />  position = { line = 0<br />
> column = 1 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ a 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 1 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>1
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 51.37ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ 'a'
> │ > │ 'a'
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jUnescapedChar "\\"
> │ > |> parserEqual (
> │ >     Failure (
> │ >         "char",
> │ >         "Unexpected '\\'",
> │ >         { currentLine = "\\"; line = 0; column = 0 }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 36.89ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Failure (&quot;char&quot;, 
> &quot;Unexpected 
> │ > &#39;\&#39;&quot;, { currentLine = &quot;\&quot;<br />
> │ > line = 0<br />                                     column =
> 0 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><div class="dni-plaintext"><pre>&quot;char&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>Item2</td><td><div 
> │ > class="dni-plaintext"><pre>&quot;Unexpected 
> &#39;\&#39;&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>Item3</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ currentLine = 
> │ > &quot;\&quot;<br />  line = 0<br />  column = 0 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr
> │ > entLine</td><td><div 
> class="dni-plaintext"><pre>&quot;\&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>line</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > </div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 38.32ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Line:0 Col:0 Error parsing char
> │ > │ \
> │ > │ ^Unexpected '\'
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### jEscapedChar
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let jEscapedChar =
> │ >     [[
> │ >         ("\\\"",'\"')
> │ >         ("\\\\",'\\')
> │ >         ("\\/",'/')
> │ >         ("\\b",'\b')
> │ >         ("\\f",'\f')
> │ >         ("\\n",'\n')
> │ >         ("\\r",'\r')
> │ >         ("\\t",'\t')
> │ >     ]]
> │ >     |> List.map (fun (toMatch, result) ->
> │ >         pstring toMatch >>% result
> │ >     )
> │ >     |> choice
> │ >     <?> "escaped char"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jEscapedChar "\\\\"
> │ > |> parserEqual (Success '\\')
> │ > 
> │ > ── [ 35.67ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (&#39;\\&#39;, { lines 
> = 
> │ > [|&quot;\\&quot;|]<br />                 position = { line 
> = 0<br />
> │ > column = 2 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(\, { lines = 
> [|&quot;\\&quot;|]<br />  position = {
> │ > line = 0<br />               column = 2 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><div class="dni-plaintext"><pre>&#39;\\&#39;
> │ > │ 
> </pre></div></td></tr><tr><td>Item2</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ lines = 
> │ > [|&quot;\\&quot;|]<br />  position = { line = 0<br />
> column = 2 }
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ \\ 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 2 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>2
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 37.99ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ '\\'
> │ > │ '\\'
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jEscapedChar "\\t"
> │ > |> parserEqual (Success '\t')
> │ > 
> │ > ── [ 32.02ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (&#39;\009&#39;, { 
> lines = 
> │ > [|&quot;\t&quot;|]<br />                   position = { 
> line = 0<br />
> │ > column = 2 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(	, { lines = 
> [|&quot;\t&quot;|]<br />  position = { 
> │ > line = 0<br />               column = 2 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><div class="dni-plaintext"><pre>&#39;\009&#39;
> │ > │ 
> </pre></div></td></tr><tr><td>Item2</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ lines = 
> │ > [|&quot;\t&quot;|]<br />  position = { line = 0<br />
> column = 2 }
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ \t 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 2 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>2
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 33.78ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ '\009'
> │ > │ '\009'
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jEscapedChar @"\\"
> │ > |> parserEqual (Success '\\')
> │ > 
> │ > ── [ 32.05ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (&#39;\\&#39;, { lines 
> = 
> │ > [|&quot;\\&quot;|]<br />                 position = { line 
> = 0<br />
> │ > column = 2 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(\, { lines = 
> [|&quot;\\&quot;|]<br />  position = {
> │ > line = 0<br />               column = 2 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><div class="dni-plaintext"><pre>&#39;\\&#39;
> │ > │ 
> </pre></div></td></tr><tr><td>Item2</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ lines = 
> │ > [|&quot;\\&quot;|]<br />  position = { line = 0<br />
> column = 2 }
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ \\ 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 2 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>2
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 33.80ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ '\\'
> │ > │ '\\'
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jEscapedChar @"\n"
> │ > |> parserEqual (Success '\n')
> │ > 
> │ > ── [ 30.64ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (&#39;\010&#39;, { 
> lines = [|&quot;<br 
> │ > />&quot;|]<br />                   position = { line = 0<br
> />
> │ > column = 2 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(<br />, { lines = [|&quot;<br 
> />&quot;|]<br />  
> │ > position = { line = 0<br />               column = 2 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><div class="dni-plaintext"><pre>&#39;\010&#39;
> │ > │ 
> </pre></div></td></tr><tr><td>Item2</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ lines = 
> │ > [|&quot;<br />&quot;|]<br />  position = { line = 0<br />
> column =
> │ > 2 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ <br /> 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 2 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>2
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 32.25ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ '\010'
> │ > │ '\010'
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jEscapedChar "a"
> │ > |> parserEqual (
> │ >     Failure (
> │ >         "escaped char",
> │ >         "Unexpected 'a'",
> │ >         { currentLine = "a"; line = 0; column = 0 }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 32.62ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Failure (&quot;escaped 
> char&quot;, &quot;Unexpected 
> │ > &#39;a&#39;&quot;, { currentLine = &quot;a&quot;<br />
> │ > line = 0<br />                                             
> column = 0 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><div class="dni-plaintext"><pre>&quot;escaped 
> char&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>Item2</td><td><div 
> │ > class="dni-plaintext"><pre>&quot;Unexpected 
> &#39;a&#39;&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>Item3</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ currentLine = 
> │ > &quot;a&quot;<br />  line = 0<br />  column = 0 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr
> │ > entLine</td><td><div 
> class="dni-plaintext"><pre>&quot;a&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>line</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > </div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 34.11ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Line:0 Col:0 Error parsing escaped char
> │ > │ a
> │ > │ ^Unexpected 'a'
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### jUnicodeChar
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let jUnicodeChar =
> │ >     let backslash = pchar '\\'
> │ >     let uChar = pchar 'u'
> │ >     let hexdigit = anyOf ([[ '0' .. '9' ]] @ [[ 'A' .. 'F' 
> ]] @ [[ 'a' .. 'f' 
> │ > ]])
> │ >     let fourHexDigits = hexdigit .>>. hexdigit .>>. 
> hexdigit .>>. hexdigit
> │ > 
> │ >     let inline convertToChar (((h1, h2), h3), h4) =
> │ >         let str = $"%c{h1}%c{h2}%c{h3}%c{h4}"
> │ >         Int32.Parse (str, 
> Globalization.NumberStyles.HexNumber) |> char
> │ > 
> │ >     backslash >>. uChar >>. fourHexDigits
> │ >     |>> convertToChar
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jUnicodeChar "\\u263A"
> │ > |> parserEqual (Success '☺')
> │ > 
> │ > ── [ 44.24ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (&#39;☺&#39;, { lines =│ > [|&quot;\u263A&quot;|]<br />                position = { 
> line = 0<br />
> │ > column = 6 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(☺, { lines = 
> [|&quot;\u263A&quot;|]<br />  position
> │ > = { line = 0<br />               column = 6 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><div class="dni-plaintext"><pre>&#39;☺&#39;
> │ > │ 
> </pre></div></td></tr><tr><td>Item2</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ lines = 
> │ > [|&quot;\u263A&quot;|]<br />  position = { line = 0<br />
> column =
> │ > 6 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ \u263A 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 6 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>6
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 45.98ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ '☺'
> │ > │ '☺'
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### jString
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let quotedString =
> │ >     let quote = pchar '\"' <?> "quote"
> │ >     let jchar = jUnescapedChar <|> jEscapedChar <|> 
> jUnicodeChar
> │ > 
> │ >     quote >>. manyChars jchar .>> quote
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let jString =
> │ >     quotedString
> │ >     |>> JString
> │ >     <?> "quoted string"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > jValueRef <|
> │ >     choice
> │ >         [[
> │ >             jNull
> │ >             jBool
> │ >             jString
> │ >         ]]
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jString "\"\""
> │ > |> parserEqual (Success (JString ""))
> │ > 
> │ > ── [ 44.10ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JString &quot;&quot;, 
> { lines = 
> │ > [|&quot;&quot;&quot;&quot;|]<br />                       
> position = { line = 
> │ > 0<br />                                    column = 2 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JString &quot;&quot;, { lines 
> = 
> │ > [|&quot;&quot;&quot;&quot;|]<br />  position = { line = 
> 0<br />               
> │ > column = 2 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JString 
> │ > 
> &quot;&quot;</code></span></summary><div><table><thead><tr></tr></thead><tbody><
> │ > tr><td>Item</td><td><div 
> class="dni-plaintext"><pre>&quot;&quot;
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;&quot;&quot;&quot;|]<br />  position = { 
> line = 0<br />
> │ > column = 2 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ &quot;&quot; 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 2 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>2
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 45.89ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JString ""
> │ > │ JString ""
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jString "\"a\""
> │ > |> parserEqual (Success (JString "a"))
> │ > 
> │ > ── [ 32.94ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JString &quot;a&quot;,
> { lines = 
> │ > [|&quot;&quot;a&quot;&quot;|]<br />                        
> position = { line = 
> │ > 0<br />                                     column = 3 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JString &quot;a&quot;, { lines
> = 
> │ > [|&quot;&quot;a&quot;&quot;|]<br />  position = { line = 
> 0<br />               
> │ > column = 3 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JString 
> │ > 
> &quot;a&quot;</code></span></summary><div><table><thead><tr></tr></thead><tbody>
> │ > <tr><td>Item</td><td><div 
> class="dni-plaintext"><pre>&quot;a&quot;
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;&quot;a&quot;&quot;|]<br />  position = { 
> line = 0<br />
> │ > column = 3 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ &quot;a&quot; 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 3 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>3
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 34.78ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JString "a"
> │ > │ JString "a"
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jString "\"ab\""
> │ > |> parserEqual (Success (JString "ab"))
> │ > 
> │ > ── [ 32.89ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JString 
> &quot;ab&quot;, { lines = 
> │ > [|&quot;&quot;ab&quot;&quot;|]<br />
> position = { line =
> │ > 0<br />                                      column = 4 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JString &quot;ab&quot;, { 
> lines = 
> │ > [|&quot;&quot;ab&quot;&quot;|]<br />  position = { line = 
> 0<br />               
> │ > column = 4 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JString 
> │ > 
> &quot;ab&quot;</code></span></summary><div><table><thead><tr></tr></thead><tbody
> │ > ><tr><td>Item</td><td><div 
> class="dni-plaintext"><pre>&quot;ab&quot;
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;&quot;ab&quot;&quot;|]<br />  position = { 
> line = 0<br />
> │ > column = 4 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ &quot;ab&quot; 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 4 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>4
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 34.66ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JString "ab"
> │ > │ JString "ab"
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jString "\"ab\\tde\""
> │ > |> parserEqual (Success (JString "ab\tde"))
> │ > 
> │ > ── [ 34.83ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JString &quot;ab	
> de&quot;, { lines = 
> │ > [|&quot;&quot;ab\tde&quot;&quot;|]<br />
> position = {
> │ > line = 0<br />                                         
> column = 8 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JString &quot;ab	de&quot;, { 
> lines = 
> │ > [|&quot;&quot;ab\tde&quot;&quot;|]<br />  position = { line
> = 0<br />
> │ > column = 8 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JString &quot;ab	
> │ > 
> de&quot;</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><
> │ > td>Item</td><td><div class="dni-plaintext"><pre>&quot;ab	
> de&quot;
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;&quot;ab\tde&quot;&quot;|]<br />  position 
> = { line = 0<br />
> │ > column = 8 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ 
> &quot;ab\tde&quot; 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 8 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>8
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 36.58ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JString "ab	de"
> │ > │ JString "ab	de"
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jString "\"ab\\u263Ade\""
> │ > |> parserEqual (Success (JString "ab☺de"))
> │ > 
> │ > ── [ 36.85ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JString 
> &quot;ab☺de&quot;, { lines = 
> │ > [|&quot;&quot;ab\u263Ade&quot;&quot;|]<br />
> position
> │ > = { line = 0<br />                                         
> column = 12 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JString &quot;ab☺de&quot;, { 
> lines = 
> │ > [|&quot;&quot;ab\u263Ade&quot;&quot;|]<br />  position = { 
> line = 0<br />
> │ > column = 12 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JString 
> │ > 
> &quot;ab☺de&quot;</code></span></summary><div><table><thead><tr></tr></thead><tb
> │ > ody><tr><td>Item</td><td><div 
> class="dni-plaintext"><pre>&quot;ab☺de&quot;
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;&quot;ab\u263Ade&quot;&quot;|]<br />  
> position = { line = 0<br 
> │ > />               column = 12 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ 
> &quot;ab\u263Ade&quot; 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 12 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>12
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 38.55ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JString "ab☺de"
> │ > │ JString "ab☺de"
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### jNumber
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let jNumber =
> │ >     let optSign = opt (pchar '-')
> │ > 
> │ >     let zero = pstring "0"
> │ > 
> │ >     let digitOneNine =
> │ >         satisfy (fun ch -> Char.IsDigit ch && ch <> '0') 
> "1-9"
> │ > 
> │ >     let digit =
> │ >         satisfy Char.IsDigit "digit"
> │ > 
> │ >     let point = pchar '.'
> │ > 
> │ >     let e = pchar 'e' <|> pchar 'E'
> │ > 
> │ >     let optPlusMinus = opt (pchar '-' <|> pchar '+')
> │ > 
> │ >     let nonZeroInt =
> │ >         digitOneNine .>>. manyChars digit
> │ >         |>> fun (first, rest) -> string first + rest
> │ > 
> │ >     let intPart = zero <|> nonZeroInt
> │ > 
> │ >     let fractionPart = point >>. manyChars1 digit
> │ > 
> │ >     let exponentPart = e >>. optPlusMinus .>>. manyChars1 
> digit
> │ > 
> │ >     let inline (|>?) opt f =
> │ >         match opt with
> │ >         | None -> ""
> │ >         | Some x -> f x
> │ > 
> │ >     let inline convertToJNumber (((optSign, intPart), 
> fractionPart), expPart) =
> │ >         let signStr =
> │ >             optSign
> │ >             |>? string
> │ > 
> │ >         let fractionPartStr =
> │ >             fractionPart
> │ >             |>? (fun digits -> "." + digits)
> │ > 
> │ >         let expPartStr =
> │ >             expPart
> │ >             |>? fun (optSign, digits) ->
> │ >                 let sign = optSign |>? string
> │ >                 "e" + sign + digits
> │ > 
> │ >         (signStr + intPart + fractionPartStr + expPartStr)
> │ >         |> float
> │ >         |> JNumber
> │ > 
> │ >     optSign .>>. intPart .>>. opt fractionPart .>>. opt 
> exponentPart
> │ >     |>> convertToJNumber
> │ >     <?> "number"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > jValueRef <|
> │ >     choice
> │ >         [[
> │ >             jNull
> │ >             jBool
> │ >             jString
> │ >             jNumber
> │ >         ]]
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jNumber "123"
> │ > |> parserEqual (Success (JNumber 123.0))
> │ > 
> │ > ── [ 54.87ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JNumber 123.0, { lines
> = 
> │ > [|&quot;123&quot;|]<br />                          position
> = { line = 0<br />
> │ > column = 3 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JNumber 123.0, { lines = 
> [|&quot;123&quot;|]<br />
> │ > position = { line = 0<br />               column = 3 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JNumber 
> │ > 
> 123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> │ > Item</td><td><div class="dni-plaintext"><pre>123.0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;123&quot;|]<br />  position = { line = 0<br
> />               
> │ > column = 3 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ 123 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 3 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>3
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 56.49ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JNumber 123.0
> │ > │ JNumber 123.0
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jNumber "-123"
> │ > |> parserEqual (Success (JNumber -123.0))
> │ > 
> │ > ── [ 36.41ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JNumber -123.0, { 
> lines = 
> │ > [|&quot;-123&quot;|]<br />                           
> position = { line = 0<br />
> │ > column = 4 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JNumber -123.0, { lines = 
> [|&quot;-123&quot;|]<br 
> │ > />  position = { line = 0<br />               column = 4 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JNumber 
> │ > 
> -123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td
> │ > >Item</td><td><div class="dni-plaintext"><pre>-123.0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;-123&quot;|]<br />  position = { line = 
> 0<br />               
> │ > column = 4 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ -123 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 4 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>4
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 37.99ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JNumber -123.0
> │ > │ JNumber -123.0
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jNumber "123.4"
> │ > |> parserEqual (Success (JNumber 123.4))
> │ > 
> │ > ── [ 36.34ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JNumber 123.4, { lines
> = 
> │ > [|&quot;123.4&quot;|]<br />                          
> position = { line = 0<br />
> │ > column = 5 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JNumber 123.4, { lines = 
> [|&quot;123.4&quot;|]<br 
> │ > />  position = { line = 0<br />               column = 5 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JNumber 
> │ > 
> 123.4</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> │ > Item</td><td><div class="dni-plaintext"><pre>123.4
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;123.4&quot;|]<br />  position = { line = 
> 0<br />               
> │ > column = 5 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ 123.4 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 5 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>5
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 38.02ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JNumber 123.4
> │ > │ JNumber 123.4
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jNumber "-123."
> │ > |> parserEqual (Success (JNumber -123.0))
> │ > 
> │ > ── [ 32.62ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JNumber -123.0, { 
> lines = 
> │ > [|&quot;-123.&quot;|]<br />                           
> position = { line = 0<br 
> │ > />                                        column = 4 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JNumber -123.0, { lines = 
> [|&quot;-123.&quot;|]<br 
> │ > />  position = { line = 0<br />               column = 4 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JNumber 
> │ > 
> -123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td
> │ > >Item</td><td><div class="dni-plaintext"><pre>-123.0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;-123.&quot;|]<br />  position = { line = 
> 0<br />               
> │ > column = 4 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ -123. 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 4 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>4
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 34.20ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JNumber -123.0
> │ > │ JNumber -123.0
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jNumber "00.1"
> │ > |> parserEqual (Success (JNumber 0.0))
> │ > 
> │ > ── [ 33.76ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JNumber 0.0, { lines =│ > [|&quot;00.1&quot;|]<br />                        position 
> = { line = 0<br />
> │ > column = 1 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JNumber 0.0, { lines = 
> [|&quot;00.1&quot;|]<br />  
> │ > position = { line = 0<br />               column = 1 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JNumber 
> │ > 
> 0.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It
> │ > em</td><td><div class="dni-plaintext"><pre>0.0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;00.1&quot;|]<br />  position = { line = 
> 0<br />               
> │ > column = 1 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ 00.1 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 0<br />
> │ > column = 1 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>1
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 35.36ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JNumber 0.0
> │ > │ JNumber 0.0
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let jNumber_ = jNumber .>> spaces1
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jNumber_ "123"
> │ > |> parserEqual (Success (JNumber 123.0))
> │ > 
> │ > ── [ 37.58ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JNumber 123.0, { lines
> = 
> │ > [|&quot;123&quot;|]<br />                          position
> = { line = 1<br />
> │ > column = 0 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JNumber 123.0, { lines = 
> [|&quot;123&quot;|]<br />
> │ > position = { line = 1<br />               column = 0 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JNumber 
> │ > 
> 123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> │ > Item</td><td><div class="dni-plaintext"><pre>123.0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;123&quot;|]<br />  position = { line = 1<br
> />               
> │ > column = 0 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ 123 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 1<br />
> │ > column = 0 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>1
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 39.22ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JNumber 123.0
> │ > │ JNumber 123.0
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jNumber_ "-123"
> │ > |> parserEqual (Success (JNumber -123.0))
> │ > 
> │ > ── [ 36.77ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JNumber -123.0, { 
> lines = 
> │ > [|&quot;-123&quot;|]<br />                           
> position = { line = 1<br />
> │ > column = 0 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JNumber -123.0, { lines = 
> [|&quot;-123&quot;|]<br 
> │ > />  position = { line = 1<br />               column = 0 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JNumber 
> │ > 
> -123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td
> │ > >Item</td><td><div class="dni-plaintext"><pre>-123.0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;-123&quot;|]<br />  position = { line = 
> 1<br />               
> │ > column = 0 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ -123 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 1<br />
> │ > column = 0 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>1
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 38.39ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JNumber -123.0
> │ > │ JNumber -123.0
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jNumber_ "-123."
> │ > |> parserEqual (
> │ >     Failure (
> │ >         "number andThen many1 whitespace",
> │ >         "Unexpected '.'",
> │ >         { currentLine = "-123."; line = 0; column = 4 }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 30.89ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Failure<br />  (&quot;number 
> andThen many1 
> │ > whitespace&quot;, &quot;Unexpected &#39;.&#39;&quot;, { 
> currentLine = 
> │ > &quot;-123.&quot;<br />
> │ > line = 0<br />
> column =
> │ > 4 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><div class="dni-plaintext"><pre>&quot;number 
> andThen many1 
> │ > whitespace&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>Item2</td><td><div 
> │ > class="dni-plaintext"><pre>&quot;Unexpected 
> &#39;.&#39;&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>Item3</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ currentLine = 
> │ > &quot;-123.&quot;<br />  line = 0<br />  column = 4 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr
> │ > entLine</td><td><div 
> class="dni-plaintext"><pre>&quot;-123.&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>line</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>4
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > </div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 32.14ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Line:0 Col:4 Error parsing number 
> andThen many1 whitespace
> │ > │ -123.
> │ > │     ^Unexpected '.'
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jNumber_ "123.4"
> │ > |> parserEqual (Success (JNumber 123.4))
> │ > 
> │ > ── [ 36.88ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JNumber 123.4, { lines
> = 
> │ > [|&quot;123.4&quot;|]<br />                          
> position = { line = 1<br />
> │ > column = 0 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JNumber 123.4, { lines = 
> [|&quot;123.4&quot;|]<br 
> │ > />  position = { line = 1<br />               column = 0 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JNumber 
> │ > 
> 123.4</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> │ > Item</td><td><div class="dni-plaintext"><pre>123.4
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;123.4&quot;|]<br />  position = { line = 
> 1<br />               
> │ > column = 0 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ 123.4 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 1<br />
> │ > column = 0 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>1
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 38.41ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JNumber 123.4
> │ > │ JNumber 123.4
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jNumber_ "00.4"
> │ > |> parserEqual (
> │ >     Failure (
> │ >         "number andThen many1 whitespace",
> │ >         "Unexpected '0'",
> │ >         { currentLine = "00.4"; line = 0; column = 1 }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 31.26ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Failure<br />  (&quot;number 
> andThen many1 
> │ > whitespace&quot;, &quot;Unexpected &#39;0&#39;&quot;, { 
> currentLine = 
> │ > &quot;00.4&quot;<br />│ > line = 0<br />
> column =
> │ > 1 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><div class="dni-plaintext"><pre>&quot;number 
> andThen many1 
> │ > whitespace&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>Item2</td><td><div 
> │ > class="dni-plaintext"><pre>&quot;Unexpected 
> &#39;0&#39;&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>Item3</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ currentLine = 
> │ > &quot;00.4&quot;<br />  line = 0<br />  column = 1 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr
> │ > entLine</td><td><div 
> class="dni-plaintext"><pre>&quot;00.4&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>line</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>1
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > </div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 32.58ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Line:0 Col:1 Error parsing number 
> andThen many1 whitespace
> │ > │ 00.4
> │ > │  ^Unexpected '0'
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jNumber_ "123e4"
> │ > |> parserEqual (Success (JNumber 1230000.0))
> │ > 
> │ > ── [ 37.96ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JNumber 1230000.0, { 
> lines = 
> │ > [|&quot;123e4&quot;|]<br />                              
> position = { line = 
> │ > 1<br />                                           column = 
> 0 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JNumber 1230000.0, { lines = 
> │ > [|&quot;123e4&quot;|]<br />  position = { line = 1<br />
> column = 
> │ > 0 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JNumber 
> │ > 
> 1230000.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr>
> │ > <td>Item</td><td><div class="dni-plaintext"><pre>1230000.0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;123e4&quot;|]<br />  position = { line = 
> 1<br />               
> │ > column = 0 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ 123e4 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 1<br />
> │ > column = 0 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>1
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 39.57ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JNumber 1230000.0
> │ > │ JNumber 1230000.0
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jNumber_ "123.4e5"
> │ > |> parserEqual (Success (JNumber 12340000.0))
> │ > 
> │ > ── [ 36.89ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JNumber 12340000.0, { 
> lines = 
> │ > [|&quot;123.4e5&quot;|]<br />
> position = { line = 
> │ > 1<br />                                            column =
> 0 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JNumber 12340000.0, { lines = 
> │ > [|&quot;123.4e5&quot;|]<br />  position = { line = 1<br />
> column 
> │ > = 0 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JNumber 
> │ > 
> 12340000.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr
> │ > ><td>Item</td><td><div 
> class="dni-plaintext"><pre>12340000.0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;123.4e5&quot;|]<br />  position = { line = 
> 1<br />
> │ > column = 0 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ 123.4e5 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 1<br />
> │ > column = 0 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>1
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 38.54ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JNumber 12340000.0
> │ > │ JNumber 12340000.0
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jNumber_ "123.4e-5"
> │ > |> parserEqual (Success (JNumber 0.001234))
> │ > 
> │ > ── [ 38.52ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JNumber 0.001234, { 
> lines = 
> │ > [|&quot;123.4e-5&quot;|]<br />                             
> position = { line = 
> │ > 1<br />                                          column = 0
> } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JNumber 0.001234, { lines = 
> │ > [|&quot;123.4e-5&quot;|]<br />  position = { line = 1<br />
> column
> │ > = 0 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JNumber 
> │ > 
> 0.001234</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><
> │ > td>Item</td><td><div class="dni-plaintext"><pre>0.001234
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t
> │ > d><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{
> │ > lines = [|&quot;123.4e-5&quot;|]<br />  position = { line =
> 1<br />
> │ > column = 0 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ 123.4e-5 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 1<br />
> │ > column = 0 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>1
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 40.16ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JNumber 0.001234
> │ > │ JNumber 0.001234
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### jArray
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let jArray =
> │ >     let left = pchar '[[' .>> spaces
> │ >     let right = pchar ']]' .>> spaces
> │ >     let comma = pchar ',' .>> spaces
> │ >     let value = jValue .>> spaces
> │ > 
> │ >     let values = sepBy value comma
> │ > 
> │ >     between left values right
> │ >     |>> JArray
> │ >     <?> "array"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > jValueRef <|
> │ >     choice
> │ >         [[
> │ >             jNull
> │ >             jBool
> │ >             jString
> │ >             jNumber
> │ >             jArray
> │ >         ]]
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jArray "[[ 1, 2 ]]"
> │ > |> parserEqual (Success (JArray [[ JNumber 1.0; JNumber 2.0
> ]]))
> │ > 
> │ > ── [ 74.19ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success (JArray [JNumber 1.0; 
> JNumber 2.0], { lines 
> │ > = [|&quot;[ 1, 2 ]&quot;|]<br />│ > position = { line = 1<br />
> │ > column = 0 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JArray [JNumber 1.0; JNumber 
> 2.0], { lines = 
> │ > [|&quot;[ 1, 2 ]&quot;|]<br />  position = { line = 1<br />
> column
> │ > = 0 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JArray [JNumber 1.0; JNumber 
> │ > 
> 2.0]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>I
> │ > 
> tem</td><td><table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><t
> │ > body><tr><td>0</td><td><details 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JNumber 
> │ > 
> 1.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It
> │ > em</td><td><div class="dni-plaintext"><pre>1.0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>1</td><t
> │ > d><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JNumber 
> │ > 
> 2.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It
> │ > em</td><td><div class="dni-plaintext"><pre>2.0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </td></tr></tbody></table></div></details></td></tr><tr><td>Item2</td><td><detai
> │ > ls class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ lines = 
> │ > [|&quot;[ 1, 2 ]&quot;|]<br />  position = { line = 1<br />
> column
> │ > = 0 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ [ 1, 2 ] 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 1<br />
> │ > column = 0 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>1
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 76.06ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JArray [JNumber 1.0; JNumber 2.0]
> │ > │ JArray [JNumber 1.0; JNumber 2.0]
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jArray "[[ 1, 2, ]]"
> │ > |> parserEqual (
> │ >     Failure (
> │ >         "array",
> │ >         "Unexpected ','",
> │ >         { currentLine = "[[ 1, 2, ]]"; line = 0; column = 6
> }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 36.17ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Failure (&quot;array&quot;, 
> &quot;Unexpected 
> │ > &#39;,&#39;&quot;, { currentLine = &quot;[ 1, 2, ]&quot;<br
> />
> │ > line = 0<br />                                      column 
> = 6 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><div 
> class="dni-plaintext"><pre>&quot;array&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>Item2</td><td><div 
> │ > class="dni-plaintext"><pre>&quot;Unexpected 
> &#39;,&#39;&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>Item3</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ currentLine = 
> │ > &quot;[ 1, 2, ]&quot;<br />  line = 0<br />  column = 6 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr
> │ > entLine</td><td><div class="dni-plaintext"><pre>&quot;[ 1, 
> 2, ]&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>line</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>6
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > </div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 37.40ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Line:0 Col:6 Error parsing array
> │ > │ [ 1, 2, ]
> │ > │       ^Unexpected ','
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### jObject
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let jObject =
> │ >     let left = spaces >>. pchar '{' .>> spaces
> │ >     let right = pchar '}' .>> spaces
> │ >     let colon = pchar ':' .>> spaces
> │ >     let comma = pchar ',' .>> spaces
> │ >     let key = quotedString .>> spaces
> │ >     let value = jValue .>> spaces
> │ > 
> │ >     let keyValue = (key .>> colon) .>>. value
> │ >     let keyValues = sepBy keyValue comma
> │ > 
> │ >     between left keyValues right
> │ >     |>> Map.ofList
> │ >     |>> JObject
> │ >     <?> "object"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > jValueRef <|
> │ >     choice
> │ >         [[
> │ >             jNull
> │ >             jBool
> │ >             jString
> │ >             jNumber
> │ >             jArray
> │ >             jObject
> │ >         ]]
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jObject """{ "a":1, "b"  :  2 }"""
> │ > |> parserEqual (
> │ >     Success (
> │ >         JObject (
> │ >             Map.ofList [[
> │ >                 "a", JNumber 1.0
> │ >                 "b", JNumber 2.0
> │ >             ]]
> │ >         )
> │ >     )
> │ > )
> │ > 
> │ > ── [ 79.47ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success<br />  (JObject (map 
> [(&quot;a&quot;, 
> │ > JNumber 1.0); (&quot;b&quot;, JNumber 2.0)]),<br />   { 
> lines = [|&quot;{ 
> │ > &quot;a&quot;:1, &quot;b&quot;  :  2 }&quot;|]<br />     
> position = { line = 
> │ > 1<br />                  column = 0 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JObject (map [(&quot;a&quot;, 
> JNumber 1.0); 
> │ > (&quot;b&quot;, JNumber 2.0)]), { lines = [|&quot;{ 
> &quot;a&quot;:1, 
> │ > &quot;b&quot;  :  2 }&quot;|]<br />  position = { line = 
> 1<br />               
> │ > column = 0 } 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JObject (map [(&quot;a&quot;, 
> JNumber 1.0); 
> │ > (&quot;b&quot;, JNumber 
> │ > 
> 2.0)])</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td
> │ > 
> >Item</td><td><table><thead><tr><th><i>key</i></th><th>value</th></tr></thead><t
> │ > body><tr><td><div class="dni-plaintext"><pre>&quot;a&quot;
> │ > │ </pre></div></td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>JNumber 
> │ > 
> 1.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It
> │ > em</td><td><div class="dni-plaintext"><pre>1.0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td><div 
> │ > class="dni-plaintext"><pre>&quot;b&quot;
> │ > │ 
> │ > 
> </pre></d...le></td></tr></tbody></table></div></details></td></tr><tr><td>Item2
> │ > </td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>{ lines = [|&quot;{ 
> &quot;a&quot;:1, &quot;b&quot;  
> │ > :  2 }&quot;|]<br />  position = { line = 1<br />
> column = 0 } 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > s</td><td><div class="dni-plaintext"><pre>[ { 
> &quot;a&quot;:1, &quot;b&quot;  :
> │ > 2 } 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 1<br />
> │ > column = 0 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>1
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 81.28ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ JObject (map [("a", JNumber 1.0); ("b", 
> JNumber 2.0)])
> │ > │ JObject (map [("a", JNumber 1.0); ("b", 
> JNumber 2.0)])
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run jObject """{ "a":1, "b"  :  2, }"""
> │ > |> parserEqual (
> │ >     Failure (
> │ >         "object",
> │ >         "Unexpected ','",
> │ >         { currentLine = """{ "a":1, "b"  :  2, }"""; line =
> 0; column = 18 }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 42.93ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Failure (&quot;object&quot;, 
> &quot;Unexpected 
> │ > &#39;,&#39;&quot;, { currentLine = &quot;{ &quot;a&quot;:1,
> &quot;b&quot;  :  2,
> │ > }&quot;<br />                                       line = 
> 0<br />
> │ > column = 18 
> │ > 
> })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite
> │ > m1</td><td><div 
> class="dni-plaintext"><pre>&quot;object&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>Item2</td><td><div 
> │ > class="dni-plaintext"><pre>&quot;Unexpected 
> &#39;,&#39;&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>Item3</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ currentLine = 
> │ > &quot;{ &quot;a&quot;:1, &quot;b&quot;  :  2, }&quot;<br />
> line = 0<br />  
> │ > column = 18 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr
> │ > entLine</td><td><div class="dni-plaintext"><pre>&quot;{ 
> &quot;a&quot;:1, 
> │ > &quot;b&quot;  :  2, }&quot;
> │ > │ 
> </pre></div></td></tr><tr><td>line</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>18
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > </div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 44.25ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Line:0 Col:18 Error parsing object
> │ > │ { "a":1, "b"  :  2, }
> │ > │                   ^Unexpected ','
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### jValue
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let example1 = """{
> │ >     "name" : "Scott",
> │ >     "isMale" : true,
> │ >     "bday" : {"year":2001, "month":12, "day":25 },
> │ >     "favouriteColors" : [["blue", "green"]],
> │ >     "emptyArray" : [[]],
> │ >     "emptyObject" : {}
> │ > }"""
> │ > run jValue example1
> │ > |> parserEqual (
> │ >     Success (
> │ >         JObject (
> │ >             Map.ofList [[
> │ >                 "name", JString "Scott"
> │ >                 "isMale", JBool true
> │ >                 "bday", JObject (
> │ >                     Map.ofList [[
> │ >                         "year", JNumber 2001.0
> │ >                         "month", JNumber 12.0
> │ >                         "day", JNumber 25.0
> │ >                     ]]
> │ >                 )
> │ >                 "favouriteColors", JArray [[ JString 
> "blue"; JString "green" ]]
> │ >                 "emptyArray", JArray [[]]
> │ >                 "emptyObject", JObject Map.empty
> │ >             ]]
> │ >         )
> │ >     )
> │ > )
> │ > 
> │ > ── [ 147.09ms - return value ] 
> ─────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success<br />  (JObject<br />
> (map<br />        
> │ > [(&quot;bday&quot;,<br />          JObject<br />
> (map<br />
> │ > [(&quot;day&quot;, JNumber 25.0); (&quot;month&quot;, 
> JNumber 12.0);<br />
> │ > (&quot;year&quot;, JNumber 2001.0)])); 
> (&quot;emptyArray&quot;, JArray []);<br 
> │ > />         (&quot;emptyObject&quot;, JObject (map []));<br 
> />         
> │ > (&quot;favouriteColors&quot;, 
> │ > 
> ...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It
> │ > em</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JObject<br />  (map<br />     
> │ > [(&quot;bday&quot;,<br />       JObject<br />         
> (map<br />            
> │ > [(&quot;day&quot;, JNumber 25.0); (&quot;month&quot;, 
> JNumber 12.0);<br />
> │ > (&quot;year&quot;, JNumber 2001.0)])); 
> (&quot;emptyArray&quot;, JArray []);<br 
> │ > />      (&quot;emptyObject&quot;, JObject (map []));<br />│ > (&quot;favouriteColors&quot;, JArray [JString 
> &quot;blue&quot;; JString 
> │ > 
> &quot;gr...</code></span></summary><div><table><thead><tr></tr></thead><tbody><t
> │ > r><td>Item1</td><td><details 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JObject<br />  (map<br />     
> [(&quot;bday&quot;,<br
> │ > />       JObject<br />         (map<br />            
> [(&quot;day&quot;, JNumber 
> │ > 25.0); (&quot;month&quot;, JNumber 12.0);<br />
> (&quot;year&quot;, 
> │ > JNumber 2001.0)])); (&quot;emptyArray&quot;, JArra...0 } 
> │ > 
> ...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>li
> │ > nes</td><td><div class="dni-plaintext"><pre>[ {,     
> &quot;name&quot; : 
> │ > &quot;Scott&quot;,,     &quot;isMale&quot; : true,,     
> &quot;bday&quot; : 
> │ > {&quot;year&quot;:2001, &quot;month&quot;:12, 
> &quot;day&quot;:25 },,     
> │ > &quot;favouriteColors&quot; : [&quot;blue&quot;, 
> &quot;green&quot;],,     
> │ > &quot;emptyArray&quot; : [],,     &quot;emptyObject&quot; :
> {}, } 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 8<br />
> │ > column = 0 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>8
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 148.84ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ JObject
> │ > │   (map
> │ > │      [("bday",
> │ > │        JObject
> │ > │          (map
> │ > │             [("day", JNumber 25.0); 
> ("month", JNumber 12.0);
> │ > │              ("year", JNumber 
> 2001.0)])); ("emptyArray", 
> │ > JArray []);
> │ > │       ("emptyObject", JObject (map []));
> │ > │       ("favouriteColors", JArray 
> [JString "blue"; JString 
> │ > "green"]);
> │ > │       ("isMale", JBool true); ("name", 
> JString "Scott")])
> │ > │ JObject
> │ > │   (map
> │ > │      [("bday", JObject (map [("day", 
> JNumber 25.0); ("month",
> │ > JNumber 12.0); ("year", JNumber 2001.0)]));
> │ > │       ("emptyArray", JArray []); 
> ("emptyObject", JObject (map
> │ > []));
> │ > │       ("favouriteColors", JArray 
> [JString "blue"; JString 
> │ > "green"]); ("isMale", JBool true); ("name", JString 
> "Scott")])
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let example2 = """{"widget": {
> │ >     "debug": "on",
> │ >     "window": {
> │ >         "title": "Sample Konfabulator Widget",
> │ >         "name": "main_window",
> │ >         "width": 500,
> │ >         "height": 500
> │ >     },
> │ >     "image": {
> │ >         "src": "Images/Sun.png",
> │ >         "name": "sun1",
> │ >         "hOffset": 250,
> │ >         "vOffset": 250,
> │ >         "alignment": "center"
> │ >     },
> │ >     "text": {
> │ >         "data": "Click Here",
> │ >         "size": 36,
> │ >         "style": "bold",
> │ >         "name": "text1",
> │ >         "hOffset": 250,
> │ >         "vOffset": 100,
> │ >         "alignment": "center",
> │ >         "onMouseUp": "sun1.opacity = (sun1.opacity / 100) *
> 90;"
> │ >     }
> │ > }}"""
> │ > 
> │ > run jValue example2
> │ > |> parserEqual (
> │ >     Success (
> │ >         JObject (
> │ >             Map.ofList [[
> │ >                 "widget", JObject (
> │ >                     Map.ofList [[
> │ >                         "debug", JString "on"
> │ >                         "window", JObject (
> │ >                             Map.ofList [[
> │ >                                 "title", JString "Sample 
> Konfabulator Widget"
> │ >                                 "name", JString 
> "main_window"
> │ >                                 "width", JNumber 500.0
> │ >                                 "height", JNumber 500.0
> │ >                             ]]
> │ >                         )
> │ >                         "image", JObject (
> │ >                             Map.ofList [[
> │ >                                 "src", JString 
> "Images/Sun.png"
> │ >                                 "name", JString "sun1"
> │ >                                 "hOffset", JNumber 250.0
> │ >                                 "vOffset", JNumber 250.0
> │ >                                 "alignment", JString 
> "center"
> │ >                             ]]
> │ >                         )
> │ >                         "text", JObject (
> │ >                             Map.ofList [[
> │ >                                 "data", JString "Click 
> Here"
> │ >                                 "size", JNumber 36.0
> │ >                                 "style", JString "bold"
> │ >                                 "name", JString "text1"
> │ >                                 "hOffset", JNumber 250.0
> │ >                                 "vOffset", JNumber 100.0
> │ >                                 "alignment", JString 
> "center"
> │ >                                 "onMouseUp", JString 
> "sun1.opacity = 
> │ > (sun1.opacity / 100) * 90;"
> │ >                             ]]
> │ >                         )
> │ >                     ]]
> │ >                 )
> │ >             ]]
> │ >         )
> │ >     )
> │ > )
> │ > 
> │ > ── [ 322.45ms - return value ] 
> ─────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success<br />  (JObject<br />
> (map<br />        
> │ > [(&quot;widget&quot;,<br />          JObject<br />
> (map<br />
> │ > [(&quot;debug&quot;, JString &quot;on&quot;);<br />│ > (&quot;image&quot;,<br />                 JObject<br />│ > (map<br />                      [(&quot;alignment&quot;, 
> JString 
> │ > &quot;center&quot;);<br />                       
> │ > 
> (&quot;hOffset&quot;...</code></span></summary><div><table><thead><tr></tr></the
> │ > ad><tbody><tr><td>Item</td><td><details 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JObject<br />  (map<br />     
> │ > [(&quot;widget&quot;,<br />       JObject<br />         
> (map<br />            
> │ > [(&quot;debug&quot;, JString &quot;on&quot;);<br />│ > (&quot;image&quot;,<br />              JObject<br />
> (map<br />
> │ > [(&quot;alignment&quot;, JString &quot;center&quot;); 
> (&quot;hOffset&quot;, 
> │ > JNumber 250.0);<br />                    (&quot;name&quot;,
> JString 
> │ > 
> &quot;sun1&quot;...</code></span></summary><div><table><thead><tr></tr></thead><
> │ > tbody><tr><td>Item1</td><td><details 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JObject<br />  (map<br />     
> │ > [(&quot;widget&quot;,<br />       JObject<br />         
> (map<br />            
> │ > [(&quot;debug&quot;, JString &quot;on&quot;);<br />│ > (&quot;image&quot;,<br />              JObject<br />│ > (...ot;center&quot;,     },,     &quot;text&quot;: {,
> &quot;data&quot;: 
> │ > &quot;Click Here&quot;,,         &quot;size&quot;: 36,,│ > &quot;style&quot;: &quot;bold&quot;,,         
> &quot;name&quot;: 
> │ > &quot;text1&quot;,,         &quot;hOffset&quot;: 250,,│ > &quot;vOffset&quot;: 100,,         &quot;alignment&quot;: 
> &quot;center&quot;,,
> │ > &quot;onMouseUp&quot;: &quot;sun1.opacity = (sun1.opacity /
> 100) * 90;&quot;,
> │ > }, }} 
> ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 26<br 
> │ > />  column = 0 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>26
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 324.11ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ JObject
> │ > │   (map
> │ > │      [("widget",
> │ > │        JObject
> │ > │          (map
> │ > │             [("debug", JString "on");
> │ > │              ("image",
> │ > │               JObject
> │ > │                 (map
> │ > │                    [("alignment", 
> JString "center"); 
> │ > ("hOffset", JNumber 250.0);
> │ > │                     ("name", JString 
> "sun1"); ("src", JString
> │ > "Images/Sun.png");
> │ > │                     ("vOffset", JNumber 
> 250.0)]));
> │ > │              ("text",
> │ > │               JObject
> │ > │                 (map
> │ > │                    [("alignment", 
> JString "center");
> │ > │                     ("data", JString 
> "Click Here"); 
> │ > ("hOffset", JNumber 250.0);
> │ > │                     ("name", JString 
> "text1");
> │ > │                     ("onMouseUp",
> │ > │                      JString 
> "sun1.opacity = (sun1.opacity / 
> │ > 100) * 90;");
> │ > │                     ("size", JNumber 
> 36.0); ("style", JString
> │ > "bold");
> │ > │                     ("vOffset", JNumber 
> 100.0)]));
> │ > │              ("window",
> │ > │               JObject
> │ > │                 (map
> │ > │                    [("height", JNumber 
> 500.0); ("name", 
> │ > JString "main_window");
> │ > │                     ("title", JString 
> "Sample Konfabulator 
> │ > Widget");
> │ > │                     ("width", JNumber 
> 500.0)]))]))])
> │ > │ JObject
> │ > │   (map
> │ > │      [("widget",
> │ > │        JObject
> │ > │          (map
> │ > │             [("debug", JString "on");
> │ > │              ("image",
> │ > │               JObject
> │ > │                 (map
> │ > │                    [("alignment", 
> JString "center"); 
> │ > ("hOffset", JNumber 250.0); ("name", JString "sun1");
> │ > │                     ("src", JString 
> "Images/Sun.png"); 
> │ > ("vOffset", JNumber 250.0)]));
> │ > │              ("text",
> │ > │               JObject
> │ > │                 (map
> │ > │                    [("alignment", 
> JString "center"); ("data",
> │ > JString "Click Here"); ("hOffset", JNumber 250.0);
> │ > │                     ("name", JString 
> "text1"); ("onMouseUp", 
> │ > JString "sun1.opacity = (sun1.opacity / 100) * 90;");
> │ > │                     ("size", JNumber 
> 36.0); ("style", JString
> │ > "bold"); ("vOffset", JNumber 100.0)]));
> │ > │              ("window",
> │ > │               JObject
> │ > │                 (map
> │ > │                    [("height", JNumber 
> 500.0); ("name", 
> │ > JString "main_window");
> │ > │                     ("title", JString 
> "Sample Konfabulator 
> │ > Widget"); ("width", JNumber 500.0)]))]))])
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let example3 = """{
> │ >   "string": "Hello, \"World\"!",
> │ >   "escapedString": "This string contains 
> \\/\\\\\\b\\f\\n\\r\\t\\\"\\'",
> │ >   "number": 42,
> │ >   "scientificNumber": 3.14e-10,
> │ >   "boolean": true,
> │ >   "nullValue": null,
> │ >   "array": [[1, 2, 3, 4, 5]],
> │ >   "unicodeString1": "프리마",
> │ >   "unicodeString2": "\u0048\u0065\u006C\u006C\u006F, 
> │ > \u0022\u0057\u006F\u0072\u006C\u0064\u0022!",
> │ >   "specialCharacters": "!@#$%^&*()",
> │ >   "emptyArray": [[]],
> │ >   "emptyObject": {},
> │ >   "nestedArrays": [[[[1, 2, 3]], [[4, 5, 6]]]],
> │ >   "object": {
> │ >     "nestedString": "Nested Value",
> │ >     "nestedNumber": 3.14,
> │ >     "nestedBoolean": false,
> │ >     "nestedNull": null,
> │ >     "nestedArray": [["a", "b", "c"]],
> │ >     "nestedObject": {
> │ >       "nestedProperty": "Nested Object Value"
> │ >     }
> │ >   },
> │ >   "nestedObjects": [[
> │ >     {"name": "Alice", "age": 25},
> │ >     {"name": "Bob", "age": 30}
> │ >   ]]
> │ > }"""
> │ > run jValue example3
> │ > |> parserEqual (
> │ >     Success (
> │ >         JObject (
> │ >             Map.ofList [[
> │ >                 "string", JString @"Hello, ""World""!"
> │ >                 "escapedString", JString @"This string 
> contains 
> │ > \/\\\b\f\n\r\t\""\'"
> │ >                 "number", JNumber 42.0
> │ >                 "scientificNumber", JNumber 3.14e-10
> │ >                 "boolean", JBool true
> │ >                 "nullValue", JNull
> │ >                 "array", JArray [[
> │ >                     JNumber 1.0; JNumber 2.0; JNumber 3.0; 
> JNumber 4.0; JNumber 
> │ > 5.0
> │ >                 ]]
> │ >                 "unicodeString1", JString "프리마"
> │ >                 "unicodeString2", JString @"Hello, 
> ""World""!"
> │ >                 "specialCharacters", JString "!@#$%^&*()"
> │ >                 "emptyArray", JArray [[]]
> │ >                 "emptyObject", JObject Map.empty
> │ >                 "nestedArrays", JArray [[
> │ >                     JArray [[ JNumber 1.0; JNumber 2.0; 
> JNumber 3.0 ]]
> │ >                     JArray [[ JNumber 4.0; JNumber 5.0; 
> JNumber 6.0 ]]
> │ >                 ]]
> │ >                 "object", JObject (
> │ >                     Map.ofList [[
> │ >                         "nestedString", JString "Nested 
> Value"
> │ >                         "nestedNumber", JNumber 3.14
> │ >                         "nestedBoolean", JBool false
> │ >                         "nestedNull", JNull
> │ >                         "nestedArray", JArray [[JString 
> "a"; JString "b"; 
> │ > JString "c"]]
> │ >                         "nestedObject", JObject (
> │ >                             Map.ofList [[
> │ >                                 "nestedProperty", JString 
> "Nested Object Value"
> │ >                             ]]
> │ >                         )
> │ >                     ]]
> │ >                 )
> │ >                 "nestedObjects", JArray [[
> │ >                   JObject (Map.ofList [[ "name", JString 
> "Alice"; "age", JNumber
> │ > 25.0 ]])
> │ >                   JObject (Map.ofList [[ "name", JString 
> "Bob"; "age", JNumber 
> │ > 30.0 ]])
> │ >                 ]]
> │ >             ]]
> │ >         )
> │ >     )
> │ > )
> │ > 
> │ > ── [ 466.64ms - return value ] 
> ─────────────────────────────────────────────────
> │ > │ <details open="open" 
> class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>Success<br />  (JObject<br />
> (map<br />        
> │ > [(&quot;array&quot;,<br />          JArray<br />
> [JNumber 1.0; 
> │ > JNumber 2.0; JNumber 3.0; JNumber 4.0; JNumber 5.0]);<br />│ > (&quot;boolean&quot;, JBool true); (&quot;emptyArray&quot;,
> JArray []);<br />
> │ > (&quot;emptyObject&quot;, JObject (map []));<br />         
> │ > (&quot;escapedString&quot;, JString &quot;This 
> │ > 
> s...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>I
> │ > tem</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>(JObject<br />  (map<br />     
> │ > [(&quot;array&quot;,<br />       JArray [JNumber 1.0; 
> JNumber 2.0; JNumber 3.0; 
> │ > JNumber 4.0; JNumber 5.0]);<br />      
> (&quot;boolean&quot;, JBool true); 
> │ > (&quot;emptyArray&quot;, JArray []);<br />      
> (&quot;emptyObject&quot;, 
> │ > JObject (map []));<br />      (&quot;escapedString&quot;, 
> JString &quot;This 
> │ > string contains \/\\\b\f<br />\r\t\&quot;\&#39;&quot;);<br 
> />    
> │ > 
> ...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It
> │ > em1</td><td><details class="dni-treeview"><summary><span 
> │ > class="dni-code-hint"><code>JObject<br />  (map<br />     
> │ > [(&quot;array&quot;,<br />       JArray [JNumber 1.0; 
> JNumber 2.0; JNumber 3.0; 
> │ > JNumber 4.0; JNumber 5.0]);<br />      
> (&quot;boolean&quot;, JBool true); 
> │ > (&quot;emptyArray&quot;, JArray []);<br />      
> (&quot;emptyObject&quot;, 
> │ > JObject (map []));<br />      (&quot;es...ot;: 3.14,,     
> │ > &quot;nestedBoolean&quot;: false,,     
> &quot;nestedNull&quot;: null,,     
> │ > &quot;nestedArray&quot;: [&quot;a&quot;, &quot;b&quot;, 
> &quot;c&quot;],,     
> │ > &quot;nestedObject&quot;: {,       
> &quot;nestedProperty&quot;: &quot;Nested 
> │ > Object Value&quot;,     },   },,   
> &quot;nestedObjects&quot;: [,     
> │ > {&quot;name&quot;: &quot;Alice&quot;, &quot;age&quot;: 
> 25},,     
> │ > {&quot;name&quot;: &quot;Bob&quot;, &quot;age&quot;: 30},
> ], } 
> │ > ]</pre></div></td></tr><tr><td>position</td><td><details 
> │ > class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>{ line = 29<br 
> │ > />  column = 0 
> │ > 
> }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line
> │ > </td><td><div class="dni-plaintext"><pre>29
> │ > │ 
> </pre></div></td></tr><tr><td>column</td><td><div 
> │ > class="dni-plaintext"><pre>0
> │ > │ 
> │ > 
> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table>
> │ > 
> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta
> │ > ble></div></details><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ > 
> │ > ── [ 468.35ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ JObject
> │ > │   (map
> │ > │      [("array",
> │ > │        JArray [JNumber 1.0; JNumber 2.0;
> JNumber 3.0; JNumber
> │ > 4.0; JNumber 5.0]);
> │ > │       ("boolean", JBool true); 
> ("emptyArray", JArray []);
> │ > │       ("emptyObject", JObject (map []));
> │ > │       ("escapedString", JString "This 
> string contains 
> │ > \/\\\b\f\n\r\t\"\'");
> │ > │       ("nestedArrays",
> │ > │        JArray
> │ > │          [JArray [JNumber 1.0; JNumber 
> 2.0; JNumber 3.0];
> │ > │           JArray [JNumber 4.0; JNumber 
> 5.0; JNumber 6.0]]);
> │ > │       ("nestedObjects",
> │ > │        JArray
> │ > │          [JObject (map [("age", JNumber 
> 25.0); ("name", 
> │ > JString "Alice")]);
> │ > │           JObject (map [("age", JNumber 
> 30.0); ("name", 
> │ > JString "Bob")])]);
> │ > │       ("nullValue", JNull); ("number", 
> JNumber 42.0); ...])
> │ > │ JObject
> │ > │   (map
> │ > │      [("array", JArray [JNumber 1.0; 
> JNumber 2.0; JNumber 
> │ > 3.0; JNumber 4.0; JNumber 5.0]); ("boolean", JBool true);
> │ > │       ("emptyArray", JArray []); 
> ("emptyObject", JObject (map
> │ > []));
> │ > │       ("escapedString", JString "This 
> string contains 
> │ > \/\\\b\f\n\r\t\"\'");
> │ > │       ("nestedArrays",
> │ > │        JArray [JArray [JNumber 1.0; 
> JNumber 2.0; JNumber 
> │ > 3.0]; JArray [JNumber 4.0; JNumber 5.0; JNumber 6.0]]);
> │ > │       ("nestedObjects",
> │ > │        JArray
> │ > │          [JObject (map [("age", JNumber 
> 25.0); ("name", 
> │ > JString "Alice")]);
> │ > │           JObject (map [("age", JNumber 
> 30.0); ("name", 
> │ > JString "Bob")])]); ("nullValue", JNull);
> │ > │       ("number", JNumber 42.0); ...])
> │ > │ 
> │ > │ 
> │ 00:00:22 v #3 runtime.execute_with_options / result / {
> exit_code = 0; std_trace_length = 152736 }
> │ 00:00:22 d #4 runtime.execute_with_options / { 
> file_name = jupyter; arguments = ["nbconvert", 
> "c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb", "--to", "html", 
> "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert 
> "c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb" --to html 
> --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:00:23 v #5 ! [NbConvertApp] Converting notebook 
> c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb to html
> │ 00:00:23 v #6 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.
> py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a 
> hard error in future nbformat versions. You may want to use `normalize()` on 
> your notebooks before validations (available since nbformat 5.1.4). Previous 
> versions of nbformat are fixing this issue transparently, and will stop doing so
> in the future.
> │ 00:00:23 v #7 !   validate(nb)
> │ 00:00:24 v #8 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\
> highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python
> 3
> │ 00:00:24 v #9 !   return _pygments_highlight(
> │ 00:00:25 v #10 ! [NbConvertApp] Writing 501905 bytes to
> c:\home\git\polyglot\apps\parser\JsonParser.dib.html
> │ 00:00:25 v #11 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 864 }
> │ 00:00:25 d #12 spiral.run / dib / jupyter nbconvert / {
> exit_code = 0; jupyter_result_length = 864 }
> │ 00:00:25 d #13 runtime.execute_with_options / { 
> file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/parser/JsonParser.dib.html'; (Get-Content $path -Raw)
> -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } 
> | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/parser/JsonParser.dib.html'; (Get-Content $path -Raw)
> -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | 
> Set-Content $path"; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:00:25 v #14 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 0 }
> │ 00:00:25 d #15 spiral.run / dib / html cell ids / { 
> exit_code = 0; pwsh_replace_html_result_length = 0 }
> │ 00:00:25 d #16 spiral.run / dib / { exit_code = 0; 
> result_length = 153659 }
> │ 00:00:00 d #1 spiral.main / { args = 
> Array(MutCell(["dib", "--path", "Parser.dib"])) }
> │ 00:00:00 d #2 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", 
> "c:/home/git/polyglot/apps/parser/Parser.dib", "--output-path", 
> "c:/home/git/polyglot/apps/parser/Parser.dib.ipynb"]; options = { command = 
> dotnet repl --exit-after-run --run "c:/home/git/polyglot/apps/parser/Parser.dib"
> --output-path "c:/home/git/polyglot/apps/parser/Parser.dib.ipynb"; 
> cancellation_token = None; environment_variables = 
> Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = 
> None; stdin = None; trace = false; working_directory = None } }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ # Parser (Polyglot)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > open Common
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### TextInput
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > type Position =
> │ >     {
> │ >         line : int
> │ >         column : int
> │ >     }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let initialPos = { line = 0; column = 0 }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline incrCol (pos : Position) =
> │ >     { pos with column = pos.column + 1 }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline incrLine pos =
> │ >     { line = pos.line + 1; column = 0 }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > type InputState =
> │ >     {
> │ >         lines : string[[]]
> │ >         position : Position
> │ >     }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline fromStr str =
> │ >     {
> │ >         lines =
> │ >             if str |> String.IsNullOrEmpty
> │ >             then [[||]]
> │ >             else str |> SpiralSm.split_string [[| "\r\n"; 
> "\n" |]]
> │ >         position = initialPos
> │ >     }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > fromStr "" |> _assertEqual {
> │ >     lines = [[||]]
> │ >     position = { line = 0; column = 0 }
> │ > }
> │ > 
> │ > ── [ 56.58ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ { lines = [||]
> │ > │   position = { line = 0
> │ > │                column = 0 } }
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > fromStr "Hello \n World" |> _assertEqual {
> │ >     lines = [[| "Hello "; " World" |]]
> │ >     position = { line = 0; column = 0 }
> │ > }
> │ > 
> │ > ── [ 23.98ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ { lines = [|"Hello "; " World"|]
> │ > │   position = { line = 0
> │ > │                column = 0 } }
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline currentLine inputState =
> │ >     let linePos = inputState.position.line
> │ >     if linePos < inputState.lines.Length
> │ >     then inputState.lines.[[linePos]]
> │ >     else "end of file"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline nextChar input =
> │ >     let linePos = input.position.line
> │ >     let colPos = input.position.column
> │ > 
> │ >     if linePos >= input.lines.Length
> │ >     then input, None
> │ >     else
> │ >         let currentLine = currentLine input
> │ >         if colPos < currentLine.Length then
> │ >             let char = currentLine.[[colPos]]
> │ >             let newPos = incrCol input.position
> │ >             let newState = { input with position = newPos }
> │ >             newState, Some char
> │ >         else
> │ >             let char = '\n'
> │ >             let newPos = incrLine input.position
> │ >             let newState = { input with position = newPos }
> │ >             newState, Some char
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let newInput, charOpt = fromStr "Hello World" |> nextChar
> │ > 
> │ > newInput |> _assertEqual {
> │ >     lines = [[| "Hello World" |]]
> │ >     position = { line = 0; column = 1 }
> │ > }
> │ > charOpt |> _assertEqual (Some 'H')
> │ > 
> │ > ── [ 39.08ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ { lines = [|"Hello World"|]
> │ > │   position = { line = 0
> │ > │                column = 1 } }
> │ > │ 
> │ > │ Some 'H'
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let newInput, charOpt = fromStr "Hello\n\nWorld" |> 
> nextChar
> │ > 
> │ > newInput |> _assertEqual {
> │ >     lines = [[| "Hello"; ""; "World" |]]
> │ >     position = { line = 0; column = 1 }
> │ > }
> │ > charOpt |> _assertEqual (Some 'H')
> │ > 
> │ > ── [ 29.88ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ { lines = [|"Hello"; ""; "World"|]
> │ > │   position = { line = 0
> │ > │                column = 1 } }
> │ > │ 
> │ > │ Some 'H'
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### Parser
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > type Input = InputState
> │ > type ParserLabel = string
> │ > type ParserError = string
> │ > 
> │ > type ParserPosition =
> │ >     {
> │ >         currentLine : string
> │ >         line : int
> │ >         column : int
> │ >     }
> │ > 
> │ > type ParseResult<'a> =
> │ >     | Success of 'a
> │ >     | Failure of ParserLabel * ParserError * ParserPosition
> │ > 
> │ > type Parser<'a> =
> │ >     {
> │ >         label : ParserLabel
> │ >         parseFn : Input -> ParseResult<'a * Input>
> │ >     }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline printResult result =
> │ >     match result with
> │ >     | Success (value, input) ->
> │ >         printfn $"%A{value}"
> │ >     | Failure (label, error, parserPos) ->
> │ >         let errorLine = parserPos.currentLine
> │ >         let colPos = parserPos.column
> │ >         let linePos = parserPos.line
> │ >         let failureCaret = $"{' ' |> string |> 
> String.replicate colPos}^{error}"
> │ >         printfn $"Line:%i{linePos} Col:%i{colPos} Error 
> parsing 
> │ > %s{label}\n%s{errorLine}\n%s{failureCaret}"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline runOnInput parser input =
> │ >     parser.parseFn input
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline run parser inputStr =
> │ >     runOnInput parser (fromStr inputStr)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline parserPositionFromInputState (inputState : 
> Input) =
> │ >     {
> │ >         currentLine = currentLine inputState
> │ >         line = inputState.position.line
> │ >         column = inputState.position.column
> │ >     }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline getLabel parser =
> │ >     parser.label
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline setLabel parser newLabel =
> │ >     {
> │ >         label = newLabel
> │ >         parseFn = fun input ->
> │ >             match parser.parseFn input with
> │ >             | Success s -> Success s
> │ >             | Failure (oldLabel, err, pos) -> Failure 
> (newLabel, err, pos)
> │ >     }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let (<?>) = setLabel
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline satisfy predicate label =
> │ >     {
> │ >         label = label
> │ >         parseFn = fun input ->
> │ >             let remainingInput, charOpt = nextChar input
> │ >             match charOpt with
> │ >             | None ->
> │ >                 let err = "No more input"
> │ >                 let pos = parserPositionFromInputState 
> input
> │ >                 Failure (label, err, pos)
> │ >             | Some first ->
> │ >                 if predicate first
> │ >                 then Success (first, remainingInput)
> │ >                 else
> │ >                     let err = $"Unexpected '%c{first}'"
> │ >                     let pos = parserPositionFromInputState 
> input
> │ >                     Failure (label, err, pos)
> │ >     }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "Hello"
> │ > let parser = satisfy (fun c -> c = 'H') "H"
> │ > runOnInput parser input |> _assertEqual (
> │ >     Success (
> │ >         'H',
> │ >         {
> │ >             lines = [[| "Hello" |]]
> │ >             position = { line = 0; column = 1 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 38.94ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success ('H', { lines = [|"Hello"|]
> │ > │                 position = { line = 0
> │ > │                              column = 1 
> } })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "World"
> │ > let parser = satisfy (fun c -> c = 'H') "H"
> │ > runOnInput parser input |> _assertEqual (
> │ >     Failure (
> │ >         "H",
> │ >         "Unexpected 'W'",
> │ >         {
> │ >             currentLine = "World"
> │ >             line = 0
> │ >             column = 0
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 34.47ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Failure ("H", "Unexpected 'W'", { 
> currentLine = "World"
> │ > │                                   line =
> 0
> │ > │                                   column
> = 0 })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline bindP f p =
> │ >     {
> │ >         label = "unknown"
> │ >         parseFn = fun input ->
> │ >             match runOnInput p input with
> │ >             | Failure (label, err, pos) -> Failure (label, 
> err, pos)
> │ >             | Success (value1, remainingInput) -> 
> runOnInput (f value1) 
> │ > remainingInput
> │ >     }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline (>>=) p f = bindP f p
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "Hello"
> │ > let parser = satisfy (fun c -> c = 'H') "H"
> │ > let parser2 = parser >>= fun c -> satisfy (fun c -> c = 
> 'e') "e"
> │ > runOnInput parser2 input |> _assertEqual (
> │ >     Success (
> │ >         'e',
> │ >         {
> │ >             lines = [[| "Hello" |]]
> │ >             position = { line = 0; column = 2 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 52.05ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success ('e', { lines = [|"Hello"|]
> │ > │                 position = { line = 0
> │ > │                              column = 2 
> } })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "World"
> │ > let parser = satisfy (fun c -> c = 'W') "W"
> │ > let parser2 = parser >>= fun c -> satisfy (fun c -> c = 
> 'e') "e"
> │ > runOnInput parser2 input |> _assertEqual (
> │ >     Failure (
> │ >         "e",
> │ >         "Unexpected 'o'",
> │ >         {
> │ >             currentLine = "World"
> │ >             line = 0
> │ >             column = 1
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 46.39ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Failure ("e", "Unexpected 'o'", { 
> currentLine = "World"
> │ > │                                   line =
> 0
> │ > │                                   column
> = 1 })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline returnP x =
> │ >     {
> │ >         label = $"%A{x}"
> │ >         parseFn = fun input -> Success (x, input)
> │ >     }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "Hello"
> │ > let parser = returnP "Hello"
> │ > runOnInput parser input |> _assertEqual (
> │ >     Success (
> │ >         "Hello",
> │ >         {
> │ >             lines = [[| "Hello" |]]
> │ >             position = { line = 0; column = 0 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 28.16ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success ("Hello", { lines = [|"Hello"|]
> │ > │                     position = { line = 
> 0
> │ > │                                  column 
> = 0 } })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline mapP f =
> │ >     bindP (f >> returnP)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let (<!>) = mapP
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline (|>>) x f = f <!> x
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "Hello"
> │ > let parser = satisfy (fun c -> c = 'H') "H"
> │ > let parser2 = parser |>> string
> │ > runOnInput parser2 input |> _assertEqual (
> │ >     Success (
> │ >         "H",
> │ >         {
> │ >             lines = [[| "Hello" |]]
> │ >             position = { line = 0; column = 1 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 37.26ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success ("H", { lines = [|"Hello"|]
> │ > │                 position = { line = 0
> │ > │                              column = 1 
> } })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline applyP fP xP =
> │ >     fP >>=
> │ >         fun f ->
> │ >             xP >>=
> │ >                 fun x ->
> │ >                     returnP (f x)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let (<*>) = applyP
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline lift2 f xP yP =
> │ >     returnP f <*> xP <*> yP
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "Hello"
> │ > let parser = satisfy (fun c -> c = 'H') "H"
> │ > let parser2 = satisfy (fun c -> c = 'e') "e"
> │ > let parser3 = lift2 (fun c1 c2 -> string c1 + string c2) 
> parser parser2
> │ > runOnInput parser3 input |> _assertEqual (
> │ >     Success (
> │ >         "He",
> │ >         {
> │ >             lines = [[| "Hello" |]]
> │ >             position = { line = 0; column = 2 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 54.74ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success ("He", { lines = [|"Hello"|]
> │ > │                  position = { line = 0
> │ > │                               column = 2
> } })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline andThen p1 p2 =
> │ >     p1 >>=
> │ >         fun p1Result ->
> │ >             p2 >>=
> │ >                 fun p2Result ->
> │ >                     returnP (p1Result, p2Result)
> │ >     <?> $"{getLabel p1} andThen {getLabel p2}"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let (.>>.) = andThen
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "Hello"
> │ > let parser = satisfy (fun c -> c = 'H') "H"
> │ > let parser2 = satisfy (fun c -> c = 'e') "e"
> │ > let parser3 = parser .>>. parser2
> │ > runOnInput parser3 input |> _assertEqual (
> │ >     Success (
> │ >         ('H', 'e'),
> │ >         {
> │ >             lines = [[| "Hello" |]]
> │ >             position = { line = 0; column = 2 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 44.23ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success (('H', 'e'), { lines = 
> [|"Hello"|]
> │ > │                        position = { line
> = 0
> │ > │                                     
> column = 2 } })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline orElse p1 p2 =
> │ >     {
> │ >         label = $"{getLabel p1} orElse {getLabel p2}"
> │ >         parseFn = fun input ->
> │ >             match runOnInput p1 input with
> │ >             | Success _ as result -> result
> │ >             | Failure _ -> runOnInput p2 input
> │ >     }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let (<|>) = orElse
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "hello"
> │ > let parser = satisfy (fun c -> c = 'H') "H"
> │ > let parser2 = satisfy (fun c -> c = 'h') "h"
> │ > let parser3 = parser <|> parser2
> │ > runOnInput parser3 input |> _assertEqual (
> │ >     Success (
> │ >         'h',
> │ >         {
> │ >             lines = [[| "hello" |]]
> │ >             position = { line = 0; column = 1 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 60.31ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success ('h', { lines = [|"hello"|]
> │ > │                 position = { line = 0
> │ > │                              column = 1 
> } })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline choice listOfParsers =
> │ >     listOfParsers |> List.reduce (<|>)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "hello"
> │ > let parser = satisfy (fun c -> c = 'H') "H"
> │ > let parser2 = satisfy (fun c -> c = 'h') "h"
> │ > let parser3 = choice [[ parser; parser2 ]]
> │ > runOnInput parser3 input |> _assertEqual (
> │ >     Success (
> │ >         'h',
> │ >         {
> │ >             lines = [[| "hello" |]]
> │ >             position = { line = 0; column = 1 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 39.60ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success ('h', { lines = [|"hello"|]
> │ > │                 position = { line = 0
> │ > │                              column = 1 
> } })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let rec sequence parserList =
> │ >     match parserList with
> │ >     | [[]] -> returnP [[]]
> │ >     | head :: tail -> (lift2 cons) head (sequence tail)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "Hello"
> │ > let parser = satisfy (fun c -> c = 'H') "H"
> │ > let parser2 = satisfy (fun c -> c = 'e') "e"
> │ > let parser3 = sequence [[ parser; parser2 ]]
> │ > runOnInput parser3 input |> _assertEqual (
> │ >     Success (
> │ >         [[ 'H'; 'e' ]],
> │ >         {
> │ >             lines = [[| "Hello" |]]
> │ >             position = { line = 0; column = 2 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 48.31ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success (['H'; 'e'], { lines = 
> [|"Hello"|]
> │ > │                        position = { line
> = 0
> │ > │                                     
> column = 2 } })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let rec parseZeroOrMore parser input =
> │ >     match runOnInput parser input with
> │ >     | Failure (_, _, _) ->
> │ >         [[]], input
> │ >     | Success (firstValue, inputAfterFirstParse) ->
> │ >         let subsequentValues, remainingInput = 
> parseZeroOrMore parser 
> │ > inputAfterFirstParse
> │ >         firstValue :: subsequentValues, remainingInput
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline many parser =
> │ >     {
> │ >         label = $"many {getLabel parser}"
> │ >         parseFn = fun input -> Success (parseZeroOrMore 
> parser input)
> │ >     }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "hello"
> │ > let parser = satisfy (fun c -> c = 'H') "H"
> │ > let parser2 = many parser
> │ > runOnInput parser2 input |> _assertEqual (
> │ >     Success (
> │ >         [[]],
> │ >         {
> │ >             lines = [[| "hello" |]]
> │ >             position = { line = 0; column = 0 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 38.48ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success ([], { lines = [|"hello"|]
> │ > │                position = { line = 0
> │ > │                             column = 0 }
> })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline many1 p =
> │ >     p >>=
> │ >         fun head ->
> │ >             many p >>=
> │ >                 fun tail ->
> │ >                     returnP (head :: tail)
> │ >     <?> $"many1 {getLabel p}"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "hello"
> │ > let parser = satisfy (fun c -> c = 'H') "H"
> │ > let parser2 = many1 parser
> │ > runOnInput parser2 input |> _assertEqual (
> │ >     Failure (
> │ >         "many1 H",
> │ >         "Unexpected 'h'",
> │ >         {
> │ >             currentLine = "hello"
> │ >             line = 0
> │ >             column = 0
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 52.69ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Failure ("many1 H", "Unexpected 'h'", { 
> currentLine = "hello"
> │ > │                                         
> line = 0
> │ > │                                         
> column = 0 })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline opt p =
> │ >     let some = p |>> Some
> │ >     let none = returnP None
> │ >     (some <|> none)
> │ >     <?> $"opt {getLabel p}"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "hello"
> │ > let parser = satisfy (fun c -> c = 'H') "H"
> │ > let parser2 = opt parser
> │ > runOnInput parser2 input |> _assertEqual (
> │ >     Success (
> │ >         None,
> │ >         {
> │ >             lines = [[| "hello" |]]
> │ >             position = { line = 0; column = 0 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 46.52ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success (None, { lines = [|"hello"|]
> │ > │                  position = { line = 0
> │ > │                               column = 0
> } })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline (.>>) p1 p2 =
> │ >     p1 .>>. p2
> │ >     |> mapP fst
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline (>>.) p1 p2 =
> │ >     p1 .>>. p2
> │ >     |> mapP snd
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline between p1 p2 p3 =
> │ >     p1 >>. p2 .>> p3
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "[[Hello]]"
> │ > let parser =
> │ >     between
> │ >         (satisfy (fun c -> c = '[[') "[[")
> │ >         (many (satisfy (fun c -> [[ 'a' .. 'z' ]] @ [[ 'A' 
> .. 'Z' ]] |> 
> │ > List.contains c) "letter"))
> │ >         (satisfy (fun c -> c = ']]') "]]")
> │ > runOnInput parser input |> _assertEqual (
> │ >     Success (
> │ >         [[ 'H'; 'e'; 'l'; 'l'; 'o' ]],
> │ >         {
> │ >             lines = [[| "[[Hello]]" |]]
> │ >             position = { line = 0; column = 7 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 125.65ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ Success (['H'; 'e'; 'l'; 'l'; 'o'], { 
> lines = [|"[Hello]"|]
> │ > │                                       
> position = { line = 0
> │ > │
> column = 7
> │ > } })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline sepBy1 p sep =
> │ >     let sepThenP = sep >>. p
> │ >     p .>>. many sepThenP
> │ >     |>> fun (p, pList) -> p :: pList
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline sepBy p sep =
> │ >     sepBy1 p sep <|> returnP [[]]
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "Hello,World"
> │ > let parser = sepBy (many (satisfy (fun c -> c <> ',') "not 
> comma")) (satisfy 
> │ > (fun c -> c = ',') "comma")
> │ > runOnInput parser input |> _assertEqual (
> │ >     Success (
> │ >         [[ [[ 'H'; 'e'; 'l'; 'l'; 'o' ]]; [[ 'W'; 'o'; 'r';
> 'l'; 'd'; '\n' ]] 
> │ > ]],
> │ >         {
> │ >             lines = [[| "Hello,World" |]]
> │ >             position = { line = 1; column = 0 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 81.37ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success ([['H'; 'e'; 'l'; 'l'; 'o']; 
> ['W'; 'o'; 'r'; 'l'; 
> │ > 'd'; '\010']], { lines = [|"Hello,World"|]
> │ > │
> │ > position = { line = 1
> │ > │
> │ >
>                                                                                 │ > column = 0 } })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline pchar charToMatch =
> │ >     satisfy ((=) charToMatch) $"%c{charToMatch}"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline anyOf listOfChars =
> │ >     listOfChars
> │ >     |> List.map pchar
> │ >     |> choice
> │ >     <?> $"anyOf %A{listOfChars}"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "Hello"
> │ > let parser = anyOf [[ 'H'; 'e'; 'l'; 'o' ]] |> many
> │ > runOnInput parser input |> _assertEqual (
> │ >     Success (
> │ >         [[ 'H'; 'e'; 'l'; 'l'; 'o' ]],
> │ >         {
> │ >             lines = [[| "Hello" |]]
> │ >             position = { line = 0; column = 5 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 44.69ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success (['H'; 'e'; 'l'; 'l'; 'o'], { 
> lines = [|"Hello"|]
> │ > │                                       
> position = { line = 0
> │ > │
> column = 5
> │ > } })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline charListToStr charList =
> │ >     charList |> List.toArray |> String
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline manyChars cp =
> │ >     many cp
> │ >     |>> charListToStr
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline manyChars1 cp =
> │ >     many1 cp
> │ >     |>> charListToStr
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "Hello"
> │ > let parser = manyChars1 (anyOf [[ 'H'; 'e'; 'l'; 'o' ]])
> │ > runOnInput parser input |> _assertEqual (
> │ >     Success (
> │ >         "Hello",
> │ >         {
> │ >             lines = [[| "Hello" |]]
> │ >             position = { line = 0; column = 5 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 63.57ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success ("Hello", { lines = [|"Hello"|]
> │ > │                     position = { line = 
> 0
> │ > │                                  column 
> = 5 } })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline pstring str =
> │ >     str
> │ >     |> List.ofSeq
> │ >     |> List.map pchar
> │ >     |> sequence
> │ >     |> mapP charListToStr
> │ >     <?> str
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "Hello"
> │ > let parser = pstring "Hello"
> │ > runOnInput parser input |> _assertEqual (
> │ >     Success (
> │ >         "Hello",
> │ >         {
> │ >             lines = [[| "Hello" |]]
> │ >             position = { line = 0; column = 5 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 59.53ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success ("Hello", { lines = [|"Hello"|]
> │ > │                     position = { line = 
> 0
> │ > │                                  column 
> = 5 } })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let whitespaceChar =
> │ >     satisfy Char.IsWhiteSpace "whitespace"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let spaces = many whitespaceChar
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let spaces1 = many1 whitespaceChar
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "  Hello"
> │ > let parser = spaces1 .>>. pstring "Hello"
> │ > runOnInput parser input |> _assertEqual (
> │ >     Success (
> │ >         ([[ ' '; ' ' ]], "Hello"),
> │ >         {
> │ >             lines = [[| "  Hello" |]]
> │ >             position = { line = 0; column = 7 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 58.47ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success (([' '; ' '], "Hello"), { lines 
> = [|"  Hello"|]
> │ > │                                   
> position = { line = 0
> │ > │
> column = 7 } 
> │ > })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let digitChar =
> │ >     satisfy Char.IsDigit "digit"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let input = fromStr "Hello"
> │ > let parser = digitChar
> │ > runOnInput parser input |> _assertEqual (
> │ >     Failure (
> │ >         "digit",
> │ >         "Unexpected 'H'",
> │ >         {
> │ >             currentLine = "Hello"
> │ >             line = 0
> │ >             column = 0
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 26.59ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Failure ("digit", "Unexpected 'H'", { 
> currentLine = "Hello"
> │ > │                                       
> line = 0
> │ > │                                       
> column = 0 })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let pint =
> │ >     let inline resultToInt (sign, digits) =
> │ >         let i = int digits
> │ >         match sign with
> │ >         | Some ch -> -i
> │ >         | None -> i
> │ > 
> │ >     let digits = manyChars1 digitChar
> │ > 
> │ >     opt (pchar '-') .>>. digits
> │ >     |> mapP resultToInt
> │ >     <?> "integer"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run pint "-123"
> │ > |> _assertEqual (
> │ >     Success (
> │ >         -123,
> │ >         {
> │ >             lines = [[| "-123" |]]
> │ >             position = { line = 0; column = 4 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 31.07ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success (-123, { lines = [|"-123"|]
> │ > │                  position = { line = 0
> │ > │                               column = 4
> } })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let pfloat =
> │ >     let inline resultToFloat (((sign, digits1), point), 
> digits2) =
> │ >         let fl = float $"{digits1}.{digits2}"
> │ >         match sign with
> │ >         | Some ch -> -fl
> │ >         | None -> fl
> │ > 
> │ >     let digits = manyChars1 digitChar
> │ > 
> │ >     opt (pchar '-') .>>. digits .>>. pchar '.' .>>. digits
> │ >     |> mapP resultToFloat
> │ >     <?> "float"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > run pfloat "-123.45"
> │ > |> _assertEqual (
> │ >     Success (
> │ >         -123.45,
> │ >         {
> │ >             lines = [[| "-123.45" |]]
> │ >             position = { line = 0; column = 7 }
> │ >         }
> │ >     )
> │ > )
> │ > 
> │ > ── [ 35.38ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ Success (-123.45, { lines = 
> [|"-123.45"|]
> │ > │                     position = { line = 
> 0
> │ > │                                  column 
> = 7 } })
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline createParserForwardedToRef<'a> () =
> │ >     let mutable parserRef : Parser<'a> =
> │ >         {
> │ >             label = "unknown"
> │ >             parseFn = fun _ -> failwith "unfixed forwarded 
> parser"
> │ >         }
> │ > 
> │ >     let wrapperParser =
> │ >         { parserRef with
> │ >             parseFn = fun input -> runOnInput parserRef 
> input
> │ >         }
> │ > 
> │ >     wrapperParser, (fun v -> parserRef <- v)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline (>>%) p x =
> │ >     p
> │ >     |>> fun _ -> x
> │ 00:00:19 v #3 runtime.execute_with_options / result / {
> exit_code = 0; std_trace_length = 31883 }
> │ 00:00:19 d #4 runtime.execute_with_options / { 
> file_name = jupyter; arguments = ["nbconvert", 
> "c:/home/git/polyglot/apps/parser/Parser.dib.ipynb", "--to", "html", 
> "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert 
> "c:/home/git/polyglot/apps/parser/Parser.dib.ipynb" --to html 
> --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:00:21 v #5 ! [NbConvertApp] Converting notebook 
> c:/home/git/polyglot/apps/parser/Parser.dib.ipynb to html
> │ 00:00:21 v #6 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.
> py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a 
> hard error in future nbformat versions. You may want to use `normalize()` on 
> your notebooks before validations (available since nbformat 5.1.4). Previous 
> versions of nbformat are fixing this issue transparently, and will stop doing so
> in the future.
> │ 00:00:21 v #7 !   validate(nb)
> │ 00:00:21 v #8 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\
> highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python
> 3
> │ 00:00:21 v #9 !   return _pygments_highlight(
> │ 00:00:22 v #10 ! [NbConvertApp] Writing 413747 bytes to
> c:\home\git\polyglot\apps\parser\Parser.dib.html
> │ 00:00:22 v #11 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 856 }
> │ 00:00:22 d #12 spiral.run / dib / jupyter nbconvert / {
> exit_code = 0; jupyter_result_length = 856 }
> │ 00:00:22 d #13 runtime.execute_with_options / { 
> file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/parser/Parser.dib.html'; (Get-Content $path -Raw) 
> -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } 
> | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/parser/Parser.dib.html'; (Get-Content $path -Raw) 
> -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | 
> Set-Content $path"; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:00:23 v #14 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 0 }
> │ 00:00:23 d #15 spiral.run / dib / html cell ids / { 
> exit_code = 0; pwsh_replace_html_result_length = 0 }
> │ 00:00:23 d #16 spiral.run / dib / { exit_code = 0; 
> result_length = 32798 }
> │ 00:00:00 d #1 writeDibCode / output: Fs / path: 
> Parser.dib
> │ 00:00:00 d #1 writeDibCode / output: Fs / path: 
> JsonParser.dib
> │ 00:00:00 d #2 parseDibCode / output: Fs / file: 
> Parser.dib
> │ 00:00:00 d #3 parseDibCode / output: Fs / file: 
> JsonParser.dib
> │ polyglot/apps/parser/build.ps1 / $env:CI:''
> │ 
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> { pwsh ../apps/spiral/build.ps1 } | Invoke-Block
> 
> ── [ 7.23m - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:00 d #1 writeDibCode / output: Fs / path: 
> spiral_compiler.dib
> │ 00:00:00 d #2 parseDibCode / output: Fs / file: 
> spiral_compiler.dib
> │ 00:00:00 d #1 persistCodeProject / packages: 
> [Fable.Core; FSharp.Control.AsyncSeq; FSharpx.Collections; ... ] / modules: 
> [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; 
> deps/spiral/lib/spiral/crypto.fsx; ... ] / name: spiral_compiler / hash:  / 
> code.Length: 815365
> │ 00:00:00 d #2 buildProject / fullPath: 
> c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fsproj
> │ 00:00:00 d #1 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   "publish 
> "c:/home/git\polyglot\target/Builder\spiral_compiler\spiral_compiler.fsproj" 
> --configuration Release --output 
> "C:\home\git\polyglot\deps\spiral\apps\compiler\dist" --runtime win-x64"; 
> options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\spiral_compiler\spiral_compiler.fsproj" 
> --configuration Release --output 
> "C:\home\git\polyglot\deps\spiral\apps\compiler\dist" --runtime win-x64; 
> cancellation_token = None; environment_variables = [||]; on_line = None; stdin =
> None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\spiral_compiler" } }
> │ 00:00:01 v #2 >   Determining projects to restore...
> │ 00:00:01 v #3 >   Paket version 
> 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ 00:00:01 v #4 >   The last full restore is still up to 
> date. Nothing left to do.
> │ 00:00:01 v #5 >   Total time taken: 0 milliseconds
> │ 00:00:01 v #6 >   All projects are up-to-date for 
> restore.
> │ 00:00:13 v #7 > 
> c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fs(10087,85)
> : warning FS0040: This and other recursive references to the object(s) being 
> defined will be checked for initialization-soundness at runtime through the use 
> of a delayed reference. This is because you are defining one or more recursive 
> objects, rather than recursive functions. This warning may be suppressed by 
> using '#nowarn "40"' or '--nowarn:40'. 
> [c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fsproj]
> │ 00:00:13 v #8 > 
> c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fs(10612,85)
> : warning FS0040: This and other recursive references to the object(s) being 
> defined will be checked for initialization-soundness at runtime through the use 
> of a delayed reference. This is because you are defining one or more recursive 
> objects, rather than recursive functions. This warning may be suppressed by 
> using '#nowarn "40"' or '--nowarn:40'. 
> [c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fsproj]
> │ 00:00:14 v #9 > 
> c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fs(11436,43)
> : warning FS0040: This and other recursive references to the object(s) being 
> defined will be checked for initialization-soundness at runtime through the use 
> of a delayed reference. This is because you are defining one or more recursive 
> objects, rather than recursive functions. This warning may be suppressed by 
> using '#nowarn "40"' or '--nowarn:40'. 
> [c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fsproj]
> │ 00:00:14 v #10 > 
> c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fs(12366,43)
> : warning FS0040: This and other recursive references to the object(s) being 
> defined will be checked for initialization-soundness at runtime through the use 
> of a delayed reference. This is because you are defining one or more recursive 
> objects, rather than recursive functions. This warning may be suppressed by 
> using '#nowarn "40"' or '--nowarn:40'. 
> [c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fsproj]
> │ 00:00:14 v #11 > 
> c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fs(13032,71)
> : warning FS0040: This and other recursive references to the object(s) being 
> defined will be checked for initialization-soundness at runtime through the use 
> of a delayed reference. This is because you are defining one or more recursive 
> objects, rather than recursive functions. This warning may be suppressed by 
> using '#nowarn "40"' or '--nowarn:40'. 
> [c:\home\git\polyglot\target\Builder\spiral_compiler\spiral_compiler.fsproj]
> │ 00:00:34 v #12 >   spiral_compiler -> 
> c:\home\git\polyglot\target\Builder\spiral_compiler\bin\Release\net9.0\win-x64\s
> piral_compiler.dll
> │ 00:00:36 v #13 >   spiral_compiler -> 
> C:\home\git\polyglot\deps\spiral\apps\compiler\dist\
> │ 00:00:36 d #14 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 2976; options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\spiral_compiler\spiral_compiler.fsproj" 
> --configuration Release --output 
> "C:\home\git\polyglot\deps\spiral\apps\compiler\dist" --runtime win-x64; 
> cancellation_token = None; environment_variables = [||]; on_line = None; stdin =
> None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\spiral_compiler" } }
> │ spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: 
> C:\home\git\polyglot\target\Builder\spiral_compiler
> │ spiral/apps/compiler/build.ps1 / $targetDir = 
> C:\home\git\polyglot\target\Builder\spiral_compiler / $projectName: 
> spiral_compiler / $env:CI:''
> │ 00:00:00 d #1 spiral.main / { args = 
> Array(MutCell(["dib", "--path", "Supervisor.dib", "--retries", "3"])) }
> │ 00:00:00 d #2 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", 
> "c:/home/git/polyglot/apps/spiral/Supervisor.dib", "--output-path", 
> "c:/home/git/polyglot/apps/spiral/Supervisor.dib.ipynb"]; options = { command = 
> dotnet repl --exit-after-run --run 
> "c:/home/git/polyglot/apps/spiral/Supervisor.dib" --output-path 
> "c:/home/git/polyglot/apps/spiral/Supervisor.dib.ipynb"; cancellation_token = 
> None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), 
> ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; 
> working_directory = None } }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ # Supervisor (Polyglot)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
> │ > dard2.1/FSharp.Control.AsyncSeq.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
> │ > 0/System.Reactive.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
> │ > netstandard2.0/System.Reactive.Linq.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.com
> │ > 
> mon/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Common.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.cli
> │ > 
> ent/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Client.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.common/7.0.0
> │ > /lib/net7.0/Microsoft.AspNetCore.SignalR.Common.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client/7.0.0
> │ > /lib/net7.0/Microsoft.AspNetCore.SignalR.Client.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client.core/
> │ > 
> 7.0.0/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.Core.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha
> │ > rp.Json.dll"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > #if !INTERACTIVE
> │ > open Lib
> │ > #endif
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > open Common
> │ > open SpiralFileSystem.Operators
> │ > open Microsoft.AspNetCore.SignalR.Client
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### sendJson
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let sendJson (port : int) (json : string) = async {
> │ >     let host = "127.0.0.1"
> │ >     let! portOpen = SpiralNetworking.test_port_open host 
> port
> │ >     if portOpen then
> │ >         try
> │ >             let connection = 
> │ > 
> HubConnectionBuilder().WithUrl($"http://{host}:{port}").Build()
> │ >             do! connection.StartAsync () |> Async.AwaitTask
> │ >             let! result = connection.InvokeAsync<string> 
> ("ClientToServerMsg", 
> │ > json) |> Async.AwaitTask
> │ >             do! connection.StopAsync () |> Async.AwaitTask
> │ >             trace Verbose (fun () -> $"Supervisor.sendJson 
> / port: {port} / 
> │ > json: {json |> SpiralSm.ellipsis_end 200} / result: {result
> |> Option.ofObj |> 
> │ > Option.map (SpiralSm.ellipsis_end 200)}") _locals
> │ >             return Some result
> │ >         with ex ->
> │ >             trace Critical (fun () -> $"Supervisor.sendJson
> / port: {port} / 
> │ > json: {json |> SpiralSm.ellipsis_end 200} / ex: {ex |> 
> │ > SpiralSm.format_exception}") _locals
> │ >             return None
> │ >     else
> │ >         trace Debug (fun () -> $"Supervisor.sendJson / 
> port: {port} / error: 
> │ > port not open") _locals
> │ >         return None
> │ > }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### sendObj
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let sendObj port obj =
> │ >     obj
> │ >     |> System.Text.Json.JsonSerializer.Serialize
> │ >     |> sendJson port
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### workspaceRoot
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let workspaceRoot = SpiralFileSystem.get_workspace_root ()
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### getFilePathFromUri
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let getFilePathFromUri uri =
> │ >     match System.Uri.TryCreate (uri, 
> System.UriKind.Absolute) with
> │ >     | true, uri -> uri.AbsolutePath |> 
> System.IO.Path.GetFullPath
> │ >     | _ -> failwith "invalid uri"
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### getCompilerPort
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let getCompilerPort () =
> │ >     13805
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### serialize_obj
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ >     let serializeObj obj =
> │ >         try
> │ >             obj
> │ >             |> FSharp.Json.Json.serialize
> │ >             |> SpiralSm.replace "\\\\" "\\"
> │ >             |> SpiralSm.replace "\\r\\n" "\n"
> │ >             |> SpiralSm.replace "\\n" "\n"
> │ >         with ex ->
> │ >             trace Critical (fun () -> 
> "Supervisor.serialize_obj / obj: %A{obj}")
> │ > _locals
> │ >             ""
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### Backend
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > type Backend =
> │ >     | Fsharp
> │ >     | Cuda
> │ >     | Gleam
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/fsharpx.collections/3.1.0/lib/netstandard
> │ > 2.0/FSharpx.Collections.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/hopac/0.5.1/lib/netstandard2.0/Hopac.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/hopac/0.5.1/lib/netstandard2.0/Hopac.Core
> │ > .dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
> │ > arsec.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
> │ > arsecCS.dll"
> │ > 
> │ > 
> │ > 
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.dll"
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.dll"
> │ > #endif
> │ > 
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.SignalR.dll"
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.SignalR.dll"
> │ > #endif
> │ > 
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.SignalR.Core.dll"
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.SignalR.Core.dll"
> │ > #endif
> │ > 
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Cors.dll"
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Cors.dll"
> │ > #endif
> │ > 
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Http.Abstractions.dll
> │ > "
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Http.Abstractions.dll"
> │ > #endif
> │ > 
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Connections.Abstracti
> │ > ons.dll"
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Connections.Abstractions.
> │ > dll"
> │ > #endif
> │ > 
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Hosting.Abstractions.
> │ > dll"
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Hosting.Abstractions.dll"
> │ > #endif
> │ > 
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Http.Connections.dll"
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Http.Connections.dll"
> │ > #endif
> │ > 
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Routing.dll"
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Routing.dll"
> │ > #endif
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.extensions.logging/9.0.0/lib/ne
> │ > t9.0/Microsoft.Extensions.Logging.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.extensions.logging.abstractions
> │ > 
> /9.0.0/lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.extensions.dependencyinjection.
> │ > 
> abstractions/9.0.0/lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstracti
> │ > ons.dll"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/system.management/9.0.0/lib/netstandard2.
> │ > 0/System.Management.dll"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > ── [ 1.84m - diagnostics ] 
> ─────────────────────────────────────────────────────
> │ > │ input.fsx (10087,85)-(10087,88) 
> typecheck warning This and 
> │ > other recursive references to the object(s) being defined 
> will be checked for 
> │ > initialization-soundness at runtime through the use of a 
> delayed reference. This
> │ > is because you are defining one or more recursive objects, 
> rather than recursive
> │ > functions. This warning may be suppressed by using '#nowarn
> "40"' or 
> │ > '--nowarn:40'.
> │ > │ input.fsx (10612,85)-(10612,88) 
> typecheck warning This and 
> │ > other recursive references to the object(s) being defined 
> will be checked for 
> │ > initialization-soundness at runtime through the use of a 
> delayed reference. This
> │ > is because you are defining one or more recursive objects, 
> rather than recursive
> │ > functions. This warning may be suppressed by using '#nowarn
> "40"' or 
> │ > '--nowarn:40'.
> │ > │ input.fsx (11436,43)-(11436,49) 
> typecheck warning This and 
> │ > other recursive references to the object(s) being defined 
> will be checked for 
> │ > initialization-soundness at runtime through the use of a 
> delayed reference. This
> │ > is because you are defining one or more recursive objects, 
> rather than recursive
> │ > functions. This warning may be suppressed by using '#nowarn
> "40"' or 
> │ > '--nowarn:40'.
> │ > │ input.fsx (12366,43)-(12366,49) 
> typecheck warning This and 
> │ > other recursive references to the object(s) being defined 
> will be checked for 
> │ > initialization-soundness at runtime through the use of a 
> delayed reference. This
> │ > is because you are defining one or more recursive objects, 
> rather than recursive
> │ > functions. This warning may be suppressed by using '#nowarn
> "40"' or 
> │ > '--nowarn:40'.
> │ > │ input.fsx (13032,71)-(13032,74) 
> typecheck warning This and 
> │ > other recursive references to the object(s) being defined 
> will be checked for 
> │ > initialization-soundness at runtime through the use of a 
> delayed reference. This
> │ > is because you are defining one or more recursive objects, 
> rather than recursive
> │ > functions. This warning may be suppressed by using '#nowarn
> "40"' or 
> │ > '--nowarn:40'.
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > open spiral_compiler
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### awaitCompiler
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let awaitCompiler port cancellationToken = async {
> │ >     let host = "127.0.0.1"
> │ >     let struct (ct, disposable) = cancellationToken |> 
> │ > SpiralThreading.new_disposable_token
> │ >     let! ct = ct |> 
> SpiralAsync.merge_cancellation_token_with_default_async
> │ > 
> │ >     let compiler = MailboxProcessor.Start (fun inbox -> 
> async {
> │ >         let! availablePort = 
> SpiralNetworking.get_available_port (Some 180) host
> │ > port
> │ >         if availablePort <> port then
> │ >             inbox.Post (port, false)
> │ >         else
> │ >             let compilerDir =
> │ >                 workspaceRoot </> 
> "deps/spiral/apps/compiler/dist"
> │ >                 |> System.IO.Path.GetFullPath
> │ > 
> │ >             let compilerPath = compilerDir </> 
> │ > $"spiral_compiler{SpiralPlatform.get_executable_suffix ()}"
> │ > 
> │ >             let! exitCode, result =
> │ >                 SpiralRuntime.execution_options (fun x ->
> │ >                     { x with
> │ >                         l0 = $"\"{compilerPath}\" --port 
> {availablePort} 
> │ > --default-int i32 --default-float f64"
> │ >                         l1 = Some ct
> │ >                         l3 = Some (fun struct (_, line, _) 
> -> async {
> │ >                             if line |> SpiralSm.contains 
> │ > $"System.IO.IOException: Failed to bind to address 
> http://{host}:{port}: address
> │ > already in use." then
> │ >                                 inbox.Post (port, false)
> │ > 
> │ >                             if line |> SpiralSm.contains 
> $"Server bound to: 
> │ > http://localhost:{availablePort}" then
> │ >                                 let rec loop retry = async 
> {
> │ >                                     do!
> │ >                                         
> SpiralNetworking.wait_for_port_access 
> │ > (Some 100) true host availablePort
> │ >                                         |> 
> Async.runWithTimeoutAsync 500
> │ >                                         |> Async.Ignore
> │ > 
> │ >                                     let _locals () = 
> $"port: {availablePort} / 
> │ > retry: {retry} / {_locals ()}"
> │ >                                     try
> │ >                                         let pingObj = {| 
> Ping = true |}
> │ >                                         let! pingResult = 
> pingObj |> sendObj 
> │ > availablePort
> │ >                                         trace Verbose (fun 
> () -> 
> │ > $"Supervisor.awaitCompiler / Ping / result: 
> '%A{pingResult}'") _locals
> │ > 
> │ >                                         match pingResult 
> with
> │ >                                         | Some _ -> 
> inbox.Post (availablePort, 
> │ > true)
> │ >                                         | None -> do! loop 
> (retry + 1)
> │ >                                     with ex ->
> │ >                                         trace Verbose (fun 
> () -> 
> │ > $"Supervisor.awaitCompiler / Ping / ex: {ex |> 
> SpiralSm.format_exception}") 
> │ > _locals
> │ >                                         do! loop (retry + 
> 1)
> │ >                                 }
> │ >                                 do! loop 1
> │ >                         })
> │ >                         l6 = Some workspaceRoot
> │ >                     }
> │ >                 )
> │ >                 |> SpiralRuntime.execute_with_options_async
> │ > 
> │ >             trace Debug (fun () -> 
> $"Supervisor.awaitCompiler / exitCode: 
> │ > {exitCode} / result: {result}") _locals
> │ >             disposable.Dispose ()
> │ >     }, ct)
> │ > 
> │ >     let! serverPort, managed = compiler.Receive ()
> │ > 
> │ >     let connection = 
> │ > 
> HubConnectionBuilder().WithUrl($"http://{host}:{serverPort}").Build ()
> │ >     do! connection.StartAsync () |> Async.AwaitTask
> │ > 
> │ >     let event = Event<_> ()
> │ >     let disposable' = connection.On<string> 
> ("ServerToClientMsg", event.Trigger)
> │ >     let stream =
> │ >         FSharp.Control.AsyncSeq.unfoldAsync
> │ >             (fun () -> async {
> │ >                 let! msg = event.Publish |> 
> Async.AwaitEvent
> │ >                 return Some (msg |> 
> │ > FSharp.Json.Json.deserialize<ClientErrorsRes>, ())
> │ >             })
> │ >             ()
> │ > 
> │ >     let disposable' =
> │ >         new_disposable (fun () ->
> │ >             async {
> │ >                 disposable'.Dispose ()
> │ >                 do! connection.StopAsync () |> 
> Async.AwaitTask
> │ >                 disposable.Dispose ()
> │ >                 if managed
> │ >                 then do!
> │ >                     SpiralNetworking.wait_for_port_access 
> (Some 100) false host 
> │ > serverPort
> │ >                     |> Async.runWithTimeoutAsync 1500
> │ >                     |> Async.Ignore
> │ >             }
> │ >             |> Async.RunSynchronously
> │ >         )
> │ > 
> │ >     return
> │ >         serverPort,
> │ >         stream,
> │ >         ct,
> │ >         disposable'
> │ > }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > open Hopac
> │ > open Hopac.Infixes
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### server
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let server1 = new_server<Job<unit>, obj, string option, 
> Job<unit>, unit> ()
> │ > let server2 = new_server<Job<unit>, obj, int array, 
> Job<unit>, unit> ()
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > ── [ 237.99ms - diagnostics ] 
> ──────────────────────────────────────────────────
> │ > │ input.fsx (1,15)-(1,25) typecheck 
> warning The method or 
> │ > function 'new_server' should not be given explicit type 
> argument(s) because it 
> │ > does not declare its type parameters explicitly
> │ > │ input.fsx (2,15)-(2,25) typecheck 
> warning The method or 
> │ > function 'new_server' should not be given explicit type 
> argument(s) because it 
> │ > does not declare its type parameters explicitly
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### buildFile
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let buildFile backend timeout port cancellationToken path =
> │ >     let rec loop retry = async {
> │ >         let fullPath = path |> System.IO.Path.GetFullPath 
> |> 
> │ > SpiralFileSystem.normalize_path
> │ >         let fileDir = fullPath |> 
> System.IO.Path.GetDirectoryName
> │ >         let fileName = fullPath |> 
> System.IO.Path.GetFileNameWithoutExtension
> │ >         let! code = fullPath |> 
> SpiralFileSystem.read_all_text_async
> │ > 
> │ >         // let stream, disposable = fileDir |> 
> FileSystem.watchDirectory (fun _ 
> │ > -> true)
> │ >         // use _ = disposable
> │ > 
> │ >         let struct (token, disposable) = 
> SpiralThreading.new_disposable_token 
> │ > cancellationToken
> │ >         use _ = disposable
> │ > 
> │ >         let outputFileName =
> │ >             match backend with
> │ >             | Fsharp -> $"{fileName}.fsx"
> │ >             | Cuda -> $"{fileName}.py"
> │ >             | Gleam -> $"{fileName}.gleam"
> │ > 
> │ >         // let outputContentSeq =
> │ >         //     stream
> │ >         //     |> FSharp.Control.AsyncSeq.chooseAsync 
> (function
> │ >         //         | _, 
> (FileSystem.FileSystemChange.Changed (path, Some text))
> │ >         //             when (path |> 
> System.IO.Path.GetFileName) = 
> │ > outputFileName
> │ >         //             ->
> │ >         //                 // fileDir </> path |> 
> │ > SpiralFileSystem.read_all_text_retry_async
> │ >         //                 text |> Some |> Async.init
> │ >         //         | _ -> None |> Async.init
> │ >         //     )
> │ >         //     |> FSharp.Control.AsyncSeq.map (fun content 
> ->
> │ >         //         Some (content |> SpiralSm.replace "\r\n"
> "\n"), None
> │ >         //     )
> │ > 
> │ >         let printErrorData (data : {| uri : string; errors 
> : RString list |}) =
> │ >             let fileName = data.uri |> 
> System.IO.Path.GetFileName
> │ >             let errors =
> │ >                 data.errors
> │ >                 |> List.map snd
> │ >                 |> SpiralSm.concat "\n"
> │ >             $"{fileName}:\n{errors}"
> │ > 
> │ > 
> │ >         let port = port |> Option.defaultWith 
> getCompilerPort
> │ >         // let! serverPort, errors, ct, disposable = 
> awaitCompiler port (Some 
> │ > token)
> │ >         let serverPort = port
> │ >         // use _ = disposable
> │ > 
> │ >         let errorsSeq =
> │ >             server1.errors
> │ >             |> FSharp.Control.AsyncSeq.choose (fun error ->
> │ >                 match error with
> │ >                 | FatalError message ->
> │ >                     Some (message, error)
> │ >                 | TracedError data ->
> │ >                     Some (data.message, error)
> │ >                 | PackageErrors data when data.errors |> 
> List.isEmpty |> not ->
> │ >                     Some (data |> printErrorData, error)
> │ >                 | TokenizerErrors data when data.errors |> 
> List.isEmpty |> not 
> │ > ->
> │ >                     Some (data |> printErrorData, error)
> │ >                 | ParserErrors data when data.errors |> 
> List.isEmpty |> not ->
> │ >                     Some (data |> printErrorData, error)
> │ >                 | TypeErrors data when data.errors |> 
> List.isEmpty |> not ->
> │ >                     Some (data |> printErrorData, error)
> │ >                 | _ -> None
> │ >             )
> │ >             |> FSharp.Control.AsyncSeq.map (fun (message, 
> error) ->
> │ >                 None, Some (message, error)
> │ >             )
> │ > 
> │ >         let timerSeq =
> │ >             500
> │ >             |> FSharp.Control.AsyncSeq.intervalMs
> │ >             |> FSharp.Control.AsyncSeq.map (fun _ -> None, 
> None)
> │ > 
> │ >         let compilerEvent = Event<option<string> * 
> option<string * 
> │ > ClientErrorsRes>> ()
> │ >         // let disposable' = connection.On<string> 
> ("ServerToClientMsg", 
> │ > event.Trigger)
> │ >         let outputContentSeq =
> │ >             FSharp.Control.AsyncSeq.unfoldAsync
> │ >                 (fun () -> async {
> │ >                     let! msg = compilerEvent.Publish |> 
> Async.AwaitEvent
> │ >                     trace Verbose (fun () -> 
> $"Supervisor.buildFile / 
> │ > outputContentSeq unfoldAsync / msg: %A{msg}") _locals
> │ >                     return Some (msg, ())
> │ >                 })
> │ >                 ()
> │ > 
> │ >         let compilerEvent2 = Event<option<string> * (string
> * ClientErrorsRes) 
> │ > list * int> ()
> │ >         // let disposable' = connection.On<string> 
> ("ServerToClientMsg", 
> │ > event.Trigger)
> │ >         let outputContentSeq2 =
> │ >             FSharp.Control.AsyncSeq.unfoldAsync
> │ >                 (fun () -> async {
> │ >                     let! msg = compilerEvent2.Publish |> 
> Async.AwaitEvent
> │ >                     trace Verbose (fun () -> 
> $"Supervisor.buildFile / 
> │ > outputContentSeq2 unfoldAsync / msg: %A{msg}") _locals
> │ >                     return Some (msg, ())
> │ >                 })
> │ >                 ()
> │ > 
> │ >         let outputSeq =
> │ >             [[ outputContentSeq; errorsSeq; timerSeq ]]
> │ >             // [[ errorsSeq; timerSeq ]]
> │ >             |> FSharp.Control.AsyncSeq.mergeAll
> │ > 
> │ >         let! outputChild =
> │ >             ((None, [[]], 0), outputSeq)
> │ >             ||> FSharp.Control.AsyncSeq.scan (
> │ >                 fun (outputContentResult, errors, 
> typeErrorCount) 
> │ > (outputContent, error) ->
> │ >                     trace Verbose (fun () -> 
> $"Supervisor.buildFile / 
> │ > AsyncSeq.scan / outputContent:\n'{outputContent |> 
> Option.map 
> │ > (SpiralSm.ellipsis_end 1500)} / errors: {errors |> 
> serializeObj} / 
> │ > outputContentResult: {outputContentResult} / 
> typeErrorCount: {typeErrorCount} / 
> │ > retry: {retry} / error: {error} / path: {path}'") _locals
> │ >                     match outputContent, error with
> │ >                     | Some outputContent, None -> Some 
> outputContent, errors, 
> │ > typeErrorCount
> │ >                     | None, Some (
> │ >                         _,
> │ >                         FatalError "File main has a type 
> error somewhere in its 
> │ > path."
> │ >                         ) ->
> │ >                         outputContentResult, errors, 
> typeErrorCount + 1
> │ >                     | None, Some error -> 
> outputContentResult, error :: errors, 
> │ > typeErrorCount
> │ >                     | None, None when typeErrorCount >= 1 
> ->
> │ >                         outputContentResult, errors, 
> typeErrorCount + 1
> │ >                     | _ -> outputContentResult, errors, 
> typeErrorCount
> │ >             )
> │ >             |> FSharp.Control.AsyncSeq.takeWhileInclusive 
> (fun (outputContent, 
> │ > errors, typeErrorCount) ->
> │ >                 trace
> │ >                     Verbose
> │ >                     (fun () -> $"Supervisor.buildFile / 
> takeWhileInclusive / 
> │ > outputContent:\n'{outputContent |> Option.map 
> (SpiralSm.ellipsis_end 1500)}' / 
> │ > errors: {errors |> serializeObj} / typeErrorCount: 
> {typeErrorCount} / retry: 
> │ > {retry} / path: {path}")
> │ >                     _locals
> │ >     #if INTERACTIVE
> │ >                 let errorWait = 1
> │ >     #else
> │ >                 let errorWait = 1
> │ >     #endif
> │ >                 match outputContent, errors with
> │ >                 | None, [[]] when typeErrorCount > 
> errorWait -> false
> │ >                 | _, [[ message, TypeErrors errors ]] ->
> │ >                     compilerEvent.Trigger (None, Some 
> (message, TypeErrors 
> │ > errors))
> │ >                     trace Verbose (fun () -> 
> $"Supervisor.buildFile / 
> │ > takeWhileInclusive / TypeErrors trigger") _locals
> │ >                     false
> │ >                 | None, [[]] -> true
> │ >                 | _ -> false
> │ >             )
> │ >             |> FSharp.Control.AsyncSeq.tryLast
> │ >             // |> Async.withCancellationToken ct
> │ >             |> Async.catch
> │ >             |> Async.runWithTimeoutAsync timeout
> │ >             |> Async.StartChild
> │ > 
> │ >         // do! Async.Sleep 60
> │ > 
> │ >         let fullPathUri = fullPath |> 
> SpiralFileSystem.normalize_path |> 
> │ > SpiralFileSystem.new_file_uri
> │ > 
> │ >         trace Verbose (fun () -> $"Supervisor.buildFile / 
> fullPathUri: 
> │ > %A{fullPathUri}") (fun () -> "")
> │ > 
> │ >         // let fileOpenObj = {| FileOpen = {| uri = 
> fullPathUri; spiText = code 
> │ > |} |}
> │ > 
> │ >         // let! _fileOpenResult = fileOpenObj |> sendObj 
> serverPort
> │ >         let fileOpenArgs = {| uri = fullPathUri; spiText = 
> code |}
> │ >         let! _fileOpenResult =
> │ >             server1.job_null (server1.supervisor *<+ 
> SupervisorReq.FileOpen 
> │ > fileOpenArgs)
> │ >             |> Async.AwaitTask
> │ >             |> Async.runWithTimeoutAsync 60000
> │ >             |> Async.map Option.get
> │ >         trace Verbose (fun () -> $"Supervisor.buildFile / 
> _fileOpenResult: 
> │ > %A{_fileOpenResult}") (fun () -> "")
> │ > 
> │ >         // let! _fileOpenResult = fileOpenObj |> sendObj 
> serverPort
> │ > 
> │ >         // do! Async.Sleep 60
> │ > 
> │ >         let backendId =
> │ >             match backend with
> │ >             | Fsharp -> "Fsharp"
> │ >             | Cuda -> "Python + Cuda"
> │ >             | Gleam -> "Gleam"
> │ >         // let buildFileObj = {| BuildFile = {| uri = 
> fullPathUri; backend = 
> │ > backendId |} |}
> │ > 
> │ >         // let backend = Supervisor.Fsharp
> │ >         let buildFileArgs = {| uri = fullPathUri; backend =
> backendId |}
> │ >         let buildFileResultAsync =
> │ >             server1.job_val (fun res -> server1.supervisor 
> *<+ 
> │ > SupervisorReq.BuildFile(buildFileArgs,res))
> │ >             |> Async.AwaitTask
> │ >             |> Async.runWithTimeoutAsync timeout
> │ >             |> Async.map Option.get
> │ > 
> │ >         let buildFileResultAsync = async {
> │ >             let! buildFileResult = buildFileResultAsync
> │ >             let buildFileResult =
> │ >                 if buildFileResult = "" || buildFileResult 
> = null
> │ >                 then None
> │ >                 else buildFileResult |> SpiralSm.replace 
> "\r\n" "\n" |> Some
> │ >             trace Verbose (fun () -> $"Supervisor.buildFile
> / buildFileResult: 
> │ > %A{buildFileResult}") (fun () -> "")
> │ >             if buildFileResult.IsSome then
> │ >                 compilerEvent2.Trigger (buildFileResult, 
> [[]], 0)
> │ >             return buildFileResult, [[]], 0
> │ >         }
> │ > 
> │ >         let resultAsync =
> │ >             outputChild
> │ >             |> Async.map (fun x ->
> │ >                 trace Verbose (fun () -> 
> $"Supervisor.buildFile / outputChild / 
> │ > x: %A{x}") _locals
> │ >                 match x with
> │ >                 | Some (Ok (Some (outputCode, errors, 
> typeErrorCount))) ->
> │ >                     let x =
> │ >                         match errors with
> │ >                         | [[ message, TypeErrors errors ]] 
> ->
> │ >                             trace Verbose (fun () -> 
> $"Supervisor.buildFile / 
> │ > outputChild |> Async.map") _locals
> │ >                             compilerEvent2.Trigger (None, 
> [[ message, TypeErrors
> │ > errors ]], 0)
> │ >                             trace Verbose (fun () -> 
> $"Supervisor.buildFile / 
> │ > outputChild |> Async.map") _locals
> │ >                         | _ -> ()
> │ >                     outputCode, errors |> List.distinct |> 
> List.rev, 
> │ > typeErrorCount
> │ >                 | Some (Error ex) ->
> │ >                     trace Critical (fun () -> 
> $"Supervisor.buildFile / error: 
> │ > {ex |> SpiralSm.format_exception} / retry: {retry}") 
> _locals
> │ >                     None, [[]], 0
> │ >                 | _ -> None, [[]], 0
> │ >             )
> │ > 
> │ >         trace Verbose (fun () -> $"Supervisor.buildFile / 
> before result: 
> │ > %A{()}") (fun () -> "")
> │ > 
> │ >         // let resultSeq =
> │ >         //     [[| buildFileResultAsync; resultAsync |]]
> │ >         //     |> FSharp.Control.AsyncSeq.ofSeqAsync
> │ > 
> │ > 
> │ >         let buildFileResultSeq = [[| buildFileResultAsync 
> |]] |> 
> │ > FSharp.Control.AsyncSeq.ofSeqAsync
> │ >         let resultSeq = [[| resultAsync |]] |> 
> │ > FSharp.Control.AsyncSeq.ofSeqAsync
> │ > 
> │ >         let resultSeq =
> │ >             [[ outputContentSeq2; buildFileResultSeq; 
> resultSeq ]]
> │ >             |> FSharp.Control.AsyncSeq.mergeAll
> │ > 
> │ >         let! buildFileResult, result, typeErrorCount =
> │ >             resultSeq
> │ >             // |> FSharp.Control.AsyncSeq.collect 
> (Array.singleton >> 
> │ > FSharp.Control.AsyncSeq.ofSeq)
> │ >             |> FSharp.Control.AsyncSeq.collect (fun x ->
> │ >                 trace Verbose (fun () -> 
> $"Supervisor.buildFile / ofSeqAsync / 
> │ > x: %A{x}") _locals
> │ >                 match x with
> │ >                 | Some _, _, _ as x -> [[| x |]]
> │ >                 | _, _ :: _, _ as x -> [[| x |]]
> │ >                 | _ -> [[||]]
> │ >                 |> FSharp.Control.AsyncSeq.ofSeq
> │ >             )
> │ >             |> FSharp.Control.AsyncSeq.tryFirst
> │ >             |> Async.map Option.get
> │ > 
> │ >         trace Verbose (fun () -> $"Supervisor.buildFile / 
> result: %A{result} / 
> │ > buildFileResult: %A{buildFileResult} / typeErrorCount: 
> {typeErrorCount}") (fun 
> │ > () -> "")
> │ > 
> │ >         match buildFileResult with
> │ >         // | None when typeErrorCount > 0 && retry = 0 ->
> │ >         //     trace Verbose (fun () -> 
> $"Supervisor.buildFile / result: 
> │ > {result} / retry: {retry} / typeErrorCount: 
> {typeErrorCount} / fileDir: 
> │ > {fileDir} / targetDir: {targetDir}") _locals
> │ >         //     return! loop (retry + 1)
> │ >         | _ ->
> │ >             let targetDir = workspaceRoot </> "target"
> │ >             trace Verbose (fun () -> $"Supervisor.buildFile
> / retry: {retry} / 
> │ > typeErrorCount: {typeErrorCount} / fileDir: {fileDir} / 
> targetDir: {targetDir}")
> │ > _locals
> │ >             if fileDir |> SpiralSm.starts_with targetDir 
> then
> │ >                 let fileDirUri = fileDir |> 
> SpiralFileSystem.normalize_path |> 
> │ > SpiralFileSystem.new_file_uri
> │ > 
> │ >                 // let fileDeleteObj = {| FileDelete = {| 
> uris = [[| fileDirUri 
> │ > |]] |} |}
> │ >                 // let! _fileDeleteResult = fileDeleteObj 
> |> sendObj serverPort
> │ >                 let fileDeleteArgs = {| uris = [[| 
> fileDirUri |]] |}
> │ >                 let! _fileDeleteResult =
> │ >                     server1.job_null (server1.supervisor 
> *<+ 
> │ > SupervisorReq.FileDelete fileDeleteArgs)
> │ >                     |> Async.AwaitTask
> │ >                 ()
> │ > 
> │ >             let outputPath = fileDir </> outputFileName
> │ >             return outputPath, buildFileResult, result
> │ >     }
> │ >     loop 0
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### SpiralInput
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > type SpiralInput =
> │ >     | Spi of string * string option
> │ >     | Spir of string
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### persistCode
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let persistCode (input: {| backend : Backend option; input:
> SpiralInput; 
> │ > packages: string [[]] |}) = async {
> │ >     let targetDir = workspaceRoot </> "target/spiral_Eval"
> │ > 
> │ >     let packagesDir = targetDir </> "packages"
> │ > 
> │ >     let hashHex = $"%A{input.backend}%A{input.input}" |> 
> SpiralCrypto.hash_text
> │ > 
> │ >     let packageDir = packagesDir </> hashHex
> │ > 
> │ >     let packageDir =
> │ >         if input.backend = Some Gleam
> │ >         then packageDir </> "src"
> │ >         else packageDir
> │ > 
> │ >     packageDir |> System.IO.Directory.CreateDirectory |> 
> ignore
> │ > 
> │ >     let moduleName = "main"
> │ > 
> │ >     let spirModule, spiModule =
> │ >         match input.input with
> │ >         | Spi (_spi, Some _spir) -> true, true
> │ >         | Spi (_spi, None) -> false, true
> │ >         | Spir _spir -> true, false
> │ >         |> fun (spir, spi) ->
> │ >             (if spir then $"{moduleName}_real*-" else ""),
> │ >             if spi then moduleName else ""
> │ > 
> │ >     let libLinkTargetPath = workspaceRoot </> 
> "../spiral/lib/spiral"
> │ >     let libLinkPath = packageDir </> "spiral"
> │ > 
> │ >     let packagesModule =
> │ >         input.packages
> │ >         |> Array.map (fun package ->
> │ >             let path = workspaceRoot </> package
> │ >             let packageName = path |> 
> System.IO.Path.GetFileName
> │ >             let libLinkPath = packageDir </> packageName
> │ >             libLinkPath |> SpiralFileSystem.link_directory 
> path
> │ >             $"{packageName}-"
> │ >         )
> │ >         |> String.concat "\n    "
> │ > 
> │ >     let packageDir' =
> │ >         if input.packages |> Array.isEmpty
> │ >         then workspaceRoot </> "../spiral/lib"
> │ >         else
> │ >             libLinkPath |> SpiralFileSystem.link_directory 
> libLinkTargetPath
> │ >             packageDir
> │ > 
> │ >     let spiprojPath = packageDir </> "package.spiproj"
> │ >     let spiprojCode =
> │ >         $"""packageDir: {packageDir'}
> │ > packages:
> │ >     |core-
> │ >     spiral-
> │ >     {packagesModule}
> │ > modules:
> │ >     {spirModule}
> │ >     {spiModule}
> │ > """
> │ >     do! spiprojCode |> 
> SpiralFileSystem.write_all_text_exists spiprojPath
> │ > 
> │ >     let spirPath = packageDir </> $"{moduleName}_real.spir"
> │ >     let spiPath = packageDir </> $"{moduleName}.spi"
> │ > 
> │ >     let spirCode, spiCode =
> │ >         match input.input with
> │ >         | Spi (spi, Some spir) -> Some spir, Some spi
> │ >         | Spi (spi, None) -> None, Some spi
> │ >         | Spir spir -> Some spir, None
> │ > 
> │ >     match spirCode with
> │ >     | Some spir -> do! spir |> 
> SpiralFileSystem.write_all_text_exists spirPath
> │ >     | None -> ()
> │ >     match spiCode with
> │ >     | Some spi -> do! spi |> 
> SpiralFileSystem.write_all_text_exists spiPath
> │ >     | None -> ()
> │ > 
> │ >     let spiralPath =
> │ >         match input.input with
> │ >         | Spi _ -> spiPath
> │ >         | Spir _ -> spirPath
> │ >     match input.backend with
> │ >     | None -> return spiralPath, None
> │ >     | Some backend ->
> │ >         let outputFileName =
> │ >             let fileName =
> │ >                 match input.input with
> │ >                 | Spi _ -> moduleName
> │ >                 | Spir _ -> $"{moduleName}_real"
> │ >             match backend with
> │ >             | Fsharp -> $"{fileName}.fsx"
> │ >             | Cuda -> $"{fileName}.py"
> │ >             | Gleam -> $"{fileName}.gleam"
> │ >         let outputPath = packageDir </> outputFileName
> │ >         if outputPath |> System.IO.File.Exists |> not
> │ >         then return spiralPath, None
> │ >         else
> │ >             let! oldCode = spiralPath |> 
> SpiralFileSystem.read_all_text_async
> │ >             if oldCode <> (spiCode |> Option.defaultValue 
> (spirCode |> 
> │ > Option.defaultValue ""))
> │ >             then return spiralPath, None
> │ >             else
> │ >                 let! outputCode = outputPath |> 
> │ > SpiralFileSystem.read_all_text_async
> │ >                 return spiralPath, Some (outputPath, 
> outputCode |> 
> │ > SpiralSm.replace "\r\n" "\n")
> │ >     }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### buildCode
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let buildCode backend packages isCache timeout 
> cancellationToken input = async {
> │ >     let! mainPath, outputCache =
> │ >         persistCode {| input = input; backend = Some 
> backend; packages = 
> │ > packages |}
> │ >     match outputCache with
> │ >     | Some (outputPath, outputCode) when isCache -> return 
> mainPath, 
> │ > (outputPath, Some outputCode), [[]]
> │ >     | _ ->
> │ >         let! outputPath, outputCode, errors = mainPath |> 
> buildFile backend 
> │ > timeout None cancellationToken
> │ >         return mainPath, (outputPath, outputCode), errors
> │ > }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > SpiralTrace.TraceLevel.US0_0 |> set_trace_level
> │ > """inl app () =
> │ >     console.write_line "text"
> │ >     1i32
> │ > 
> │ > inl main () =
> │ >     app
> │ >     |> dyn
> │ >     |> ignore
> │ > """
> │ > |> fun code -> Spi (code, None)
> │ > |> buildCode Fsharp [[||]] false 20000 None
> │ > |> Async.runWithTimeout 21000
> │ > |> Option.map (fun (_, (_, outputContent), errors) -> 
> outputContent, errors |> 
> │ > List.map fst)
> │ > |> _assertEqual (
> │ >     Some (
> │ >         Some """let rec closure1 () () : unit =
> │ >     let v0 : (string -> unit) = System.Console.WriteLine
> │ >     let v1 : string = "text"
> │ >     v0 v1
> │ > and closure0 () () : int32 =
> │ >     let v3 : unit = ()
> │ >     let v4 : (unit -> unit) = closure1()
> │ >     let v5 : unit = (fun () -> v4 (); v3) ()
> │ >     1
> │ > let v0 : (unit -> int32) = closure0()
> │ > ()
> │ > """,
> │ >         [[]]
> │ >     )
> │ > )
> │ > 
> │ > ── [ 3.74s - stdout ] 
> ──────────────────────────────────────────────────────────
> │ > │ 00:01:59 v #1 Supervisor.buildFile 
> / fullPathUri: 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/22ccd04317d5605c65f81c
> │ > 7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi"
> │ > │ 00:01:59 v #2 Supervisor.buildFile 
> / _fileOpenResult: 
> │ > <null>
> │ > │ 00:01:59 v #3 Supervisor.buildFile 
> / before result: ()
> │ > │ 00:01:59 v #4 Supervisor.buildFile 
> / takeWhileInclusive 
> │ > / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f
> │ > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi
> │ > │ 00:01:59 v #5 Supervisor.buildFile 
> / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f
> │ > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi'
> │ > │ 00:01:59 v #6 Supervisor.buildFile 
> / takeWhileInclusive 
> │ > / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f
> │ > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi
> │ > │ 00:02:00 v #532 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f
> │ > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi'
> │ > │ 00:02:00 v #533 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f
> │ > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi
> │ > │ 00:02:00 v #776 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f
> │ > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi'
> │ > │ 00:02:00 v #777 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f
> │ > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi
> │ > │ 00:02:01 v #1008 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f
> │ > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi'
> │ > │ 00:02:01 v #1009 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f
> │ > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi
> │ > │ 00:02:01 v #1143 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f
> │ > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi'
> │ > │ 00:02:01 v #1144 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f
> │ > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi
> │ > │ 00:02:02 v #1317 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f
> │ > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi'
> │ > │ 00:02:02 v #1318 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f
> │ > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi
> │ > │ 00:02:02 v #1333 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f
> │ > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi'
> │ > │ 00:02:02 v #1334 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f
> │ > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi
> │ > │ 00:02:02 v #1335 
> Supervisor.buildFile / buildFileResult:
> │ > Some
> │ > │   "let rec closure1 () () : unit =
> │ > │     let v0 : (string -> unit) = 
> System.Console.WriteLine
> │ > │     let v1 : string = "text"
> │ > │     v0 v1
> │ > │ and closure0 () () : int32 =
> │ > │     let v3 : unit = ()
> │ > │     let v4 : (unit -> unit) = closure1()
> │ > │     let v5 : unit = (fun () -> v4 (); 
> v3) ()
> │ > │     1
> │ > │ let v0 : (unit -> int32) = closure0()
> │ > │ ()
> │ > │ "
> │ > │ 00:02:02 v #1336 
> Supervisor.buildFile / 
> │ > outputContentSeq2 unfoldAsync / msg: (Some
> │ > │    "let rec closure1 () () : unit =
> │ > │     let v0 : (string -> unit) = 
> System.Console.WriteLine
> │ > │     let v1 : string = "text"
> │ > │     v0 v1
> │ > │ and closure0 () () : int32 =
> │ > │     let v3 : unit = ()
> │ > │     let v4 : (unit -> unit) = closure1()
> │ > │     let v5 : unit = (fun () -> v4 (); 
> v3) ()
> │ > │     1
> │ > │ let v0 : (unit -> int32) = closure0()
> │ > │ ()
> │ > │ ",
> │ > │  [], 0)
> │ > │ 00:02:02 v #1337 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (Some
> │ > │    "let rec closure1 () () : unit =
> │ > │     let v0 : (string -> unit) = 
> System.Console.WriteLine
> │ > │     let v1 : string = "text"
> │ > │     v0 v1
> │ > │ and closure0 () () : int32 =
> │ > │     let v3 : unit = ()
> │ > │     let v4 : (unit -> unit) = closure1()
> │ > │     let v5 : unit = (fun () -> v4 (); 
> v3) ()
> │ > │     1
> │ > │ let v0 : (unit -> int32) = closure0()
> │ > │ ()
> │ > │ ",
> │ > │  [], 0)
> │ > │ 00:02:02 v #1338 
> Supervisor.buildFile / result: [] / 
> │ > buildFileResult: Some
> │ > │   "let rec closure1 () () : unit =
> │ > │     let v0 : (string -> unit) = 
> System.Console.WriteLine
> │ > │     let v1 : string = "text"
> │ > │     v0 v1
> │ > │ and closure0 () () : int32 =
> │ > │     let v3 : unit = ()
> │ > │     let v4 : (unit -> unit) = closure1()
> │ > │     let v5 : unit = (fun () -> v4 (); 
> v3) ()
> │ > │     1
> │ > │ let v0 : (unit -> int32) = closure0()
> │ > │ ()
> │ > │ " / typeErrorCount: 0
> │ > │ 00:02:02 v #1339 
> Supervisor.buildFile / retry: 0 / 
> │ > typeErrorCount: 0 / fileDir: 
> │ > 
> c:\home\git\polyglot\target\spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f
> │ > 357e85dc69f2d6d04b9dc60aebd08a0d6 / targetDir: 
> c:/home/git\polyglot\target
> │ > │ Some
> │ > │   (Some
> │ > │      "let rec closure1 () () : unit =
> │ > │     let v0 : (string -> unit) = 
> System.Console.WriteLine
> │ > │     let v1 : string = "text"
> │ > │     v0 v1
> │ > │ and closure0 () () : int32 =
> │ > │     let v3 : unit = ()
> │ > │     let v4 : (unit -> unit) = closure1()
> │ > │     let v5 : unit = (fun () -> v4 (); 
> v3) ()
> │ > │     1
> │ > │ let v0 : (unit -> int32) = closure0()
> │ > │ ()
> │ > │ ",
> │ > │    [])
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > """
> │ > inl init_series start end inc =
> │ >     inl total : f64 = conv ((end - start) / inc) + 1
> │ >     listm.init total (conv >> (*) inc >> (+) start) : list 
> f64
> │ > 
> │ > type integration = (f64 -> f64) -> f64 -> f64 -> f64
> │ > 
> │ > inl integral dt : integration =
> │ >     fun f a b =>
> │ >         init_series (a + dt / 2) (b - dt / 2) dt
> │ >         |> listm.map (f >> (*) dt)
> │ >         |> listm.fold (+) 0
> │ > 
> │ > inl main () =
> │ >     integral 0.1 (fun x => x ** 2) 0 1
> │ > """
> │ > |> fun code -> Spi (code, None)
> │ > |> buildCode Fsharp [[||]] false 10000 None
> │ > |> Async.runWithTimeout 11000
> │ > |> Option.map (fun (_, (_, outputContent), errors) -> 
> outputContent, errors |> 
> │ > List.map fst)
> │ > |> _assertEqual (
> │ >     Some (
> │ >         Some "0.3325000000000001\n",
> │ >         [[]]
> │ >     )
> │ > )
> │ > 
> │ > ── [ 680.59ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 00:02:03 v #1342 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312
> │ > a6aad9129ffd3cbd56ac7f0327106f1db\main.spi
> │ > │ 00:02:03 v #1343 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312
> │ > a6aad9129ffd3cbd56ac7f0327106f1db\main.spi'
> │ > │ 00:02:03 v #1344 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312
> │ > a6aad9129ffd3cbd56ac7f0327106f1db\main.spi
> │ > │ 00:02:03 v #1345 
> Supervisor.buildFile / fullPathUri: 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/c127414de2a2a92d9fd93e
> │ > a5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi"
> │ > │ 00:02:03 v #1346 
> Supervisor.buildFile / _fileOpenResult:
> │ > <null>
> │ > │ 00:02:03 v #1347 
> Supervisor.buildFile / before result: 
> │ > ()
> │ > │ 00:02:03 v #1583 
> Supervisor.buildFile / buildFileResult:
> │ > Some "0.3325000000000001
> │ > │ "
> │ > │ 00:02:03 v #1584 
> Supervisor.buildFile / 
> │ > outputContentSeq2 unfoldAsync / msg: (Some 
> "0.3325000000000001
> │ > │ ", [], 0)
> │ > │ 00:02:03 v #1585 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (Some "0.3325000000000001
> │ > │ ", [], 0)
> │ > │ 00:02:03 v #1586 
> Supervisor.buildFile / result: [] / 
> │ > buildFileResult: Some "0.3325000000000001
> │ > │ " / typeErrorCount: 0
> │ > │ 00:02:03 v #1587 
> Supervisor.buildFile / retry: 0 / 
> │ > typeErrorCount: 0 / fileDir: 
> │ > 
> c:\home\git\polyglot\target\spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312
> │ > a6aad9129ffd3cbd56ac7f0327106f1db / targetDir: 
> c:/home/git\polyglot\target
> │ > │ Some (Some "0.3325000000000001
> │ > │ ", [])
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > """
> │ > inl init_series start end inc =
> │ >     inl total : f64 = conv ((end - start) / inc) + 1
> │ >     listm.init total (conv >> (*) inc >> (+) start) : list 
> f64
> │ > 
> │ > type integration = (f64 -> f64) -> f64 -> f64 -> f64
> │ > 
> │ > inl integral dt : integration =
> │ >     fun f a b =>
> │ >         init_series (a + dt / 2) (b - dt / 2) dt
> │ >         |> listm.map (f >> (*) dt)
> │ >         |> listm.fold (+) 0
> │ > 
> │ > inl main () =
> │ >     integral 0.1 (fun x => x ** 2) 0 1
> │ > """
> │ > |> fun code -> Spi (code, None)
> │ > |> buildCode Cuda [[||]] false 10000 None
> │ > |> Async.runWithTimeout 11000
> │ > |> Option.map (fun (_, (_, outputContent), errors) -> 
> outputContent, errors |> 
> │ > List.map fst)
> │ > |> _assertEqual (
> │ >     Some (
> │ >         Some @"kernel = r""""""
> │ > """"""
> │ > class static_array():
> │ >     def __init__(self, length):
> │ >         self.ptr = [[]]
> │ >         for _ in range(length):
> │ >             self.ptr.append(None)
> │ > 
> │ >     def __getitem__(self, index):
> │ >         assert 0 <= index < len(self.ptr), ""The get index 
> needs to be in 
> │ > range.""
> │ >         return self.ptr[[index]]
> │ >     
> │ >     def __setitem__(self, index, value):
> │ >         assert 0 <= index < len(self.ptr), ""The set index 
> needs to be in 
> │ > range.""
> │ >         self.ptr[[index]] = value
> │ > 
> │ > class static_array_list(static_array):
> │ >     def __init__(self, length):
> │ >         super().__init__(length)
> │ >         self.length = 0
> │ > 
> │ >     def __getitem__(self, index):
> │ >         assert 0 <= index < self.length, ""The get index 
> needs to be in range.""
> │ >         return self.ptr[[index]]
> │ >     
> │ >     def __setitem__(self, index, value):
> │ >         assert 0 <= index < self.length, ""The set index 
> needs to be in range.""
> │ >         self.ptr[[index]] = value
> │ > 
> │ >     def push(self,value):
> │ >         assert (self.length < len(self.ptr)), ""The length 
> before pushing has to
> │ > be less than the maximum length of the array.""
> │ >         self.ptr[[self.length]] = value
> │ >         self.length += 1
> │ > 
> │ >     def pop(self):
> │ >         assert (0 < self.length), ""The length before 
> popping has to be greater 
> │ > than 0.""
> │ >         self.length -= 1
> │ >         return self.ptr[[self.length]]
> │ > 
> │ >     def unsafe_set_length(self,i):
> │ >         assert 0 <= i <= len(self.ptr), ""The new length 
> has to be in range.""
> │ >         self.length = i
> │ > 
> │ > class dynamic_array(static_array): 
> │ >     pass
> │ > 
> │ > class dynamic_array_list(static_array_list):
> │ >     def length_(self): return self.length
> │ > 
> │ > import cupy as cp
> │ > import numpy as np
> │ > from dataclasses import dataclass
> │ > from typing import NamedTuple, Union, Callable, Tuple
> │ > i8 = int; i16 = int; i32 = int; i64 = int; u8 = int; u16 = 
> int; u32 = int; u64 =
> │ > int; f32 = float; f64 = float; char = str; string = str
> │ > cuda = False
> │ > 
> │ > def main_body():
> │ >     return 0.3325000000000001
> │ > 
> │ > def main():
> │ >     r = main_body()
> │ >     if cuda: cp.cuda.get_current_stream().synchronize() # 
> This line is here so 
> │ > the `__trap()` calls on the kernel aren't missed.
> │ >     return r
> │ > 
> │ > if __name__ == '__main__': result = main(); None if result 
> is None else 
> │ > print(result)
> │ > ",
> │ >         [[]]
> │ >     )
> │ > )
> │ > 
> │ > ── [ 760.73ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 00:02:03 v #1592 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc
> │ > 056ee1f21be4a24b26e8533ec368831c8\main.spi
> │ > │ 00:02:03 v #1593 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc
> │ > 056ee1f21be4a24b26e8533ec368831c8\main.spi'
> │ > │ 00:02:03 v #1594 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc
> │ > 056ee1f21be4a24b26e8533ec368831c8\main.spi
> │ > │ 00:02:03 v #1595 
> Supervisor.buildFile / fullPathUri: 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/ca288d6928a8e761855210
> │ > f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi"
> │ > │ 00:02:03 v #1596 
> Supervisor.buildFile / _fileOpenResult:
> │ > <null>
> │ > │ 00:02:03 v #1597 
> Supervisor.buildFile / before result: 
> │ > ()
> │ > │ 00:02:04 v #1834 
> Supervisor.buildFile / buildFileResult:
> │ > Some
> │ > │   "kernel = r"""
> │ > │ """
> │ > │ class static_array():
> │ > │     def __init__(self, length):
> │ > │         self.ptr = []
> │ > │         for _ in range(length):
> │ > │             self.ptr.append(None)
> │ > │ 
> │ > │     def __getitem__(self, index):
> │ > │         assert 0 <= index < 
> len(self.ptr), "The get index 
> │ > needs to be in range."
> │ > │         return self.ptr[index]
> │ > │     
> │ > │     def __setitem__(self, index, value):
> │ > │         assert 0 <= index < 
> len(self.ptr), "The set index 
> │ > needs to be in range."
> │ > │         self.ptr[index] = value
> │ > │ 
> │ > │ class static_array_list(static_array):
> │ > │     def __init__(self, length):
> │ > │         super().__init__(length)
> │ > │         self.length = 0
> │ > │ 
> │ > │     def __getitem__(self, index):
> │ > │         assert 0 <= index < self.length,
> "The get index needs
> │ > to be in range."
> │ > │         return self.ptr[index]
> │ > │     
> │ > │     def __setitem__(self, index, value):
> │ > │         assert 0 <= index < self.length,
> "The set index needs
> │ > to be in range."
> │ > │         self.ptr[index] = value
> │ > │ 
> │ > │     def push(self,value):
> │ > │         assert (self.length < 
> len(self.ptr)), "The length 
> │ > before pushing has to be less than the maximum length of 
> the array."
> │ > │         self.ptr[self.length] = value
> │ > │         self.length += 1
> │ > │ 
> │ > │     def pop(self):
> │ > │         assert (0 < self.length), "The 
> length before popping 
> │ > has to be greater than 0."
> │ > │         self.length -= 1
> │ > │         return self.ptr[self.length]
> │ > │ 
> │ > │     def unsafe_set_length(self,i):
> │ > │         assert 0 <= i <= len(self.ptr), 
> "The new length has 
> │ > to be in range."
> │ > │         self.length = i
> │ > │ 
> │ > │ class dynamic_array(static_array): 
> │ > │     pass
> │ > │ 
> │ > │ class 
> dynamic_array_list(static_array_list):
> │ > │     def length_(self): return 
> self.length
> │ > │ 
> │ > │ import cupy as cp
> │ > │ import numpy as np
> │ > │ from dataclasses import dataclass
> │ > │ from typing import NamedTuple, Union, 
> Callable, Tuple
> │ > │ i8 = int; i16 = int; i32 = int; i64 = 
> int; u8 = int; u16 = 
> │ > int; u32 = int; u64 = int; f32 = float; f64 = float; char =
> str; string = str
> │ > │ cuda = False
> │ > │ 
> │ > │ def main_body():
> │ > │     return 0.3325000000000001
> │ > │ 
> │ > │ def main():
> │ > │     r = main_body()
> │ > │     if cuda: 
> cp.cuda.get_current_stream().synchronize() # 
> │ > This line is here so the `__trap()` calls on the kernel 
> aren't missed.
> │ > │     return r
> │ > │ 
> │ > │ if __name__ == '__main__': result = 
> main(); None if result is
> │ > None else print(result)
> │ > │ "
> │ > │ 00:02:04 v #1835 
> Supervisor.buildFile / 
> │ > outputContentSeq2 unfoldAsync / msg: (Some
> │ > │    "kernel = r"""
> │ > │ """
> │ > │ class static_array():
> │ > │     def __init__(self, length):
> │ > │         self.ptr = []
> │ > │         for _ in range(length):
> │ > │             self.ptr.append(None)
> │ > │ 
> │ > │     def __getitem__(self, index):
> │ > │         assert 0 <= index < 
> len(self.ptr), "The get index 
> │ > needs to be in range."
> │ > │         return self.ptr[index]
> │ > │     
> │ > │     def __setitem__(self, index, value):
> │ > │         assert 0 <= index < 
> len(self.ptr), "The set index 
> │ > needs to be in range."
> │ > │         self.ptr[index] = value
> │ > │ 
> │ > │ class static_array_list(static_array):
> │ > │     def __init__(self, length):
> │ > │         super().__init__(length)
> │ > │         self.length = 0
> │ > │ 
> │ > │     def __getitem__(self, index):
> │ > │         assert 0 <= index < self.length,
> "The get index needs
> │ > to be in range."
> │ > │         return self.ptr[index]
> │ > │     
> │ > │     def __setitem__(self, index, value):
> │ > │         assert 0 <= index < self.length,
> "The set index needs
> │ > to be in range."
> │ > │         self.ptr[index] = value
> │ > │ 
> │ > │     def push(self,value):
> │ > │         assert (self.length < 
> len(self.ptr)), "The length 
> │ > before pushing has to be less than the maximum length of 
> the array."
> │ > │         self.ptr[self.length] = value
> │ > │         self.length += 1
> │ > │ 
> │ > │     def pop(self):
> │ > │         assert (0 < self.length), "The 
> length before popping 
> │ > has to be greater than 0."
> │ > │         self.length -= 1
> │ > │         return self.ptr[self.length]
> │ > │ 
> │ > │     def unsafe_set_length(self,i):
> │ > │         assert 0 <= i <= len(self.ptr), 
> "The new length has 
> │ > to be in range."
> │ > │         self.length = i
> │ > │ 
> │ > │ class dynamic_array(static_array): 
> │ > │     pass
> │ > │ 
> │ > │ class 
> dynamic_array_list(static_array_list):
> │ > │     def length_(self): return 
> self.length
> │ > │ 
> │ > │ import cupy as cp
> │ > │ import numpy as np
> │ > │ from dataclasses import dataclass
> │ > │ from typing import NamedTuple, Union, 
> Callable, Tuple
> │ > │ i8 = int; i16 = int; i32 = int; i64 = 
> int; u8 = int; u16 = 
> │ > int; u32 = int; u64 = int; f32 = float; f64 = float; char =
> str; string = str
> │ > │ cuda = False
> │ > │ 
> │ > │ def main_body():
> │ > │     return 0.3325000000000001
> │ > │ 
> │ > │ def main():
> │ > │     r = main_body()
> │ > │     if cuda: 
> cp.cuda.get_current_stream().synchronize() # 
> │ > This line is here so the `__trap()` calls on the kernel 
> aren't missed.
> │ > │     return r
> │ > │ 
> │ > │ if __name__ == '__main__': result = 
> main(); None if result is
> │ > None else print(result)
> │ > │ ",
> │ > │  [], 0)
> │ > │ 00:02:04 v #1836 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (Some
> │ > │    "kernel = r"""
> │ > │ """
> │ > │ class static_array():
> │ > │     def __init__(self, length):
> │ > │         self.ptr = []
> │ > │         for _ in range(length):
> │ > │             self.ptr.append(None)
> │ > │ 
> │ > │     def __getitem__(self, index):
> │ > │         assert 0 <= index < 
> len(self.ptr), "The get index 
> │ > needs to be in range."
> │ > │         return self.ptr[index]
> │ > │     
> │ > │     def __setitem__(self, index, value):
> │ > │         assert 0 <= index < 
> len(self.ptr), "The set index 
> │ > needs to be in range."
> │ > │         self.ptr[index] = value
> │ > │ 
> │ > │ class static_array_list(static_array):
> │ > │     def __init__(self, length):
> │ > │         super().__init__(length)
> │ > │         self.length = 0
> │ > │ 
> │ > │     def __getitem__(self, index):
> │ > │         assert 0 <= index < self.length,
> "The get index needs
> │ > to be in range."
> │ > │         return self.ptr[index]
> │ > │     
> │ > │     def __setitem__(self, index, value):
> │ > │         assert 0 <= index < self.length,
> "The set index needs
> │ > to be in range."
> │ > │         self.ptr[index] = value
> │ > │ 
> │ > │     def push(self,value):
> │ > │         assert (self.length < 
> len(self.ptr)), "The length 
> │ > before pushing has to be less than the maximum length of 
> the array."
> │ > │         self.ptr[self.length] = value
> │ > │         self.length += 1
> │ > │ 
> │ > │     def pop(self):
> │ > │         assert (0 < self.length), "The 
> length before popping 
> │ > has to be greater than 0."
> │ > │         self.length -= 1
> │ > │         return self.ptr[self.length]
> │ > │ 
> │ > │     def unsafe_set_length(self,i):
> │ > │         assert 0 <= i <= len(self.ptr), 
> "The new length has 
> │ > to be in range."
> │ > │         self.length = i
> │ > │ 
> │ > │ class dynamic_array(static_array): 
> │ > │     pass
> │ > │ 
> │ > │ class 
> dynamic_array_list(static_array_list):
> │ > │     def length_(self): return 
> self.length
> │ > │ 
> │ > │ import cupy as cp
> │ > │ import numpy as np
> │ > │ from dataclasses import dataclass
> │ > │ from typing import NamedTuple, Union, 
> Callable, Tuple
> │ > │ i8 = int; i16 = int; i32 = int; i64 = 
> int; u8 = int; u16 = 
> │ > int; u32 = int; u64 = int; f32 = float; f64 = float; char =
> str; string = str
> │ > │ cuda = False
> │ > │ 
> │ > │ def main_body():
> │ > │     return 0.3325000000000001
> │ > │ 
> │ > │ def main():
> │ > │     r = main_body()
> │ > │     if cuda: 
> cp.cuda.get_current_stream().synchronize() # 
> │ > This line is here so the `__trap()` calls on the kernel 
> aren't missed.
> │ > │     return r
> │ > │ 
> │ > │ if __name__ == '__main__': result = 
> main(); None if result is
> │ > None else print(result)
> │ > │ ",
> │ > │  [], 0)
> │ > │ 00:02:04 v #1837 
> Supervisor.buildFile / result: [] / 
> │ > buildFileResult: Some
> │ > │   "kernel = r"""
> │ > │ """
> │ > │ class static_array():
> │ > │     def __init__(self, length):
> │ > │         self.ptr = []
> │ > │         for _ in range(length):
> │ > │             self.ptr.append(None)
> │ > │ 
> │ > │     def __getitem__(self, index):
> │ > │         assert 0 <= index < 
> len(self.ptr), "The get index 
> │ > needs to be in range."
> │ > │         return self.ptr[index]
> │ > │     
> │ > │     def __setitem__(self, index, value):
> │ > │         assert 0 <= index < 
> len(self.ptr), "The set index 
> │ > needs to be in range."
> │ > │         self.ptr[index] = value
> │ > │ 
> │ > │ class static_array_list(static_array):
> │ > │     def __init__(self, length):
> │ > │         super().__init__(length)
> │ > │         self.length = 0
> │ > │ 
> │ > │     def __getitem__(self, index):
> │ > │         assert 0 <= index < self.length,
> "The get index needs
> │ > to be in range."
> │ > │         return self.ptr[index]
> │ > │     
> │ > │     def __setitem__(self, index, value):
> │ > │         assert 0 <= index < self.length,
> "The set index needs
> │ > to be in range."
> │ > │         self.ptr[index] = value
> │ > │ 
> │ > │     def push(self,value):
> │ > │         assert (self.length < 
> len(self.ptr)), "The length 
> │ > before pushing has to be less than the maximum length of 
> the array."
> │ > │         self.ptr[self.length] = value
> │ > │         self.length += 1
> │ > │ 
> │ > │     def pop(self):
> │ > │         assert (0 < self.length), "The 
> length before popping 
> │ > has to be greater than 0."
> │ > │         self.length -= 1
> │ > │         return self.ptr[self.length]
> │ > │ 
> │ > │     def unsafe_set_length(self,i):
> │ > │         assert 0 <= i <= len(self.ptr), 
> "The new length has 
> │ > to be in range."
> │ > │         self.length = i
> │ > │ 
> │ > │ class dynamic_array(static_array): 
> │ > │     pass
> │ > │ 
> │ > │ class 
> dynamic_array_list(static_array_list):
> │ > │     def length_(self): return 
> self.length
> │ > │ 
> │ > │ import cupy as cp
> │ > │ import numpy as np
> │ > │ from dataclasses import dataclass
> │ > │ from typing import NamedTuple, Union, 
> Callable, Tuple
> │ > │ i8 = int; i16 = int; i32 = int; i64 = 
> int; u8 = int; u16 = 
> │ > int; u32 = int; u64 = int; f32 = float; f64 = float; char =
> str; string = str
> │ > │ cuda = False
> │ > │ 
> │ > │ def main_body():
> │ > │     return 0.3325000000000001
> │ > │ 
> │ > │ def main():
> │ > │     r = main_body()
> │ > │     if cuda: 
> cp.cuda.get_current_stream().synchronize() # 
> │ > This line is here so the `__trap()` calls on the kernel 
> aren't missed.
> │ > │     return r
> │ > │ 
> │ > │ if __name__ == '__main__': result = 
> main(); None if result is
> │ > None else print(result)
> │ > │ " / typeErrorCount: 0
> │ > │ 00:02:04 v #1838 
> Supervisor.buildFile / retry: 0 / 
> │ > typeErrorCount: 0 / fileDir: 
> │ > 
> c:\home\git\polyglot\target\spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc
> │ > 056ee1f21be4a24b26e8533ec368831c8 / targetDir: 
> c:/home/git\polyglot\target
> │ > │ Some
> │ > │   (Some
> │ > │      "kernel = r"""
> │ > │ """
> │ > │ class static_array():
> │ > │     def __init__(self, length):
> │ > │         self.ptr = []
> │ > │         for _ in range(length):
> │ > │             self.ptr.append(None)
> │ > │ 
> │ > │     def __getitem__(self, index):
> │ > │         assert 0 <= index < 
> len(self.ptr), "The get index 
> │ > needs to be in range."
> │ > │         return self.ptr[index]
> │ > │     
> │ > │     def __setitem__(self, index, value):
> │ > │         assert 0 <= index < 
> len(self.ptr), "The set index 
> │ > needs to be in range."
> │ > │         self.ptr[index] = value
> │ > │ 
> │ > │ class static_array_list(static_array):
> │ > │     def __init__(self, length):
> │ > │         super().__init__(length)
> │ > │         self.length = 0
> │ > │ 
> │ > │     def __getitem__(self, index):
> │ > │         assert 0 <= index < self.length,
> "The get index needs
> │ > to be in range."
> │ > │         return self.ptr[index]
> │ > │     
> │ > │     def __setitem__(self, index, value):
> │ > │         assert 0 <= index < self.length,
> "The set index needs
> │ > to be in range."
> │ > │         self.ptr[index] = value
> │ > │ 
> │ > │     def push(self,value):
> │ > │         assert (self.length < 
> len(self.ptr)), "The length 
> │ > before pushing has to be less than the maximum length of 
> the array."
> │ > │         self.ptr[self.length] = value
> │ > │         self.length += 1
> │ > │ 
> │ > │     def pop(self):
> │ > │         assert (0 < self.length), "The 
> length before popping 
> │ > has to be greater than 0."
> │ > │         self.length -= 1
> │ > │         return self.ptr[self.length]
> │ > │ 
> │ > │     def unsafe_set_length(self,i):
> │ > │         assert 0 <= i <= len(self.ptr), 
> "The new length has 
> │ > to be in range."
> │ > │         self.length = i
> │ > │ 
> │ > │ class dynamic_array(static_array): 
> │ > │     pass
> │ > │ 
> │ > │ class 
> dynamic_array_list(static_array_list):
> │ > │     def length_(self): return 
> self.length
> │ > │ 
> │ > │ import cupy as cp
> │ > │ import numpy as np
> │ > │ from dataclasses import dataclass
> │ > │ from typing import NamedTuple, Union, 
> Callable, Tuple
> │ > │ i8 = int; i16 = int; i32 = int; i64 = 
> int; u8 = int; u16 = 
> │ > int; u32 = int; u64 = int; f32 = float; f64 = float; char =
> str; string = str
> │ > │ cuda = False
> │ > │ 
> │ > │ def main_body():
> │ > │     return 0.3325000000000001
> │ > │ 
> │ > │ def main():
> │ > │     r = main_body()
> │ > │     if cuda: 
> cp.cuda.get_current_stream().synchronize() # 
> │ > This line is here so the `__trap()` calls on the kernel 
> aren't missed.
> │ > │     return r
> │ > │ 
> │ > │ if __name__ == '__main__': result = 
> main(); None if result is
> │ > None else print(result)
> │ > │ ",
> │ > │    [])
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > """
> │ > inl init_series start end inc =
> │ >     inl total : f64 = conv ((end - start) / inc) + 1
> │ >     listm.init total (conv >> (*) inc >> (+) start) : list 
> f64
> │ > 
> │ > type integration = (f64 -> f64) -> f64 -> f64 -> f64
> │ > 
> │ > inl integral dt : integration =
> │ >     fun f a b =>
> │ >         init_series (a + dt / 2) (b - dt / 2) dt
> │ >         |> listm.map (f >> (*) dt)
> │ >         |> listm.fold (+) 0
> │ > 
> │ > inl main () =
> │ >     integral 0.1 (fun x => x ** 2) 0 1
> │ > """
> │ > |> fun code -> Spi (code, None)
> │ > |> buildCode Gleam [[||]] false 10000 None
> │ > |> Async.runWithTimeout 11000
> │ > |> Option.map (fun (_, (_, outputContent), errors) -> 
> outputContent, errors |> 
> │ > List.map fst)
> │ > |> _assertEqual (
> │ >     Some (
> │ >         Some "pub fn main () { 0.3325000000000001\n }",
> │ >         [[]]
> │ >     )
> │ > )
> │ > 
> │ > ── [ 673.79ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 00:02:04 v #1845 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\9fee147a19a3a90ab5113d3c8fb7b0b
> │ > 2072de018aa3d73cd2d4eb0e7e7a32620\src\main.spi
> │ > │ 00:02:04 v #1846 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\9fee147a19a3a90ab5113d3c8fb7b0b
> │ > 2072de018aa3d73cd2d4eb0e7e7a32620\src\main.spi'
> │ > │ 00:02:04 v #1847 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\9fee147a19a3a90ab5113d3c8fb7b0b
> │ > 2072de018aa3d73cd2d4eb0e7e7a32620\src\main.spi
> │ > │ 00:02:04 v #1848 
> Supervisor.buildFile / fullPathUri: 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/9fee147a19a3a90ab5113d
> │ > 3c8fb7b0b2072de018aa3d73cd2d4eb0e7e7a32620/src/main.spi"
> │ > │ 00:02:04 v #1849 
> Supervisor.buildFile / _fileOpenResult:
> │ > <null>
> │ > │ 00:02:04 v #1850 
> Supervisor.buildFile / before result: 
> │ > ()
> │ > │ 00:02:04 v #2088 
> Supervisor.buildFile / buildFileResult:
> │ > Some "pub fn main () { 0.3325000000000001
> │ > │  }"
> │ > │ 00:02:04 v #2089 
> Supervisor.buildFile / 
> │ > outputContentSeq2 unfoldAsync / msg: (Some "pub fn main () 
> { 0.3325000000000001
> │ > │  }", [], 0)
> │ > │ 00:02:04 v #2090 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (Some "pub fn main () { 0.3325000000000001
> │ > │  }", [], 0)
> │ > │ 00:02:04 v #2091 
> Supervisor.buildFile / result: [] / 
> │ > buildFileResult: Some "pub fn main () { 0.3325000000000001
> │ > │  }" / typeErrorCount: 0
> │ > │ 00:02:04 v #2092 
> Supervisor.buildFile / retry: 0 / 
> │ > typeErrorCount: 0 / fileDir: 
> │ > 
> c:\home\git\polyglot\target\spiral_Eval\packages\9fee147a19a3a90ab5113d3c8fb7b0b
> │ > 2072de018aa3d73cd2d4eb0e7e7a32620\src / targetDir: 
> c:/home/git\polyglot\target
> │ > │ Some (Some "pub fn main () { 
> 0.3325000000000001
> │ > │  }", [])
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > SpiralTrace.TraceLevel.US0_0 |> set_trace_level
> │ > """
> │ > inl init_series start end inc =
> │ >     inl total : f64 = conv ((end - start) / inc) + 1
> │ >     listm.init total (conv >> (*) inc >> (+) start) : list 
> f64
> │ > 
> │ > type integration = (f64 -> f64) -> f64 -> f64 -> f64
> │ > 
> │ > inl integral dt : integration =
> │ >     fun f a b =>
> │ >         init_series (a + dt / 2) (b - dt / 2) dt
> │ >         |> listm.map (f >> (*) dt)
> │ >         |> listm.fold (+) 0
> │ > 
> │ > inl main () =
> │ >     integral 0.01 (fun x => x ** 2) 0 1
> │ > """
> │ > |> fun code -> Spi (code, None)
> │ > |> buildCode Fsharp [[||]] false 10000 None
> │ > |> Async.runWithTimeout 11000
> │ > |> Option.map (fun (_, (_, outputContent), errors) -> 
> outputContent, errors |> 
> │ > List.map fst)
> │ > |> _assertEqual (
> │ >     Some (
> │ >         Some "0.33332500000000004\n",
> │ >         [[]]
> │ >     )
> │ > )
> │ > // |> _assertEqual None
> │ > // |> fun x -> printfn $"{x.ToDisplayString ()}"
> │ > 
> │ > ── [ 741.56ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 00:02:05 v #2101 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356
> │ > 33484d22c3ef6e7797ce64875a41451f4\main.spi
> │ > │ 00:02:05 v #2102 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356
> │ > 33484d22c3ef6e7797ce64875a41451f4\main.spi'
> │ > │ 00:02:05 v #2103 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356
> │ > 33484d22c3ef6e7797ce64875a41451f4\main.spi
> │ > │ 00:02:05 v #2104 
> Supervisor.buildFile / fullPathUri: 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce3caf39
> │ > a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi"
> │ > │ 00:02:05 v #2105 
> Supervisor.buildFile / _fileOpenResult:
> │ > <null>
> │ > │ 00:02:05 v #2106 
> Supervisor.buildFile / before result: 
> │ > ()
> │ > │ 00:02:05 v #2344 
> Supervisor.buildFile / buildFileResult:
> │ > Some "0.33332500000000004
> │ > │ "
> │ > │ 00:02:05 v #2345 
> Supervisor.buildFile / 
> │ > outputContentSeq2 unfoldAsync / msg: (Some 
> "0.33332500000000004
> │ > │ ", [], 0)
> │ > │ 00:02:05 v #2346 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (Some "0.33332500000000004
> │ > │ ", [], 0)
> │ > │ 00:02:05 v #2347 
> Supervisor.buildFile / result: [] / 
> │ > buildFileResult: Some "0.33332500000000004
> │ > │ " / typeErrorCount: 0
> │ > │ 00:02:05 v #2348 
> Supervisor.buildFile / retry: 0 / 
> │ > typeErrorCount: 0 / fileDir: 
> │ > 
> c:\home\git\polyglot\target\spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356
> │ > 33484d22c3ef6e7797ce64875a41451f4 / targetDir: 
> c:/home/git\polyglot\target
> │ > │ Some (Some "0.33332500000000004
> │ > │ ", [])
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > SpiralTrace.TraceLevel.US0_0 |> set_trace_level
> │ > ""
> │ > |> fun code -> Spi (code, None)
> │ > |> buildCode Fsharp [[||]] false 10000 None
> │ > |> Async.runWithTimeout 11000
> │ > |> Option.map (fun (_, (_, outputContent), errors) -> 
> outputContent, errors |> 
> │ > List.map fst)
> │ > |> _assertEqual (
> │ >     Some (
> │ >         None,
> │ >         [[ "Cannot find `main` in file main." ]]
> │ >     )
> │ > )
> │ > 
> │ > ── [ 677.04ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 00:02:06 v #2359 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026
> │ > 0e9a932e5e68c0feb33db55c4d28170aa\main.spi
> │ > │ 00:02:06 v #2360 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026
> │ > 0e9a932e5e68c0feb33db55c4d28170aa\main.spi'
> │ > │ 00:02:06 v #2361 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026
> │ > 0e9a932e5e68c0feb33db55c4d28170aa\main.spi
> │ > │ 00:02:06 v #2362 
> Supervisor.buildFile / fullPathUri: 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/a65342ccc7da0da967b18d
> │ > 8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi"
> │ > │ 00:02:06 v #2363 
> Supervisor.buildFile / _fileOpenResult:
> │ > <null>
> │ > │ 00:02:06 v #2364 
> Supervisor.buildFile / before result: 
> │ > ()
> │ > │ 00:02:06 v #2606 
> Supervisor.buildFile / buildFileResult:
> │ > None
> │ > │ 00:02:06 v #2607 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (None, [], 0)
> │ > │ 00:02:06 v #2616 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error: Some((Cannot find `main` in file main., 
> FatalError "Cannot 
> │ > find `main` in file main.")) / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026
> │ > 0e9a932e5e68c0feb33db55c4d28170aa\main.spi'
> │ > │ 00:02:06 v #2617 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [
> │ > │   [
> │ > │     "Cannot find `main` in file main.",
> │ > │     {
> │ > │       "FatalError": "Cannot find `main` 
> in file main."
> │ > │     }
> │ > │   ]
> │ > │ ] / typeErrorCount: 0 / retry: 0 / path:│ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026
> │ > 0e9a932e5e68c0feb33db55c4d28170aa\main.spi
> │ > │ 00:02:06 v #2624 
> Supervisor.buildFile / outputChild / x:
> │ > Some
> │ > │   (Ok
> │ > │      (Some
> │ > │         (None,
> │ > │          [("Cannot find `main` in file 
> main.",
> │ > │            FatalError "Cannot find 
> `main` in file main.")], 
> │ > 0)))
> │ > │ 00:02:06 v #2625 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (None,
> │ > │  [("Cannot find `main` in file main.",
> │ > │    FatalError "Cannot find `main` in 
> file main.")], 0)
> │ > │ 00:02:06 v #2626 
> Supervisor.buildFile / result: 
> │ > [("Cannot find `main` in file main.",
> │ > │   FatalError "Cannot find `main` in file
> main.")] / 
> │ > buildFileResult: None / typeErrorCount: 0
> │ > │ 00:02:06 v #2627 
> Supervisor.buildFile / retry: 0 / 
> │ > typeErrorCount: 0 / fileDir: 
> │ > 
> c:\home\git\polyglot\target\spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026
> │ > 0e9a932e5e68c0feb33db55c4d28170aa / targetDir: 
> c:/home/git\polyglot\target
> │ > │ Some (None, ["Cannot find `main` in file
> main."])
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > SpiralTrace.TraceLevel.US0_0 |> set_trace_level
> │ > """inl main () =
> │ >     1i32 / 0i32
> │ > """
> │ > |> fun code -> Spi (code, None)
> │ > |> buildCode Fsharp [[||]] false 10000 None
> │ > |> Async.runWithTimeout 11000
> │ > |> Option.map (fun (_, (_, outputContent), errors) -> 
> outputContent, errors |> 
> │ > List.map fst)
> │ > |> _assertEqual (
> │ >     Some (
> │ >         None,
> │ >         [[ "An attempt to divide by zero has been detected 
> at compile time." ]]
> │ >     )
> │ > )
> │ > 
> │ > ── [ 795.68ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 00:02:06 v #2628 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6
> │ > ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi
> │ > │ 00:02:06 v #2629 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6
> │ > ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi'
> │ > │ 00:02:06 v #2630 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6
> │ > ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi
> │ > │ 00:02:06 v #2631 
> Supervisor.buildFile / fullPathUri: 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b1ab265
> │ > 89e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi"
> │ > │ 00:02:06 v #2632 
> Supervisor.buildFile / _fileOpenResult:
> │ > <null>
> │ > │ 00:02:06 v #2633 
> Supervisor.buildFile / before result: 
> │ > ()
> │ > │ 00:02:07 v #2869 
> Supervisor.buildFile / buildFileResult:
> │ > None
> │ > │ 00:02:07 v #2870 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (None, [], 0)
> │ > │ 00:02:07 v #2871 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error: Some((An attempt to divide by zero has 
> been detected at 
> │ > compile time., TracedError
> │ > │   { message = "An attempt to divide by 
> zero has been detected
> │ > at compile time."
> │ > │     trace =
> │ > │      ["Error trace on line: 1, column: 
> 10 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b1ab26589e52c6d6
> │ > ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi.
> │ > │ inl main () =
> │ > │          ^
> │ > │ ";
> │ > │       "Error trace on line: 2, column: 5
> in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b1ab26589e52c6d6
> │ > ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi.
> │ > │     1i32 / 0i32
> │ > │     ^
> │ > │ "] })) / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6
> │ > ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi'
> │ > │ 00:02:07 v #2872 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [
> │ > │   [
> │ > │     "An attempt to divide by zero has 
> been detected at 
> │ > compile time.",
> │ > │     {
> │ > │       "TracedError": {
> │ > │         "message": "An attempt to divide
> by zero has been 
> │ > detected at compile time.",
> │ > │         "trace": [
> │ > │           "Error trace on line: 1, 
> column: 10 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b1ab26589e52c6d6
> │ > ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi.
> │ > │ inl main () =
> │ > │          ^
> │ > │ ",
> │ > │           "Error trace on line: 2, 
> column: 5 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b1ab26589e52c6d6
> │ > ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi.
> │ > │     1i32 / 0i32
> │ > │     ^
> │ > │ "
> │ > │         ]
> │ > │       }
> │ > │     }
> │ > │   ]
> │ > │ ] / typeErrorCount: 0 / retry: 0 / path:│ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6
> │ > ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi
> │ > │ 00:02:07 v #2874 
> Supervisor.buildFile / outputChild / x:
> │ > Some
> │ > │   (Ok
> │ > │      (Some
> │ > │         (None,
> │ > │          [("An attempt to divide by zero
> has been detected at
> │ > compile time.",
> │ > │            TracedError
> │ > │              { message =
> │ > │                 "An attempt to divide by
> zero has been 
> │ > detected at compile time."
> │ > │                trace =
> │ > │                 ["Error trace on line: 
> 1, column: 10 in 
> │ > module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b1ab26589e52c6d6
> │ > ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi.
> │ > │ inl main () =
> │ > │          ^
> │ > │ ";
> │ > │                  "Error trace on line: 
> 2, column: 5 in 
> │ > module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b1ab26589e52c6d6
> │ > ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi.
> │ > │     1i32 / 0i32
> │ > │     ^
> │ > │ "] })],
> │ > │          0)))
> │ > │ 00:02:07 v #2875 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (None,
> │ > │  [("An attempt to divide by zero has 
> been detected at compile
> │ > time.",
> │ > │    TracedError
> │ > │      { message =
> │ > │         "An attempt to divide by zero 
> has been detected at 
> │ > compile time."
> │ > │        trace =
> │ > │         ["Error trace on line: 1, 
> column: 10 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b1ab26589e52c6d6
> │ > ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi.
> │ > │ inl main () =
> │ > │          ^
> │ > │ ";
> │ > │          "Error trace on line: 2, 
> column: 5 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b1ab26589e52c6d6
> │ > ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi.
> │ > │     1i32 / 0i32
> │ > │     ^
> │ > │ "] })],
> │ > │  0)
> │ > │ 00:02:07 v #2876 
> Supervisor.buildFile / result: [("An 
> │ > attempt to divide by zero has been detected at compile 
> time.",
> │ > │   TracedError
> │ > │     { message =
> │ > │        "An attempt to divide by zero has
> been detected at 
> │ > compile time."
> │ > │       trace =
> │ > │        ["Error trace on line: 1, column:
> 10 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b1ab26589e52c6d6
> │ > ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi.
> │ > │ inl main () =
> │ > │          ^
> │ > │ ";
> │ > │         "Error trace on line: 2, column:
> 5 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b1ab26589e52c6d6
> │ > ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi.
> │ > │     1i32 / 0i32
> │ > │     ^
> │ > │ "] })] / buildFileResult: None / 
> typeErrorCount: 0
> │ > │ 00:02:07 v #2877 
> Supervisor.buildFile / retry: 0 / 
> │ > typeErrorCount: 0 / fileDir: 
> │ > 
> c:\home\git\polyglot\target\spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6
> │ > ff05910b73ead9e8c4f27f88d2a5cdfb2 / targetDir: 
> c:/home/git\polyglot\target
> │ > │ Some (None, ["An attempt to divide by 
> zero has been detected 
> │ > at compile time."])
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > SpiralTrace.TraceLevel.US0_0 |> set_trace_level
> │ > """
> │ > inl main () =
> │ >     real
> │ >         inl unbox_real forall a. (obj : a) : a =
> │ >             typecase obj with
> │ >             | _ => obj
> │ >         unbox_real ()
> │ >     ()
> │ > """
> │ > |> fun code -> Spi (code, None)
> │ > |> buildCode Fsharp [[||]] false 10000 None
> │ > |> Async.runWithTimeout 11000
> │ > |> Option.map (fun (_, (_, outputContent), errors) -> 
> outputContent, errors |> 
> │ > List.map fst)
> │ > |> _assertEqual (
> │ >     Some (
> │ >         None,
> │ >         [[ "Cannot apply a forall with a term." ]]
> │ >     )
> │ > )
> │ > 
> │ > ── [ 669.37ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 00:02:07 v #2878 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a\main.spi
> │ > │ 00:02:07 v #2879 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a\main.spi'
> │ > │ 00:02:07 v #2880 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a\main.spi
> │ > │ 00:02:07 v #2881 
> Supervisor.buildFile / fullPathUri: 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec
> │ > 17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi"
> │ > │ 00:02:07 v #2882 
> Supervisor.buildFile / _fileOpenResult:
> │ > <null>
> │ > │ 00:02:07 v #2883 
> Supervisor.buildFile / before result: 
> │ > ()
> │ > │ 00:02:07 v #3120 
> Supervisor.buildFile / buildFileResult:
> │ > None
> │ > │ 00:02:07 v #3121 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (None, [], 0)
> │ > │ 00:02:07 v #3122 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error: Some((Cannot apply a forall with a term.,
> TracedError
> │ > │   { message = "Cannot apply a forall 
> with a term."
> │ > │     trace =
> │ > │      ["Error trace on line: 2, column: 
> 10 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │ inl main () =
> │ > │          ^
> │ > │ ";
> │ > │       "Error trace on line: 4, column: 9
> in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         inl unbox_real forall a. (obj : 
> a) : a =
> │ > │         ^
> │ > │ ";
> │ > │       "Error trace on line: 7, column: 9
> in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         unbox_real ()
> │ > │         ^
> │ > │ "] })) / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a\main.spi'
> │ > │ 00:02:07 v #3123 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [
> │ > │   [
> │ > │     "Cannot apply a forall with a 
> term.",
> │ > │     {
> │ > │       "TracedError": {
> │ > │         "message": "Cannot apply a 
> forall with a term.",
> │ > │         "trace": [
> │ > │           "Error trace on line: 2, 
> column: 10 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │ inl main () =
> │ > │          ^
> │ > │ ",
> │ > │           "Error trace on line: 4, 
> column: 9 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         inl unbox_real forall a. (obj : 
> a) : a =
> │ > │         ^
> │ > │ ",
> │ > │           "Error trace on line: 7, 
> column: 9 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         unbox_real ()
> │ > │         ^
> │ > │ "
> │ > │         ]
> │ > │       }
> │ > │     }
> │ > │   ]
> │ > │ ] / typeErrorCount: 0 / retry: 0 / path:│ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a\main.spi
> │ > │ 00:02:07 v #3125 
> Supervisor.buildFile / outputChild / x:
> │ > Some
> │ > │   (Ok
> │ > │      (Some
> │ > │         (None,
> │ > │          [("Cannot apply a forall with a
> term.",
> │ > │            TracedError
> │ > │              { message = "Cannot apply a
> forall with a term."
> │ > │                trace =
> │ > │                 ["Error trace on line: 
> 2, column: 10 in 
> │ > module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │ inl main () =
> │ > │          ^
> │ > │ ";
> │ > │                  "Error trace on line: 
> 4, column: 9 in 
> │ > module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         inl unbox_real forall a. (obj : 
> a) : a =
> │ > │         ^
> │ > │ ";
> │ > │                  "Error trace on line: 
> 7, column: 9 in 
> │ > module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         unbox_real ()
> │ > │         ^
> │ > │ "] })],
> │ > │          0)))
> │ > │ 00:02:07 v #3126 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (None,
> │ > │  [("Cannot apply a forall with a term.",
> │ > │    TracedError
> │ > │      { message = "Cannot apply a forall 
> with a term."
> │ > │        trace =
> │ > │         ["Error trace on line: 2, 
> column: 10 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │ inl main () =
> │ > │          ^
> │ > │ ";
> │ > │          "Error trace on line: 4, 
> column: 9 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         inl unbox_real forall a. (obj : 
> a) : a =
> │ > │         ^
> │ > │ ";
> │ > │          "Error trace on line: 7, 
> column: 9 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         unbox_real ()
> │ > │         ^
> │ > │ "] })],
> │ > │  0)
> │ > │ 00:02:07 v #3127 
> Supervisor.buildFile / result: 
> │ > [("Cannot apply a forall with a term.",
> │ > │   TracedError
> │ > │     { message = "Cannot apply a forall 
> with a term."
> │ > │       trace =
> │ > │        ["Error trace on line: 2, column:
> 10 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │ inl main () =
> │ > │          ^
> │ > │ ";
> │ > │         "Error trace on line: 4, column:
> 9 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         inl unbox_real forall a. (obj : 
> a) : a =
> │ > │         ^
> │ > │ ";
> │ > │         "Error trace on line: 7, column:
> 9 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         unbox_real ()
> │ > │         ^
> │ > │ "] })] / buildFileResult: None / 
> typeErrorCount: 0
> │ > │ 00:02:07 v #3128 
> Supervisor.buildFile / retry: 0 / 
> │ > typeErrorCount: 0 / fileDir: 
> │ > 
> c:\home\git\polyglot\target\spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a / targetDir: 
> c:/home/git\polyglot\target
> │ > │ Some (None, ["Cannot apply a forall with
> a term."])
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > SpiralTrace.TraceLevel.US0_0 |> set_trace_level
> │ > """
> │ > inl main () =
> │ >     real
> │ >         inl unbox_real forall a. (obj : a) : a =
> │ >             typecase obj with
> │ >             | _ => obj
> │ >         unbox_real `i32 1
> │ > """
> │ > |> fun code -> Spi (code, None)
> │ > |> buildCode Fsharp [[||]] false 10000 None
> │ > |> Async.runWithTimeout 11000
> │ > |> Option.map (fun (_, (_, outputContent), errors) -> 
> outputContent, errors |> 
> │ > List.map fst)
> │ > |> _assertEqual (
> │ >     Some (
> │ >         None,
> │ >         [[ "The main function should not have a forall." ]]
> │ >     )
> │ > )
> │ > 
> │ > ── [ 677.98ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 00:02:08 v #3129 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc
> │ > 7912380f5dd2d90fad118bad793251c4f\main.spi
> │ > │ 00:02:08 v #3130 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc
> │ > 7912380f5dd2d90fad118bad793251c4f\main.spi'
> │ > │ 00:02:08 v #3131 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc
> │ > 7912380f5dd2d90fad118bad793251c4f\main.spi
> │ > │ 00:02:08 v #3132 
> Supervisor.buildFile / fullPathUri: 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/0ba44c42df309b790acdf4
> │ > f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi"
> │ > │ 00:02:08 v #3133 
> Supervisor.buildFile / _fileOpenResult:
> │ > <null>
> │ > │ 00:02:08 v #3134 
> Supervisor.buildFile / before result: 
> │ > ()
> │ > │ 00:02:08 v #3371 
> Supervisor.buildFile / buildFileResult:
> │ > None
> │ > │ 00:02:08 v #3372 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (None, [], 0)
> │ > │ 00:02:08 v #3373 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error: Some((The main function should not have a
> forall., TracedError
> │ > { message = "The main function should not have a forall."
> │ > │               trace = [] })) / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc
> │ > 7912380f5dd2d90fad118bad793251c4f\main.spi'
> │ > │ 00:02:08 v #3374 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [
> │ > │   [
> │ > │     "The main function should not have a
> forall.",
> │ > │     {
> │ > │       "TracedError": {
> │ > │         "message": "The main function 
> should not have a 
> │ > forall.",
> │ > │         "trace": []
> │ > │       }
> │ > │     }
> │ > │   ]
> │ > │ ] / typeErrorCount: 0 / retry: 0 / path:│ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc
> │ > 7912380f5dd2d90fad118bad793251c4f\main.spi
> │ > │ 00:02:08 v #3376 
> Supervisor.buildFile / outputChild / x:
> │ > Some
> │ > │   (Ok
> │ > │      (Some
> │ > │         (None,
> │ > │          [("The main function should not
> have a forall.",
> │ > │            TracedError { message = "The 
> main function should 
> │ > not have a forall."
> │ > │                          trace = [] })],
> 0)))
> │ > │ 00:02:08 v #3377 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (None,
> │ > │  [("The main function should not have a 
> forall.",
> │ > │    TracedError { message = "The main 
> function should not have
> │ > a forall."
> │ > │                  trace = [] })], 0)
> │ > │ 00:02:08 v #3378 
> Supervisor.buildFile / result: [("The 
> │ > main function should not have a forall.",
> │ > │   TracedError { message = "The main 
> function should not have 
> │ > a forall."
> │ > │                 trace = [] })] / 
> buildFileResult: None / 
> │ > typeErrorCount: 0
> │ > │ 00:02:08 v #3379 
> Supervisor.buildFile / retry: 0 / 
> │ > typeErrorCount: 0 / fileDir: 
> │ > 
> c:\home\git\polyglot\target\spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc
> │ > 7912380f5dd2d90fad118bad793251c4f / targetDir: 
> c:/home/git\polyglot\target
> │ > │ Some (None, ["The main function should 
> not have a forall."])
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > SpiralTrace.TraceLevel.US0_0 |> set_trace_level
> │ > """
> │ > inl main () =
> │ >     real
> │ >         inl unbox_real forall a. (obj : a) : a =
> │ >             typecase obj with
> │ >             | _ => obj
> │ >         unbox_real ()
> │ >     ()
> │ > """
> │ > |> fun code -> Spi (code, None)
> │ > |> buildCode Fsharp [[||]] false 10000 None
> │ > |> Async.runWithTimeout 11000
> │ > |> Option.map (fun (_, (_, outputContent), errors) -> 
> outputContent, errors |> 
> │ > List.map fst)
> │ > |> _assertEqual (
> │ >     Some (
> │ >         None,
> │ >         [[ "Cannot apply a forall with a term." ]]
> │ >     )
> │ > )
> │ > 
> │ > ── [ 710.42ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 00:02:08 v #3380 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a\main.spi
> │ > │ 00:02:08 v #3381 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a\main.spi'
> │ > │ 00:02:08 v #3382 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a\main.spi
> │ > │ 00:02:08 v #3383 
> Supervisor.buildFile / fullPathUri: 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec
> │ > 17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi"
> │ > │ 00:02:08 v #3384 
> Supervisor.buildFile / _fileOpenResult:
> │ > <null>
> │ > │ 00:02:08 v #3385 
> Supervisor.buildFile / before result: 
> │ > ()
> │ > │ 00:02:09 v #3619 
> Supervisor.buildFile / buildFileResult:
> │ > None
> │ > │ 00:02:09 v #3620 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (None, [], 0)
> │ > │ 00:02:09 v #3621 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error: Some((Cannot apply a forall with a term.,
> TracedError
> │ > │   { message = "Cannot apply a forall 
> with a term."
> │ > │     trace =
> │ > │      ["Error trace on line: 2, column: 
> 10 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │ inl main () =
> │ > │          ^
> │ > │ ";
> │ > │       "Error trace on line: 4, column: 9
> in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         inl unbox_real forall a. (obj : 
> a) : a =
> │ > │         ^
> │ > │ ";
> │ > │       "Error trace on line: 7, column: 9
> in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         unbox_real ()
> │ > │         ^
> │ > │ "] })) / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a\main.spi'
> │ > │ 00:02:09 v #3622 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [
> │ > │   [
> │ > │     "Cannot apply a forall with a 
> term.",
> │ > │     {
> │ > │       "TracedError": {
> │ > │         "message": "Cannot apply a 
> forall with a term.",
> │ > │         "trace": [
> │ > │           "Error trace on line: 2, 
> column: 10 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │ inl main () =
> │ > │          ^
> │ > │ ",
> │ > │           "Error trace on line: 4, 
> column: 9 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         inl unbox_real forall a. (obj : 
> a) : a =
> │ > │         ^
> │ > │ ",
> │ > │           "Error trace on line: 7, 
> column: 9 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         unbox_real ()
> │ > │         ^
> │ > │ "
> │ > │         ]
> │ > │       }
> │ > │     }
> │ > │   ]
> │ > │ ] / typeErrorCount: 0 / retry: 0 / path:│ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a\main.spi
> │ > │ 00:02:09 v #3624 
> Supervisor.buildFile / outputChild / x:
> │ > Some
> │ > │   (Ok
> │ > │      (Some
> │ > │         (None,
> │ > │          [("Cannot apply a forall with a
> term.",
> │ > │            TracedError
> │ > │              { message = "Cannot apply a
> forall with a term."
> │ > │                trace =
> │ > │                 ["Error trace on line: 
> 2, column: 10 in 
> │ > module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │ inl main () =
> │ > │          ^
> │ > │ ";
> │ > │                  "Error trace on line: 
> 4, column: 9 in 
> │ > module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         inl unbox_real forall a. (obj : 
> a) : a =
> │ > │         ^
> │ > │ ";
> │ > │                  "Error trace on line: 
> 7, column: 9 in 
> │ > module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         unbox_real ()
> │ > │         ^
> │ > │ "] })],
> │ > │          0)))
> │ > │ 00:02:09 v #3625 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (None,
> │ > │  [("Cannot apply a forall with a term.",
> │ > │    TracedError
> │ > │      { message = "Cannot apply a forall 
> with a term."
> │ > │        trace =
> │ > │         ["Error trace on line: 2, 
> column: 10 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │ inl main () =
> │ > │          ^
> │ > │ ";
> │ > │          "Error trace on line: 4, 
> column: 9 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         inl unbox_real forall a. (obj : 
> a) : a =
> │ > │         ^
> │ > │ ";
> │ > │          "Error trace on line: 7, 
> column: 9 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         unbox_real ()
> │ > │         ^
> │ > │ "] })],
> │ > │  0)
> │ > │ 00:02:09 v #3626 
> Supervisor.buildFile / result: 
> │ > [("Cannot apply a forall with a term.",
> │ > │   TracedError
> │ > │     { message = "Cannot apply a forall 
> with a term."
> │ > │       trace =
> │ > │        ["Error trace on line: 2, column:
> 10 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │ inl main () =
> │ > │          ^
> │ > │ ";
> │ > │         "Error trace on line: 4, column:
> 9 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         inl unbox_real forall a. (obj : 
> a) : a =
> │ > │         ^
> │ > │ ";
> │ > │         "Error trace on line: 7, column:
> 9 in module: 
> │ > 
> c:/home/git/polyglot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a/main.spi.
> │ > │         unbox_real ()
> │ > │         ^
> │ > │ "] })] / buildFileResult: None / 
> typeErrorCount: 0
> │ > │ 00:02:09 v #3627 
> Supervisor.buildFile / retry: 0 / 
> │ > typeErrorCount: 0 / fileDir: 
> │ > 
> c:\home\git\polyglot\target\spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd
> │ > 7ffff5b5a47e4e117eec78e740987f29a / targetDir: 
> c:/home/git\polyglot\target
> │ > │ Some (None, ["Cannot apply a forall with
> a term."])
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > SpiralTrace.TraceLevel.US0_0 |> set_trace_level
> │ > """inl main () =
> │ >     1 + ""
> │ > """
> │ > |> fun code -> Spi (code, None)
> │ > |> buildCode Fsharp [[||]] false 10000 None
> │ > |> Async.runWithTimeout 11000
> │ > |> Option.map (fun (_, (_, outputContent), errors) -> 
> outputContent, errors |> 
> │ > List.map fst)
> │ > |> _assertEqual (
> │ >     Some (
> │ >         None,
> │ >         [[
> │ >             "main.spi:
> │ > Constraint satisfaction error.
> │ > Got: string
> │ > Fails to satisfy: number"
> │ >         ]]
> │ >     )
> │ > )
> │ > 
> │ > ── [ 517.11ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 00:02:09 v #3628 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676
> │ > 85221d91a46e3655199e42df713504aa0\main.spi
> │ > │ 00:02:09 v #3629 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676
> │ > 85221d91a46e3655199e42df713504aa0\main.spi'
> │ > │ 00:02:09 v #3630 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676
> │ > 85221d91a46e3655199e42df713504aa0\main.spi
> │ > │ 00:02:09 v #3631 
> Supervisor.buildFile / fullPathUri: 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/c030f84f8e553befcbdd9a
> │ > abeace67685221d91a46e3655199e42df713504aa0/main.spi"
> │ > │ 00:02:09 v #3632 
> Supervisor.buildFile / _fileOpenResult:
> │ > <null>
> │ > │ 00:02:09 v #3633 
> Supervisor.buildFile / before result: 
> │ > ()
> │ > │ 00:02:09 v #3714 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error: Some((main.spi:
> │ > │ Constraint satisfaction error.
> │ > │ Got: string
> │ > │ Fails to satisfy: number, TypeErrors
> │ > │   { errors =
> │ > │      [(({ character = 8
> │ > │           line = 1 }, { character = 10
> │ > │                         line = 1 }),
> │ > │        "Constraint satisfaction error.
> │ > │ Got: string
> │ > │ Fails to satisfy: number")]
> │ > │     uri =
> │ > │      
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/c030f84f8e553befcbdd9a
> │ > abeace67685221d91a46e3655199e42df713504aa0/main.spi" })) / 
> path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676
> │ > 85221d91a46e3655199e42df713504aa0\main.spi'
> │ > │ 00:02:09 v #3718 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [
> │ > │   [
> │ > │     "main.spi:
> │ > │ Constraint satisfaction error.
> │ > │ Got: string
> │ > │ Fails to satisfy: number",
> │ > │     {
> │ > │       "TypeErrors": {
> │ > │         "errors": [
> │ > │           [
> │ > │             [
> │ > │               {
> │ > │                 "character": 8,
> │ > │                 "line": 1
> │ > │               },
> │ > │               {
> │ > │                 "character": 10,
> │ > │                 "line": 1
> │ > │               }
> │ > │             ],
> │ > │             "Constraint satisfaction 
> error.
> │ > │ Got: string
> │ > │ Fails to satisfy: number"
> │ > │           ]
> │ > │         ],
> │ > │         "uri": 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/c030f84f8e553befcbdd9a
> │ > abeace67685221d91a46e3655199e42df713504aa0/main.spi"
> │ > │       }
> │ > │     }
> │ > │   ]
> │ > │ ] / typeErrorCount: 0 / retry: 0 / path:│ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676
> │ > 85221d91a46e3655199e42df713504aa0\main.spi
> │ > │ 00:02:09 v #3725 
> Supervisor.buildFile / outputContentSeq
> │ > unfoldAsync / msg: (None,
> │ > │  Some
> │ > │    ("main.spi:
> │ > │ Constraint satisfaction error.
> │ > │ Got: string
> │ > │ Fails to satisfy: number",
> │ > │     TypeErrors
> │ > │       { errors =
> │ > │          [(({ character = 8
> │ > │               line = 1 }, { character = 
> 10
> │ > │                             line = 1 }),
> │ > │            "Constraint satisfaction 
> error.
> │ > │ Got: string
> │ > │ Fails to satisfy: number")]
> │ > │         uri =
> │ > │          
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/c030f84f8e553befcbdd9a
> │ > abeace67685221d91a46e3655199e42df713504aa0/main.spi" }))
> │ > │ 00:02:09 v #3727 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / TypeErrors trigger
> │ > │ 00:02:09 v #3732 
> Supervisor.buildFile / outputChild / x:
> │ > Some
> │ > │   (Ok
> │ > │      (Some
> │ > │         (None,
> │ > │          [("main.spi:
> │ > │ Constraint satisfaction error.
> │ > │ Got: string
> │ > │ Fails to satisfy: number",
> │ > │            TypeErrors
> │ > │              { errors =
> │ > │                 [(({ character = 8
> │ > │                      line = 1 }, { 
> character = 10
> │ > │                                    line 
> = 1 }),
> │ > │                   "Constraint 
> satisfaction error.
> │ > │ Got: string
> │ > │ Fails to satisfy: number")]
> │ > │                uri =
> │ > │                 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/c030f84f8e553befcbdd9a
> │ > abeace67685221d91a46e3655199e42df713504aa0/main.spi" })],
> │ > │          0)))
> │ > │ 00:02:09 v #3733 
> Supervisor.buildFile / outputChild |> 
> │ > Async.map
> │ > │ 00:02:09 v #3736 
> Supervisor.buildFile / 
> │ > outputContentSeq2 unfoldAsync / msg: (None,
> │ > │  [("main.spi:
> │ > │ Constraint satisfaction error.
> │ > │ Got: string
> │ > │ Fails to satisfy: number",
> │ > │    TypeErrors
> │ > │      { errors =
> │ > │         [(({ character = 8
> │ > │              line = 1 }, { character = 
> 10
> │ > │                            line = 1 }),
> │ > │           "Constraint satisfaction 
> error.
> │ > │ Got: string
> │ > │ Fails to satisfy: number")]
> │ > │        uri =
> │ > │         
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/c030f84f8e553befcbdd9a
> │ > abeace67685221d91a46e3655199e42df713504aa0/main.spi" })],
> │ > │  0)
> │ > │ 00:02:09 v #3739 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (None,
> │ > │  [("main.spi:
> │ > │ Constraint satisfaction error.
> │ > │ Got: string
> │ > │ Fails to satisfy: number",
> │ > │    TypeErrors
> │ > │      { errors =
> │ > │         [(({ character = 8
> │ > │              line = 1 }, { character = 
> 10
> │ > │                            line = 1 }),
> │ > │           "Constraint satisfaction 
> error.
> │ > │ Got: string
> │ > │ Fails to satisfy: number")]
> │ > │        uri =
> │ > │         
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/c030f84f8e553befcbdd9a
> │ > abeace67685221d91a46e3655199e42df713504aa0/main.spi" })],
> │ > │  0)
> │ > │ 00:02:09 v #3742 
> Supervisor.buildFile / result: 
> │ > [("main.spi:
> │ > │ Constraint satisfaction error.
> │ > │ Got: string
> │ > │ Fails to satisfy: number",
> │ > │   TypeErrors
> │ > │     { errors =
> │ > │        [(({ character = 8
> │ > │             line = 1 }, { character = 10
> │ > │                           line = 1 }),
> │ > │          "Constraint satisfaction error.
> │ > │ Got: string
> │ > │ Fails to satisfy: number")]
> │ > │       uri =
> │ > │        
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/c030f84f8e553befcbdd9a
> │ > abeace67685221d91a46e3655199e42df713504aa0/main.spi" })] / 
> buildFileResult: None
> │ > / typeErrorCount: 0
> │ > │ 00:02:09 v #3743 
> Supervisor.buildFile / retry: 0 / 
> │ > typeErrorCount: 0 / fileDir: 
> │ > 
> c:\home\git\polyglot\target\spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676
> │ > 85221d91a46e3655199e42df713504aa0 / targetDir: 
> c:/home/git\polyglot\target
> │ > │ 00:02:09 v #3745 
> Supervisor.buildFile / outputChild |> 
> │ > Async.map
> │ > │ Some (None, ["main.spi:
> │ > │ Constraint satisfaction error.
> │ > │ Got: string
> │ > │ Fails to satisfy: number"])
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > SpiralTrace.TraceLevel.US0_0 |> set_trace_level
> │ > """inl main () =
> │ >     x + y
> │ > """
> │ > |> fun code -> Spi (code, None)
> │ > |> buildCode Fsharp [[||]] false 10000 None
> │ > |> Async.runWithTimeout 11000
> │ > |> Option.map (fun (_, (_, outputContent), errors) -> 
> outputContent, errors |> 
> │ > List.map fst)
> │ > |> _assertEqual (
> │ >     Some (
> │ >         None,
> │ >         [[
> │ >             "main.spi:
> │ > Unbound variable: x.
> │ > Unbound variable: y."
> │ >         ]]
> │ >     )
> │ > )
> │ > 
> │ > ── [ 525.44ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 00:02:10 v #3882 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7
> │ > 77a622aa3bf7333b151c767fde35dc5d1\main.spi
> │ > │ 00:02:10 v #3883 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7
> │ > 77a622aa3bf7333b151c767fde35dc5d1\main.spi'
> │ > │ 00:02:10 v #3884 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7
> │ > 77a622aa3bf7333b151c767fde35dc5d1\main.spi
> │ > │ 00:02:10 v #3885 
> Supervisor.buildFile / fullPathUri: 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429
> │ > cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi"
> │ > │ 00:02:10 v #3886 
> Supervisor.buildFile / _fileOpenResult:
> │ > <null>
> │ > │ 00:02:10 v #3887 
> Supervisor.buildFile / before result: 
> │ > ()
> │ > │ 00:02:10 v #3927 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error: Some((main.spi:
> │ > │ Unbound variable: x.
> │ > │ Unbound variable: y., TypeErrors
> │ > │   { errors =
> │ > │      [(({ character = 4
> │ > │           line = 1 }, { character = 5
> │ > │                         line = 1 }), 
> "Unbound variable: x.");
> │ > │       (({ character = 8
> │ > │           line = 1 }, { character = 9
> │ > │                         line = 1 }), 
> "Unbound variable: y.")]
> │ > │     uri =
> │ > │      
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429
> │ > cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi" })) / 
> path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7
> │ > 77a622aa3bf7333b151c767fde35dc5d1\main.spi'
> │ > │ 00:02:10 v #3929 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [
> │ > │   [
> │ > │     "main.spi:
> │ > │ Unbound variable: x.
> │ > │ Unbound variable: y.",
> │ > │     {
> │ > │       "TypeErrors": {
> │ > │         "errors": [
> │ > │           [
> │ > │             [
> │ > │               {
> │ > │                 "character": 4,
> │ > │                 "line": 1
> │ > │               },
> │ > │               {
> │ > │                 "character": 5,
> │ > │                 "line": 1
> │ > │               }
> │ > │             ],
> │ > │             "Unbound variable: x."
> │ > │           ],
> │ > │           [
> │ > │             [
> │ > │               {
> │ > │                 "character": 8,
> │ > │                 "line": 1
> │ > │               },
> │ > │               {
> │ > │                 "character": 9,
> │ > │                 "line": 1
> │ > │               }
> │ > │             ],
> │ > │             "Unbound variable: y."
> │ > │           ]
> │ > │         ],
> │ > │         "uri": 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429
> │ > cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi"
> │ > │       }
> │ > │     }
> │ > │   ]
> │ > │ ] / typeErrorCount: 0 / retry: 0 / path:│ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7
> │ > 77a622aa3bf7333b151c767fde35dc5d1\main.spi
> │ > │ 00:02:10 v #3933 
> Supervisor.buildFile / outputContentSeq
> │ > unfoldAsync / msg: (None,
> │ > │  Some
> │ > │    ("main.spi:
> │ > │ Unbound variable: x.
> │ > │ Unbound variable: y.",
> │ > │     TypeErrors
> │ > │       { errors =
> │ > │          [(({ character = 4
> │ > │               line = 1 }, { character = 
> 5
> │ > │                             line = 1 }),
> "Unbound variable: 
> │ > x.");
> │ > │           (({ character = 8
> │ > │               line = 1 }, { character = 
> 9
> │ > │                             line = 1 }),
> "Unbound variable: 
> │ > y.")]
> │ > │         uri =
> │ > │          
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429
> │ > cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi" }))
> │ > │ 00:02:10 v #3934 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / TypeErrors trigger
> │ > │ 00:02:10 v #3936 
> Supervisor.buildFile / outputChild / x:
> │ > Some
> │ > │   (Ok
> │ > │      (Some
> │ > │         (None,
> │ > │          [("main.spi:
> │ > │ Unbound variable: x.
> │ > │ Unbound variable: y.",
> │ > │            TypeErrors
> │ > │              { errors =
> │ > │                 [(({ character = 4
> │ > │                      line = 1 }, { 
> character = 5
> │ > │                                    line 
> = 1 }), "Unbound 
> │ > variable: x.");
> │ > │                  (({ character = 8
> │ > │                      line = 1 }, { 
> character = 9
> │ > │                                    line 
> = 1 }), "Unbound 
> │ > variable: y.")]
> │ > │                uri =
> │ > │                 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429
> │ > cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi" })],
> │ > │          0)))
> │ > │ 00:02:10 v #3937 
> Supervisor.buildFile / outputChild |> 
> │ > Async.map
> │ > │ 00:02:10 v #3941 
> Supervisor.buildFile / 
> │ > outputContentSeq2 unfoldAsync / msg: (None,
> │ > │  [("main.spi:
> │ > │ Unbound variable: x.
> │ > │ Unbound variable: y.",
> │ > │    TypeErrors
> │ > │      { errors =
> │ > │         [(({ character = 4
> │ > │              line = 1 }, { character = 5
> │ > │                            line = 1 }), 
> "Unbound variable: 
> │ > x.");
> │ > │          (({ character = 8
> │ > │              line = 1 }, { character = 9
> │ > │                            line = 1 }), 
> "Unbound variable: 
> │ > y.")]
> │ > │        uri =
> │ > │         
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429
> │ > cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi" })],
> │ > │  0)
> │ > │ 00:02:10 v #3944 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (None,
> │ > │  [("main.spi:
> │ > │ Unbound variable: x.
> │ > │ Unbound variable: y.",
> │ > │    TypeErrors
> │ > │      { errors =
> │ > │         [(({ character = 4
> │ > │              line = 1 }, { character = 5
> │ > │                            line = 1 }), 
> "Unbound variable: 
> │ > x.");
> │ > │          (({ character = 8
> │ > │              line = 1 }, { character = 9
> │ > │                            line = 1 }), 
> "Unbound variable: 
> │ > y.")]
> │ > │        uri =
> │ > │         
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429
> │ > cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi" })],
> │ > │  0)
> │ > │ 00:02:10 v #3947 
> Supervisor.buildFile / result: 
> │ > [("main.spi:
> │ > │ Unbound variable: x.
> │ > │ Unbound variable: y.",
> │ > │   TypeErrors
> │ > │     { errors =
> │ > │        [(({ character = 4
> │ > │             line = 1 }, { character = 5
> │ > │                           line = 1 }), 
> "Unbound variable: 
> │ > x.");
> │ > │         (({ character = 8
> │ > │             line = 1 }, { character = 9
> │ > │                           line = 1 }), 
> "Unbound variable: 
> │ > y.")]
> │ > │       uri =
> │ > │        
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429
> │ > cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi" })] / 
> buildFileResult: None
> │ > / typeErrorCount: 0
> │ > │ 00:02:10 v #3948 
> Supervisor.buildFile / retry: 0 / 
> │ > typeErrorCount: 0 / fileDir: 
> │ > 
> c:\home\git\polyglot\target\spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7
> │ > 77a622aa3bf7333b151c767fde35dc5d1 / targetDir: 
> c:/home/git\polyglot\target
> │ > │ 00:02:10 v #3949 
> Supervisor.buildFile / outputChild |> 
> │ > Async.map
> │ > │ Some (None, ["main.spi:
> │ > │ Unbound variable: x.
> │ > │ Unbound variable: y."])
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > SpiralTrace.TraceLevel.US0_0 |> set_trace_level
> │ > """inl rec main () = main"""
> │ > |> fun code -> Spi (code, None)
> │ > |> buildCode Fsharp [[||]] false 10000 None
> │ > |> Async.runWithTimeout 11000
> │ > |> Option.map (fun (_, (_, outputContent), errors) -> 
> outputContent, errors |> 
> │ > List.map fst)
> │ > |> _assertEqual (
> │ >     Some (
> │ >         None,
> │ >         [[
> │ >             "main.spi:
> │ > Recursive metavariables are not allowed. A metavar cannot 
> be unified with a type
> │ > that has itself.
> │ > Got:      'a
> │ > Expected: () -> 'a"
> │ >         ]]
> │ >     )
> │ > )
> │ > // |> _assertEqual None
> │ > // |> fun x -> printfn $"{x.ToDisplayString ()}"
> │ > 
> │ > ── [ 498.59ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 00:02:10 v #4136 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3
> │ > 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi
> │ > │ 00:02:10 v #4137 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error:  / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3
> │ > 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi'
> │ > │ 00:02:10 v #4138 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [] / typeErrorCount: 0 / 
> retry: 0 / path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3
> │ > 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi
> │ > │ 00:02:10 v #4139 
> Supervisor.buildFile / fullPathUri: 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe6304a9501da4
> │ > 6e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi"
> │ > │ 00:02:10 v #4140 
> Supervisor.buildFile / _fileOpenResult:
> │ > <null>
> │ > │ 00:02:10 v #4141 
> Supervisor.buildFile / before result: 
> │ > ()
> │ > │ 00:02:10 v #4181 
> Supervisor.buildFile / AsyncSeq.scan / 
> │ > outputContent:
> │ > │ ' / errors: [] / outputContentResult:  /
> typeErrorCount: 0 / 
> │ > retry: 0 / error: Some((main.spi:
> │ > │ Recursive metavariables are not allowed.
> A metavar cannot be 
> │ > unified with a type that has itself.
> │ > │ Got:      'a
> │ > │ Expected: () -> 'a, TypeErrors
> │ > │   { errors =
> │ > │      [(({ character = 18
> │ > │           line = 0 }, { character = 22
> │ > │                         line = 0 }),
> │ > │        "Recursive metavariables are not 
> allowed. A metavar 
> │ > cannot be unified with a type that has itself.
> │ > │ Got:      'a
> │ > │ Expected: () -> 'a")]
> │ > │     uri =
> │ > │      
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe6304a9501da4
> │ > 6e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi" })) / 
> path: 
> │ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3
> │ > 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi'
> │ > │ 00:02:10 v #4183 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / outputContent:
> │ > │ '' / errors: [
> │ > │   [
> │ > │     "main.spi:
> │ > │ Recursive metavariables are not allowed.
> A metavar cannot be 
> │ > unified with a type that has itself.
> │ > │ Got:      'a
> │ > │ Expected: () -> 'a",
> │ > │     {
> │ > │       "TypeErrors": {
> │ > │         "errors": [
> │ > │           [
> │ > │             [
> │ > │               {
> │ > │                 "character": 18,
> │ > │                 "line": 0
> │ > │               },
> │ > │               {
> │ > │                 "character": 22,
> │ > │                 "line": 0
> │ > │               }
> │ > │             ],
> │ > │             "Recursive metavariables are
> not allowed. A 
> │ > metavar cannot be unified with a type that has itself.
> │ > │ Got:      'a
> │ > │ Expected: () -> 'a"
> │ > │           ]
> │ > │         ],
> │ > │         "uri": 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe6304a9501da4
> │ > 6e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi"
> │ > │       }
> │ > │     }
> │ > │   ]
> │ > │ ] / typeErrorCount: 0 / retry: 0 / path:│ > 
> c:/home/git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3
> │ > 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi
> │ > │ 00:02:10 v #4185 
> Supervisor.buildFile / outputContentSeq
> │ > unfoldAsync / msg: (None,
> │ > │  Some
> │ > │    ("main.spi:
> │ > │ Recursive metavariables are not allowed.
> A metavar cannot be 
> │ > unified with a type that has itself.
> │ > │ Got:      'a
> │ > │ Expected: () -> 'a",
> │ > │     TypeErrors
> │ > │       { errors =
> │ > │          [(({ character = 18
> │ > │               line = 0 }, { character = 
> 22
> │ > │                             line = 0 }),
> │ > │            "Recursive metavariables are 
> not allowed. A 
> │ > metavar cannot be unified with a type that has itself.
> │ > │ Got:      'a
> │ > │ Expected: () -> 'a")]
> │ > │         uri =
> │ > │          
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe6304a9501da4
> │ > 6e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi" }))
> │ > │ 00:02:10 v #4186 
> Supervisor.buildFile / 
> │ > takeWhileInclusive / TypeErrors trigger
> │ > │ 00:02:10 v #4190 
> Supervisor.buildFile / outputChild / x:
> │ > Some
> │ > │   (Ok
> │ > │      (Some
> │ > │         (None,
> │ > │          [("main.spi:
> │ > │ Recursive metavariables are not allowed.
> A metavar cannot be 
> │ > unified with a type that has itself.
> │ > │ Got:      'a
> │ > │ Expected: () -> 'a",
> │ > │            TypeErrors
> │ > │              { errors =
> │ > │                 [(({ character = 18
> │ > │                      line = 0 }, { 
> character = 22
> │ > │                                    line 
> = 0 }),
> │ > │                   "Recursive 
> metavariables are not allowed. A
> │ > metavar cannot be unified with a type that has itself.
> │ > │ Got:      'a
> │ > │ Expected: () -> 'a")]
> │ > │                uri =
> │ > │                 
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe6304a9501da4
> │ > 6e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi" })],
> │ > │          0)))
> │ > │ 00:02:10 v #4191 
> Supervisor.buildFile / outputChild |> 
> │ > Async.map
> │ > │ 00:02:10 v #4194 
> Supervisor.buildFile / 
> │ > outputContentSeq2 unfoldAsync / msg: (None,
> │ > │  [("main.spi:
> │ > │ Recursive metavariables are not allowed.
> A metavar cannot be 
> │ > unified with a type that has itself.
> │ > │ Got:      'a
> │ > │ Expected: () -> 'a",
> │ > │    TypeErrors
> │ > │      { errors =
> │ > │         [(({ character = 18
> │ > │              line = 0 }, { character = 
> 22
> │ > │                            line = 0 }),
> │ > │           "Recursive metavariables are 
> not allowed. A metavar
> │ > cannot be unified with a type that has itself.
> │ > │ Got:      'a
> │ > │ Expected: () -> 'a")]
> │ > │        uri =
> │ > │         
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe6304a9501da4
> │ > 6e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi" })],
> │ > │  0)
> │ > │ 00:02:10 v #4196 
> Supervisor.buildFile / ofSeqAsync / x: 
> │ > (None,
> │ > │  [("main.spi:
> │ > │ Recursive metavariables are not allowed.
> A metavar cannot be 
> │ > unified with a type that has itself.
> │ > │ Got:      'a
> │ > │ Expected: () -> 'a",
> │ > │    TypeErrors
> │ > │      { errors =
> │ > │         [(({ character = 18
> │ > │              line = 0 }, { character = 
> 22
> │ > │                            line = 0 }),
> │ > │           "Recursive metavariables are 
> not allowed. A metavar
> │ > cannot be unified with a type that has itself.
> │ > │ Got:      'a
> │ > │ Expected: () -> 'a")]
> │ > │        uri =
> │ > │         
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe6304a9501da4
> │ > 6e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi" })],
> │ > │  0)
> │ > │ 00:02:10 v #4199 
> Supervisor.buildFile / result: 
> │ > [("main.spi:
> │ > │ Recursive metavariables are not allowed.
> A metavar cannot be 
> │ > unified with a type that has itself.
> │ > │ Got:      'a
> │ > │ Expected: () -> 'a",
> │ > │   TypeErrors
> │ > │     { errors =
> │ > │        [(({ character = 18
> │ > │             line = 0 }, { character = 22
> │ > │                           line = 0 }),
> │ > │          "Recursive metavariables are 
> not allowed. A metavar 
> │ > cannot be unified with a type that has itself.
> │ > │ Got:      'a
> │ > │ Expected: () -> 'a")]
> │ > │       uri =
> │ > │        
> │ > 
> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe6304a9501da4
> │ > 6e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi" })] / 
> buildFileResult: None
> │ > / typeErrorCount: 0
> │ > │ 00:02:10 v #4200 
> Supervisor.buildFile / retry: 0 / 
> │ > typeErrorCount: 0 / fileDir: 
> │ > 
> c:\home\git\polyglot\target\spiral_Eval\packages\883e0123fe6304a9501da46e85facc3
> │ > 9c4ac4e3dbb77895f8ccd4581901ee2b7 / targetDir: 
> c:/home/git\polyglot\target
> │ > │ 00:02:10 v #4201 
> Supervisor.buildFile / outputChild |> 
> │ > Async.map
> │ > │ Some
> │ > │   (None,
> │ > │    ["main.spi:
> │ > │ Recursive metavariables are not allowed.
> A metavar cannot be 
> │ > unified with a type that has itself.
> │ > │ Got:      'a
> │ > │ Expected: () -> 'a"])
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## getFileTokenRange
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let getFileTokenRange port cancellationToken path = async {
> │ >     let fullPath = path |> System.IO.Path.GetFullPath
> │ >     let! code = fullPath |> 
> SpiralFileSystem.read_all_text_async
> │ >     let lines = code |> SpiralSm.split "\n"
> │ > 
> │ >     let struct (token, disposable) = 
> SpiralThreading.new_disposable_token 
> │ > cancellationToken
> │ >     use _ = disposable
> │ > 
> │ >     let port = port |> Option.defaultWith getCompilerPort
> │ >     // let! serverPort, _errors, ct, disposable = 
> awaitCompiler port (Some 
> │ > token)
> │ >     // use _ = disposable
> │ > 
> │ >     let fullPathUri = fullPath |> 
> SpiralFileSystem.normalize_path |> 
> │ > SpiralFileSystem.new_file_uri
> │ > 
> │ >     // let fileOpenObj = {| FileOpen = {| uri = 
> fullPathUri; spiText = code |} 
> │ > |}
> │ >     // let! _fileOpenResult = fileOpenObj |> sendObj 
> serverPort
> │ >     let fileOpenArgs = {| uri = fullPathUri; spiText = code
> |}
> │ >     let! _fileOpenResult =
> │ >         server2.job_null (server2.supervisor *<+ 
> SupervisorReq.FileOpen 
> │ > fileOpenArgs)
> │ >         |> Async.AwaitTask
> │ > 
> │ >     // do! Async.Sleep 60
> │ > 
> │ >     let fileTokenRangeArgs =
> │ >         {|
> │ >             uri = fullPathUri
> │ >             range =
> │ >                 {|
> │ >                     line = 0
> │ >                     character = 0
> │ >                 |},
> │ >                 {|
> │ >                     line = lines.Length - 1
> │ >                     character = lines.[[lines.Length - 
> 1]].Length
> │ >                 |}
> │ >         |}
> │ >     // let! fileTokenRangeResult =
> │ >     //     fileTokenRangeObj
> │ >     //     |> sendObj serverPort
> │ >     //     |> Async.withCancellationToken ct
> │ > 
> │ >     // let fileTokenRangeArgs = {| uri = fullPathUri; 
> backend = backendId |}
> │ >     let! fileTokenRangeResult =
> │ >         server2.job_val (fun res -> server2.supervisor *<+ 
> │ > SupervisorReq.FileTokenRange(fileTokenRangeArgs,res))
> │ >         |> Async.AwaitTask
> │ > 
> │ >     let fileDir = fullPath |> 
> System.IO.Path.GetDirectoryName
> │ >     if fileDir |> SpiralSm.starts_with (workspaceRoot </> 
> "target") then
> │ >         let fileDirUri = fileDir |> 
> SpiralFileSystem.normalize_path |> 
> │ > SpiralFileSystem.new_file_uri
> │ >         // let fileDeleteObj = {| FileDelete = {| uris = 
> [[| fileDirUri |]] |} 
> │ > |}
> │ >         // let! _fileDeleteResult = fileDeleteObj |> 
> sendObj serverPort
> │ >         let fileDeleteArgs = {| uris = [[| fileDirUri |]] 
> |}
> │ >         let! _fileDeleteResult =
> │ >             server2.job_null (server2.supervisor *<+ 
> SupervisorReq.FileDelete 
> │ > fileDeleteArgs)
> │ >             |> Async.AwaitTask
> │ >         ()
> │ > 
> │ >     return fileTokenRangeResult |> 
> FSharp.Json.Json.deserialize<int array> |> 
> │ > Some
> │ > }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## getCodeTokenRange
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let getCodeTokenRange cancellationToken code = async {
> │ >     let! mainPath, _ =
> │ >         persistCode {| input = Spi (code, None); backend = 
> None; packages = 
> │ > [[||]] |}
> │ > 
> │ >     let codeDir = mainPath |> 
> System.IO.Path.GetDirectoryName
> │ >     let tokensPath = codeDir </> "tokens.json"
> │ >     let! tokens = async {
> │ >         if tokensPath |> System.IO.File.Exists |> not
> │ >         then return None
> │ >         else
> │ >             let! text = tokensPath |> 
> SpiralFileSystem.read_all_text_async
> │ > 
> │ >             return
> │ >                 if text.Length > 2
> │ >                 then text |> 
> FSharp.Json.Json.deserialize<int array> |> Some
> │ >                 else None
> │ >     }
> │ >     match tokens with
> │ >     | Some tokens ->
> │ >         return tokens |> Some
> │ >     | None -> return! mainPath |> getFileTokenRange None 
> cancellationToken
> │ > }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > """inl main () = ()"""
> │ > |> getCodeTokenRange None
> │ > |> Async.runWithTimeout 10000
> │ > |> Option.flatten
> │ > |> _assertEqual (Some [[| 0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 
> 5; 1; 8; 0; 0; 1; 1; 
> │ > 8; 0; 0; 2; 1; 4; 0; 0;
> │ > 2; 1; 8; 0; 0; 1; 1; 8; 0 |]])
> │ > 
> │ > ── [ 826.07ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ Some [|0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 
> 5; 1; 8; 0; 0; 1; 1; 
> │ > 8; 0; 0; 2; 1; 4; 0; 0; 2; 1; 8; 0; 0; 1; 1; 8; 0|]
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > """inl main () = 1i32"""
> │ > |> getCodeTokenRange None
> │ > |> Async.runWithTimeout 10000
> │ > |> Option.flatten
> │ > |> _assertEqual (Some [[| 0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 
> 5; 1; 8; 0; 0; 1; 1; 
> │ > 8; 0; 0; 2; 1; 4; 0; 0;
> │ > 2; 1; 3; 0; 0; 1; 3; 12; 0 |]])
> │ > 
> │ > ── [ 6.21s - stdout ] 
> ──────────────────────────────────────────────────────────
> │ > │ Some [|0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 
> 5; 1; 8; 0; 0; 1; 1; 
> │ > 8; 0; 0; 2; 1; 4; 0; 0; 2; 1; 3; 0; 0; 1; 3; 12; 0|]
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## getFileHoverAt
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let getFileHoverAt
> │ >     port
> │ >     cancellationToken
> │ >     path
> │ >     (position : {| line: int; character: int |})
> │ >     = async {
> │ >     let fullPath = path |> System.IO.Path.GetFullPath
> │ >     let! code = fullPath |> 
> SpiralFileSystem.read_all_text_async
> │ >     let lines = code |> SpiralSm.split "\n"
> │ > 
> │ >     let struct (token, disposable) = 
> SpiralThreading.new_disposable_token 
> │ > cancellationToken
> │ >     use _ = disposable
> │ > 
> │ >     let port = port |> Option.defaultWith getCompilerPort
> │ >     // let! serverPort, _errors, ct, disposable = 
> awaitCompiler port (Some 
> │ > token)
> │ >     // use _ = disposable
> │ > 
> │ >     let fullPathUri = fullPath |> 
> SpiralFileSystem.normalize_path |> 
> │ > SpiralFileSystem.new_file_uri
> │ > 
> │ >     // let fileOpenObj = {| FileOpen = {| uri = 
> fullPathUri; spiText = code |} 
> │ > |}
> │ >     // let! _fileOpenResult = fileOpenObj |> sendObj 
> serverPort
> │ >     let fileOpenArgs = {| uri = fullPathUri; spiText = code
> |}
> │ >     let! _fileOpenResult =
> │ >         server1.job_null (server1.supervisor *<+ 
> SupervisorReq.FileOpen 
> │ > fileOpenArgs)
> │ >         |> Async.AwaitTask
> │ > 
> │ >     // do! Async.Sleep 60
> │ > 
> │ >     let hoverAtArgs =
> │ >             {|
> │ >                 uri = fullPathUri
> │ >                 pos = position
> │ >             |}
> │ > 
> │ >     let! hoverAtResult =
> │ >         server1.job_val (fun res -> server1.supervisor *<+ 
> │ > SupervisorReq.HoverAt(hoverAtArgs,res))
> │ >         |> Async.AwaitTask
> │ > 
> │ >     let fileDir = fullPath |> 
> System.IO.Path.GetDirectoryName
> │ >     if fileDir |> SpiralSm.starts_with (workspaceRoot </> 
> "target") then
> │ >         let fileDirUri = fileDir |> 
> SpiralFileSystem.normalize_path |> 
> │ > SpiralFileSystem.new_file_uri
> │ >         // let fileDeleteObj = {| FileDelete = {| uris = 
> [[| fileDirUri |]] |} 
> │ > |}
> │ >         // let! _fileDeleteResult = fileDeleteObj |> 
> sendObj serverPort
> │ >         let fileDeleteArgs = {| uris = [[| fileDirUri |]] 
> |}
> │ >         let! _fileDeleteResult =
> │ >             server1.job_null (server1.supervisor *<+ 
> SupervisorReq.FileDelete 
> │ > fileDeleteArgs)
> │ >             |> Async.AwaitTask
> │ >             |> Async.runWithTimeoutAsync 60000
> │ >             |> Async.map Option.get
> │ >         ()
> │ > 
> │ >     return hoverAtResult |> Some
> │ > }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## getCodeHoverAt
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let getCodeHoverAt cancellationToken code position = async 
> {
> │ >     let! mainPath, _ =
> │ >         persistCode {| input = Spi (code, None); backend = 
> None; packages = 
> │ > [[||]] |}
> │ > 
> │ >     let codeDir = mainPath |> 
> System.IO.Path.GetDirectoryName
> │ >     let filePath = codeDir </> "hover.json"
> │ >     let! output = async {
> │ >         if filePath |> System.IO.File.Exists |> not
> │ >         then return None
> │ >         else
> │ >             let! text = filePath |> 
> SpiralFileSystem.read_all_text_async
> │ > 
> │ >             return
> │ >                 if text.Length > 2
> │ >                 then text |> Some
> │ >                 else None
> │ >     }
> │ >     match output with
> │ >     | Some output ->
> │ >         return output |> Some
> │ >     | None -> return! getFileHoverAt None cancellationToken
> mainPath position
> │ > }
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > getCodeHoverAt None """inl main () = ()""" {| line = 0; 
> character = 4 |}
> │ > |> Async.runWithTimeout 10000
> │ > |> Option.flatten
> │ > |> _assertEqual (Some "() -> ()")
> │ > 
> │ > ── [ 467.00ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ Some "() -> ()"
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > getCodeHoverAt None """inl main () = ()""" {| line = 0; 
> character = 0 |}
> │ > |> Async.runWithTimeout 10000
> │ > |> Option.flatten
> │ > |> _assertEqual (Some null)
> │ > 
> │ > ── [ 438.72ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ Some null
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > getCodeHoverAt None """inl rec main () = main""" {| line = 
> 0; character = 8 |}
> │ > |> Async.runWithTimeout 10000
> │ > |> Option.flatten
> │ > |> _assertEqual (Some "forall 'a. () -> 'a")
> │ > 
> │ > ── [ 473.35ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ Some "forall 'a. () -> 'a"
> │ > │ 
> │ > │ 
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > getCodeHoverAt None """inl main () = 1""" {| line = 0; 
> character = 4 |}
> │ > |> Async.runWithTimeout 10000
> │ > |> Option.flatten
> │ > |> _assertEqual (Some "forall 'a {number}. () -> 'a")
> │ > 
> │ > ── [ 461.30ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ Some "forall 'a {number}. () -> 'a"
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## Arguments
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > [[<RequireQualifiedAccess>]]
> │ > type Arguments =
> │ >     | Build_File of string * string
> │ >     | File_Token_Range of string * string
> │ >     | File_Hover_At of string * string * int * int
> │ >     | Execute_Command of string
> │ >     | [[<Argu.ArguAttributes.Unique>]] Timeout of int
> │ >     | [[<Argu.ArguAttributes.Unique>]] Port of int
> │ >     | [[<Argu.ArguAttributes.Unique>]] Parallel
> │ >     | [[<Argu.ArguAttributes.Unique>]] Exit_On_Error
> │ > 
> │ >     interface Argu.IArgParserTemplate with
> │ >         member s.Usage =
> │ >             match s with
> │ >             | Build_File _ -> nameof Build_File
> │ >             | File_Token_Range _ -> nameof File_Token_Range
> │ >             | File_Hover_At _ -> nameof File_Hover_At
> │ >             | Execute_Command _ -> nameof Execute_Command
> │ >             | Timeout _ -> nameof Timeout
> │ >             | Port _ -> nameof Port
> │ >             | Parallel -> nameof Parallel
> │ >             | Exit_On_Error-> nameof Exit_On_Error
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
> │ > 
> │ > ── [ 167.00ms - return value ] 
> ─────────────────────────────────────────────────
> │ > │ "USAGE: dotnet-repl [--help] 
> [--build-file <string> <string>]
> │ > │                    [--file-token-range 
> <string> <string>]
> │ > │                    [--file-hover-at 
> <string> <string> <int> 
> │ > <int>]
> │ > │                    [--execute-command 
> <string>] [--timeout 
> │ > <int>] [--port <int>]
> │ > │                    [--parallel] 
> [--exit-on-error]
> │ > │ 
> │ > │ OPTIONS:
> │ > │ 
> │ > │     --build-file <string> <string>
> │ > │                           Build_File
> │ > │     --file-token-range <string> <string>
> │ > │                           
> File_Token_Range
> │ > │     --file-hover-at <string> <string> 
> <int> <int>
> │ > │                           File_Hover_At
> │ > │     --execute-command <string>
> │ > │                           
> Execute_Command
> │ > │     --timeout <int>       Timeout
> │ > │     --port <int>          Port
> │ > │     --parallel            Parallel
> │ > │     --exit-on-error       Exit_On_Error
> │ > │     --help                display this 
> list of options.
> │ > │ "
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## main
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let main args =
> │ >     SpiralTrace.TraceLevel.US0_1 |> set_trace_level
> │ >     let argsMap = args |> Runtime.parseArgsMap<Arguments>
> │ > 
> │ >     let buildFileActions =
> │ >         argsMap
> │ >         |> Map.tryFind (nameof Arguments.Build_File)
> │ >         |> Option.defaultValue [[]]
> │ >         |> List.choose (function
> │ >             | Arguments.Build_File (inputPath, outputPath) 
> -> Some (inputPath, 
> │ > outputPath)
> │ >             | _ -> None
> │ >         )
> │ > 
> │ >     let fileTokenRangeActions =
> │ >         argsMap
> │ >         |> Map.tryFind (nameof Arguments.File_Token_Range)
> │ >         |> Option.defaultValue [[]]
> │ >         |> List.choose (function
> │ >             | Arguments.File_Token_Range (inputPath, 
> outputPath) -> Some 
> │ > (inputPath, outputPath)
> │ >             | _ -> None
> │ >         )
> │ > 
> │ >     let fileHoverAtActions =
> │ >         argsMap
> │ >         |> Map.tryFind (nameof Arguments.File_Hover_At)
> │ >         |> Option.defaultValue [[]]
> │ >         |> List.choose (function
> │ >             | Arguments.File_Hover_At (inputPath, 
> outputPath, line, character) 
> │ > ->
> │ >                 Some (inputPath, outputPath, line, 
> character)
> │ >             | _ -> None
> │ >         )
> │ > 
> │ >     let executeCommandActions =
> │ >         argsMap
> │ >         |> Map.tryFind (nameof Arguments.Execute_Command)
> │ >         |> Option.defaultValue [[]]
> │ >         |> List.choose (function
> │ >             | Arguments.Execute_Command command -> Some 
> command
> │ >             | _ -> None
> │ >         )
> │ > 
> │ >     let timeout =
> │ >         match argsMap |> Map.tryFind (nameof 
> Arguments.Timeout) with
> │ >         | Some [[ Arguments.Timeout timeout ]] -> timeout
> │ >         | _ -> 60002 * 60 * 24
> │ > 
> │ >     let port =
> │ >         match argsMap |> Map.tryFind (nameof 
> Arguments.Port) with
> │ >         | Some [[ Arguments.Port port ]] -> Some port
> │ >         | _ -> None
> │ > 
> │ >     let isParallel = argsMap |> Map.containsKey (nameof 
> Arguments.Parallel)
> │ > 
> │ >     let isExitOnError = argsMap |> Map.containsKey (nameof 
> │ > Arguments.Exit_On_Error)
> │ > 
> │ >     async {
> │ >         let port =
> │ >             port
> │ >             |> Option.defaultWith getCompilerPort
> │ >         let struct (localToken, disposable) = 
> │ > SpiralThreading.new_disposable_token None
> │ >         // let! serverPort, _errors, compilerToken, 
> disposable = awaitCompiler 
> │ > port (Some localToken)
> │ >         let serverPort = port
> │ >         let struct (compilerToken, disposable) = 
> │ > SpiralThreading.new_disposable_token None
> │ >         use _ = disposable
> │ > 
> │ >         let buildFileAsync =
> │ >             buildFileActions
> │ >             |> List.map (fun (inputPath, outputPath) -> 
> async {
> │ >                 let! _outputPath, outputCode, errors =
> │ >                     let backend =
> │ >                         if outputPath |> SpiralSm.ends_with
> ".fsx"
> │ >                         then Fsharp
> │ >                         elif outputPath |> 
> SpiralSm.ends_with ".py"
> │ >                         then Cuda
> │ >                         elif outputPath |> 
> SpiralSm.ends_with ".gleam"
> │ >                         then Gleam
> │ >                         else failwith $"Supervisor.main / 
> invalid backend / 
> │ > outputPath: {outputPath}"
> │ >                     let isReal = inputPath |> 
> SpiralSm.ends_with ".spir"
> │ >                     inputPath |> buildFile backend timeout 
> (Some serverPort) 
> │ > None
> │ > 
> │ >                 errors
> │ >                 |> List.map snd
> │ >                 |> List.iter (fun error ->
> │ >                     trace Critical (fun () -> $"main / 
> error: {error |> 
> │ > serializeObj}") _locals
> │ >                 )
> │ > 
> │ >                 match outputCode with
> │ >                 | Some outputCode ->
> │ >                     do! outputCode |> 
> SpiralFileSystem.write_all_text_exists 
> │ > outputPath
> │ >                     return 0
> │ >                 | None ->
> │ >                     if isExitOnError
> │ >                     then SpiralRuntime.current_process_kill
> ()
> │ > 
> │ >                     return 1
> │ >             })
> │ > 
> │ >         let fileTokenRangeAsync =
> │ >             fileTokenRangeActions
> │ >             |> List.map (fun (inputPath, outputPath) -> 
> async {
> │ >                 let! tokenRange = inputPath |> 
> getFileTokenRange (Some 
> │ > serverPort) None
> │ >                 match tokenRange with
> │ >                 | Some tokenRange ->
> │ >                     do! tokenRange |> 
> FSharp.Json.Json.serialize |> 
> │ > SpiralFileSystem.write_all_text_exists outputPath
> │ >                     return 0
> │ >                 | None ->
> │ >                     if isExitOnError
> │ >                     then SpiralRuntime.current_process_kill
> ()
> │ > 
> │ >                     return 1
> │ >             })
> │ > 
> │ >         let fileHoverAtAsync =
> │ >             fileHoverAtActions
> │ >             |> List.map (fun (inputPath, outputPath, line, 
> character) -> async {
> │ >                 let! hoverAt =
> │ >                     getFileHoverAt
> │ >                         (Some serverPort)
> │ >                         None
> │ >                         inputPath
> │ >                         {| line = line; character = 
> character |}
> │ >                 match hoverAt with
> │ >                 | Some hoverAt ->
> │ >                     do! hoverAt |> 
> FSharp.Json.Json.serialize |> 
> │ > SpiralFileSystem.write_all_text_exists outputPath
> │ >                     return 0
> │ >                 | None ->
> │ >                     if isExitOnError
> │ >                     then SpiralRuntime.current_process_kill
> ()
> │ > 
> │ >                     return 1
> │ >             })
> │ > 
> │ >         let executeCommandAsync =
> │ >             executeCommandActions
> │ >             |> List.map (fun command -> async {
> │ >                 let! exitCode, result =
> │ >                     SpiralRuntime.execution_options (fun x 
> ->
> │ >                         { x with
> │ >                             l0 = command
> │ >                             l1 = Some compilerToken
> │ >                         }
> │ >                     )
> │ >                     |> 
> SpiralRuntime.execute_with_options_async
> │ > 
> │ >                 trace Debug (fun () -> $"main / 
> executeCommand / exitCode: 
> │ > {exitCode} / command: {command}") _locals
> │ > 
> │ >                 if isExitOnError && exitCode <> 0
> │ >                 then SpiralRuntime.current_process_kill ()
> │ > 
> │ >                 return exitCode
> │ >             })
> │ > 
> │ >         return!
> │ >             [[| buildFileAsync; fileTokenRangeAsync; 
> fileHoverAtAsync; 
> │ > executeCommandAsync |]]
> │ >             |> Seq.collect id
> │ >             |> fun x ->
> │ >                 if isParallel
> │ >                 then Async.Parallel (x, float 
> System.Environment.ProcessorCount 
> │ > * 0.51 |> ceil |> int)
> │ >                 else Async.Sequential x
> │ >             |> Async.map Array.sum
> │ >     }
> │ >     |> Async.runWithTimeout timeout
> │ >     |> Option.defaultValue 1
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let args =
> │ >     System.Environment.GetEnvironmentVariable "ARGS"
> │ >     |> SpiralRuntime.split_args
> │ >     |> Result.toArray
> │ >     |> Array.collect id
> │ > 
> │ > match args with
> │ > | [[||]] -> 0
> │ > | args -> if main args = 0 then 0 else failwith "main 
> failed"
> │ > 
> │ > ── [ 117.38ms - return value ] 
> ─────────────────────────────────────────────────
> │ > │ <div class="dni-plaintext"><pre>0
> │ > │ </pre></div><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ 00:02:41 v #3 runtime.execute_with_options / result / {
> exit_code = 0; std_trace_length = 169435 }
> │ 00:02:41 d #4 runtime.execute_with_options / { 
> file_name = jupyter; arguments = ["nbconvert", 
> "c:/home/git/polyglot/apps/spiral/Supervisor.dib.ipynb", "--to", "html", 
> "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert 
> "c:/home/git/polyglot/apps/spiral/Supervisor.dib.ipynb" --to html 
> --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:02:42 v #5 ! [NbConvertApp] Converting notebook 
> c:/home/git/polyglot/apps/spiral/Supervisor.dib.ipynb to html
> │ 00:02:42 v #6 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.
> py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a 
> hard error in future nbformat versions. You may want to use `normalize()` on 
> your notebooks before validations (available since nbformat 5.1.4). Previous 
> versions of nbformat are fixing this issue transparently, and will stop doing so
> in the future.
> │ 00:02:42 v #7 !   validate(nb)
> │ 00:02:43 v #8 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\
> highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python
> 3
> │ 00:02:43 v #9 !   return _pygments_highlight(
> │ 00:02:44 v #10 ! [NbConvertApp] Writing 607045 bytes to
> c:\home\git\polyglot\apps\spiral\Supervisor.dib.html
> │ 00:02:44 v #11 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 864 }
> │ 00:02:44 d #12 spiral.run / dib / jupyter nbconvert / {
> exit_code = 0; jupyter_result_length = 864 }
> │ 00:02:45 d #13 runtime.execute_with_options / { 
> file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/spiral/Supervisor.dib.html'; (Get-Content $path -Raw)
> -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } 
> | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/spiral/Supervisor.dib.html'; (Get-Content $path -Raw)
> -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | 
> Set-Content $path"; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:02:45 v #14 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 0 }
> │ 00:02:45 d #15 spiral.run / dib / html cell ids / { 
> exit_code = 0; pwsh_replace_html_result_length = 0 }
> │ 00:02:45 d #16 spiral.run / dib / { exit_code = 0; 
> result_length = 170358 }
> │ 00:00:00 d #1 writeDibCode / output: Fs / path: 
> Supervisor.dib
> │ 00:00:00 d #2 parseDibCode / output: Fs / file: 
> Supervisor.dib
> │ 00:00:00 d #1 persistCodeProject / packages: [Argu; 
> FSharp.Control.AsyncSeq; FSharp.Json; ... ] / modules: 
> [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; 
> deps/spiral/lib/spiral/crypto.fsx; ... ] / name: Supervisor / hash:  / 
> code.Length: 40313
> │ 00:00:00 d #2 buildProject / fullPath: 
> c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj
> │ 00:00:00 d #1 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   "publish 
> "c:/home/git\polyglot\target/Builder\Supervisor\Supervisor.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" 
> --runtime linux-x64"; options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\Supervisor\Supervisor.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" 
> --runtime linux-x64; cancellation_token = None; environment_variables = [||]; 
> on_line = None; stdin = None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\Supervisor" } }
> │ 00:00:01 v #2 >   Determining projects to restore...
> │ 00:00:01 v #3 >   Paket version 
> 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ 00:00:01 v #4 >   The last full restore is still up to 
> date. Nothing left to do.
> │ 00:00:01 v #5 >   Total time taken: 0 milliseconds
> │ 00:00:02 v #6 >   Restored 
> c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj (in 371 ms).
> │ 00:00:12 v #7 > 
> c:\home\git\polyglot\deps\spiral\apps\compiler\spiral_compiler.fs(10087,85): 
> warning FS0040: This and other recursive references to the object(s) being 
> defined will be checked for initialization-soundness at runtime through the use 
> of a delayed reference. This is because you are defining one or more recursive 
> objects, rather than recursive functions. This warning may be suppressed by 
> using '#nowarn "40"' or '--nowarn:40'. 
> [c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj]
> │ 00:00:13 v #8 > 
> c:\home\git\polyglot\deps\spiral\apps\compiler\spiral_compiler.fs(10612,85): 
> warning FS0040: This and other recursive references to the object(s) being 
> defined will be checked for initialization-soundness at runtime through the use 
> of a delayed reference. This is because you are defining one or more recursive 
> objects, rather than recursive functions. This warning may be suppressed by 
> using '#nowarn "40"' or '--nowarn:40'. 
> [c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj]
> │ 00:00:13 v #9 > 
> c:\home\git\polyglot\deps\spiral\apps\compiler\spiral_compiler.fs(11436,43): 
> warning FS0040: This and other recursive references to the object(s) being 
> defined will be checked for initialization-soundness at runtime through the use 
> of a delayed reference. This is because you are defining one or more recursive 
> objects, rather than recursive functions. This warning may be suppressed by 
> using '#nowarn "40"' or '--nowarn:40'. 
> [c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj]
> │ 00:00:13 v #10 > 
> c:\home\git\polyglot\deps\spiral\apps\compiler\spiral_compiler.fs(12366,43): 
> warning FS0040: This and other recursive references to the object(s) being 
> defined will be checked for initialization-soundness at runtime through the use 
> of a delayed reference. This is because you are defining one or more recursive 
> objects, rather than recursive functions. This warning may be suppressed by 
> using '#nowarn "40"' or '--nowarn:40'. 
> [c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj]
> │ 00:00:14 v #11 > 
> c:\home\git\polyglot\deps\spiral\apps\compiler\spiral_compiler.fs(13032,71): 
> warning FS0040: This and other recursive references to the object(s) being 
> defined will be checked for initialization-soundness at runtime through the use 
> of a delayed reference. This is because you are defining one or more recursive 
> objects, rather than recursive functions. This warning may be suppressed by 
> using '#nowarn "40"' or '--nowarn:40'. 
> [c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj]
> │ 00:00:16 v #12 > 
> c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fs(211,19): warning 
> FS0686: The method or function 'new_server' should not be given explicit type 
> argument(s) because it does not declare its type parameters explicitly 
> [c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj]
> │ 00:00:16 v #13 > 
> c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fs(212,19): warning 
> FS0686: The method or function 'new_server' should not be given explicit type 
> argument(s) because it does not declare its type parameters explicitly 
> [c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj]
> │ 00:00:34 v #14 >   Supervisor -> 
> c:\home\git\polyglot\target\Builder\Supervisor\bin\Release\net9.0\linux-x64\Supe
> rvisor.dll
> │ 00:00:36 v #15 >   Supervisor -> 
> C:\home\git\polyglot\apps\spiral\dist\
> │ 00:00:36 d #16 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 3503; options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\Supervisor\Supervisor.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" 
> --runtime linux-x64; cancellation_token = None; environment_variables = [||]; 
> on_line = None; stdin = None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\Supervisor" } }
> │ 00:00:36 d #17 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   "publish 
> "c:/home/git\polyglot\target/Builder\Supervisor\Supervisor.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" 
> --runtime win-x64"; options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\Supervisor\Supervisor.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" 
> --runtime win-x64; cancellation_token = None; environment_variables = [||]; 
> on_line = None; stdin = None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\Supervisor" } }
> │ 00:00:37 v #18 >   Determining projects to restore...
> │ 00:00:37 v #19 >   Paket version 
> 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ 00:00:37 v #20 >   The last full restore is still up to 
> date. Nothing left to do.
> │ 00:00:37 v #21 >   Total time taken: 0 milliseconds
> │ 00:00:38 v #22 >   Restored 
> c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj (in 343 ms).
> │ 00:00:49 v #23 > 
> c:\home\git\polyglot\deps\spiral\apps\compiler\spiral_compiler.fs(10087,85): 
> warning FS0040: This and other recursive references to the object(s) being 
> defined will be checked for initialization-soundness at runtime through the use 
> of a delayed reference. This is because you are defining one or more recursive 
> objects, rather than recursive functions. This warning may be suppressed by 
> using '#nowarn "40"' or '--nowarn:40'. 
> [c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj]
> │ 00:00:49 v #24 > 
> c:\home\git\polyglot\deps\spiral\apps\compiler\spiral_compiler.fs(10612,85): 
> warning FS0040: This and other recursive references to the object(s) being 
> defined will be checked for initialization-soundness at runtime through the use 
> of a delayed reference. This is because you are defining one or more recursive 
> objects, rather than recursive functions. This warning may be suppressed by 
> using '#nowarn "40"' or '--nowarn:40'. 
> [c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj]
> │ 00:00:50 v #25 > 
> c:\home\git\polyglot\deps\spiral\apps\compiler\spiral_compiler.fs(11436,43): 
> warning FS0040: This and other recursive references to the object(s) being 
> defined will be checked for initialization-soundness at runtime through the use 
> of a delayed reference. This is because you are defining one or more recursive 
> objects, rather than recursive functions. This warning may be suppressed by 
> using '#nowarn "40"' or '--nowarn:40'. 
> [c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj]
> │ 00:00:50 v #26 > 
> c:\home\git\polyglot\deps\spiral\apps\compiler\spiral_compiler.fs(12366,43): 
> warning FS0040: This and other recursive references to the object(s) being 
> defined will be checked for initialization-soundness at runtime through the use 
> of a delayed reference. This is because you are defining one or more recursive 
> objects, rather than recursive functions. This warning may be suppressed by 
> using '#nowarn "40"' or '--nowarn:40'. 
> [c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj]
> │ 00:00:51 v #27 > 
> c:\home\git\polyglot\deps\spiral\apps\compiler\spiral_compiler.fs(13032,71): 
> warning FS0040: This and other recursive references to the object(s) being 
> defined will be checked for initialization-soundness at runtime through the use 
> of a delayed reference. This is because you are defining one or more recursive 
> objects, rather than recursive functions. This warning may be suppressed by 
> using '#nowarn "40"' or '--nowarn:40'. 
> [c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj]
> │ 00:00:54 v #28 > 
> c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fs(211,19): warning 
> FS0686: The method or function 'new_server' should not be given explicit type 
> argument(s) because it does not declare its type parameters explicitly 
> [c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj]
> │ 00:00:54 v #29 > 
> c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fs(212,19): warning 
> FS0686: The method or function 'new_server' should not be given explicit type 
> argument(s) because it does not declare its type parameters explicitly 
> [c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj]
> │ 00:01:12 v #30 >   Supervisor -> 
> c:\home\git\polyglot\target\Builder\Supervisor\bin\Release\net9.0\win-x64\Superv
> isor.dll
> │ 00:01:13 v #31 >   Supervisor -> 
> C:\home\git\polyglot\apps\spiral\dist\
> │ 00:01:13 d #32 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 3501; options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\Supervisor\Supervisor.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" 
> --runtime win-x64; cancellation_token = None; environment_variables = [||]; 
> on_line = None; stdin = None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\Supervisor" } }
> │ 00:00:00 d #1 spiral.main / { args = 
> Array(MutCell(["dib", "--path", "Eval.dib", "--retries", "3"])) }
> │ 00:00:00 d #2 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", 
> "c:/home/git/polyglot/apps/spiral/Eval.dib", "--output-path", 
> "c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb"]; options = { command = dotnet
> repl --exit-after-run --run "c:/home/git/polyglot/apps/spiral/Eval.dib" 
> --output-path "c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb"; 
> cancellation_token = None; environment_variables = 
> Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = 
> None; stdin = None; trace = false; working_directory = None } }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ # Eval (Polyglot)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
> │ > dard2.1/FSharp.Control.AsyncSeq.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
> │ > 0/System.Reactive.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
> │ > netstandard2.0/System.Reactive.Linq.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.com
> │ > 
> mon/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Common.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.cli
> │ > 
> ent/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Client.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.common/7.0.0
> │ > /lib/net7.0/Microsoft.AspNetCore.SignalR.Common.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client/7.0.0
> │ > /lib/net7.0/Microsoft.AspNetCore.SignalR.Client.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client.core/
> │ > 
> 7.0.0/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.Core.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha
> │ > rp.Json.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/system.management/7.0.0/lib/netstandard2.
> │ > 0/System.Management.dll"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/fsharpx.collections/3.1.0/lib/netstandard
> │ > 2.0/FSharpx.Collections.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/hopac/0.5.1/lib/netstandard2.0/Hopac.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/hopac/0.5.1/lib/netstandard2.0/Hopac.Core
> │ > .dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
> │ > arsec.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
> │ > arsecCS.dll"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.dll"
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.dll"
> │ > #endif
> │ > 
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.SignalR.dll"
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.SignalR.dll"
> │ > #endif
> │ > 
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.SignalR.Core.dll"
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.SignalR.Core.dll"
> │ > #endif
> │ > 
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Cors.dll"
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Cors.dll"
> │ > #endif
> │ > 
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Http.Abstractions.dll
> │ > "
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Http.Abstractions.dll"
> │ > #endif
> │ > 
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Connections.Abstracti
> │ > ons.dll"
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Connections.Abstractions.
> │ > dll"
> │ > #endif
> │ > 
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Hosting.Abstractions.
> │ > dll"
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Hosting.Abstractions.dll"
> │ > #endif
> │ > 
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Http.Connections.dll"
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Http.Connections.dll"
> │ > #endif
> │ > 
> │ > #if _LINUX
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x6
> │ > 
> 4/9.0.3/runtimes/linux-x64/lib/net9.0/Microsoft.AspNetCore.Routing.dll"
> │ > #else
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.aspnetcore.app.runtime.win-x64/
> │ > 
> 9.0.3/runtimes/win-x64/lib/net9.0/Microsoft.AspNetCore.Routing.dll"
> │ > #endif
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.extensions.logging/9.0.0/lib/ne
> │ > t9.0/Microsoft.Extensions.Logging.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.extensions.logging.abstractions
> │ > 
> /9.0.0/lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/microsoft.extensions.dependencyinjection.
> │ > 
> abstractions/9.0.0/lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstracti
> │ > ons.dll"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > ── [ 1.90m - diagnostics ] 
> ─────────────────────────────────────────────────────
> │ > │ input.fsx (10087,85)-(10087,88) 
> typecheck warning This and 
> │ > other recursive references to the object(s) being defined 
> will be checked for 
> │ > initialization-soundness at runtime through the use of a 
> delayed reference. This
> │ > is because you are defining one or more recursive objects, 
> rather than recursive
> │ > functions. This warning may be suppressed by using '#nowarn
> "40"' or 
> │ > '--nowarn:40'.
> │ > │ input.fsx (10612,85)-(10612,88) 
> typecheck warning This and 
> │ > other recursive references to the object(s) being defined 
> will be checked for 
> │ > initialization-soundness at runtime through the use of a 
> delayed reference. This
> │ > is because you are defining one or more recursive objects, 
> rather than recursive
> │ > functions. This warning may be suppressed by using '#nowarn
> "40"' or 
> │ > '--nowarn:40'.
> │ > │ input.fsx (11436,43)-(11436,49) 
> typecheck warning This and 
> │ > other recursive references to the object(s) being defined 
> will be checked for 
> │ > initialization-soundness at runtime through the use of a 
> delayed reference. This
> │ > is because you are defining one or more recursive objects, 
> rather than recursive
> │ > functions. This warning may be suppressed by using '#nowarn
> "40"' or 
> │ > '--nowarn:40'.
> │ > │ input.fsx (12366,43)-(12366,49) 
> typecheck warning This and 
> │ > other recursive references to the object(s) being defined 
> will be checked for 
> │ > initialization-soundness at runtime through the use of a 
> delayed reference. This
> │ > is because you are defining one or more recursive objects, 
> rather than recursive
> │ > functions. This warning may be suppressed by using '#nowarn
> "40"' or 
> │ > '--nowarn:40'.
> │ > │ input.fsx (13032,71)-(13032,74) 
> typecheck warning This and 
> │ > other recursive references to the object(s) being defined 
> will be checked for 
> │ > initialization-soundness at runtime through the use of a 
> delayed reference. This
> │ > is because you are defining one or more recursive objects, 
> rather than recursive
> │ > functions. This warning may be suppressed by using '#nowarn
> "40"' or 
> │ > '--nowarn:40'.
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > open spiral_compiler
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > ── [ 10.11s - diagnostics ] 
> ────────────────────────────────────────────────────
> │ > │ input.fsx (211,19)-(211,29) typecheck 
> warning The method or 
> │ > function 'new_server' should not be given explicit type 
> argument(s) because it 
> │ > does not declare its type parameters explicitly
> │ > │ input.fsx (212,19)-(212,29) typecheck 
> warning The method or 
> │ > function 'new_server' should not be given explicit type 
> argument(s) because it 
> │ > does not declare its type parameters explicitly
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > #if !INTERACTIVE
> │ > open Lib
> │ > #endif
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > open Common
> │ > open SpiralFileSystem.Operators
> │ > open Microsoft.AspNetCore.SignalR.Client
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > open System
> │ > open System.Collections.Generic
> │ > open System.IO
> │ > open System.Text
> │ > open System.Threading
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## mapErrors
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline mapErrors (severity, errors, lastTopLevelIndex) 
> allCode =
> │ >     let allCodeLineLength =
> │ >         allCode |> SpiralSm.split "\n" |> Array.length
> │ > 
> │ >     errors
> │ >     |> List.map (fun (_, error) ->
> │ >         match error with
> │ >         | FatalError message ->
> │ >             (
> │ >                 severity, message, 0, ("", (0, 0), (0, 0))
> │ >             )
> │ >             |> List.singleton
> │ >         | TracedError data ->
> │ >             data.trace
> │ >             |> List.truncate 5
> │ >             |> List.append [[ data.message ]]
> │ >             |> List.map (fun message ->
> │ >                 (
> │ >                     severity, message, 0, ("", (0, 0), (0, 
> 0))
> │ >                 )
> │ >             )
> │ >         | PackageErrors data
> │ >         | TokenizerErrors data
> │ >         | ParserErrors data
> │ >         | TypeErrors data ->
> │ >             data.errors
> │ >             |> List.filter (fun ((rangeStart, _), _) ->
> │ >                 trace Debug (fun () -> $"Eval.mapErrors / 
> rangeStart.line: 
> │ > {rangeStart.line} / lastTopLevelIndex: {lastTopLevelIndex} 
> / allCodeLineLength: 
> │ > {allCodeLineLength} / filtered: {rangeStart.line > 
> allCodeLineLength}") _locals
> │ >                 rangeStart.line > allCodeLineLength
> │ >             )
> │ >             |> List.map (fun ((rangeStart, rangeEnd), 
> message) ->
> │ >                 (
> │ >                     severity,
> │ >                     message,
> │ >                     0,
> │ >                     (
> │ >                         (data.uri |> 
> System.IO.Path.GetFileName),
> │ >                         (
> │ >                             (match lastTopLevelIndex with
> │ >                             | Some i when rangeStart.line 
> >= i + 
> │ > allCodeLineLength + 3 ->
> │ >                                 rangeStart.line - 
> allCodeLineLength - 2
> │ >                             | _ -> rangeStart.line - 
> allCodeLineLength),
> │ >                             (match lastTopLevelIndex with
> │ >                             | Some i when rangeStart.line 
> >= i + 
> │ > allCodeLineLength + 3 ->
> │ >                                 rangeStart.character - 4
> │ >                             | _ -> rangeStart.character)
> │ >                         ),
> │ >                         (
> │ >                             (match lastTopLevelIndex with
> │ >                             | Some i when rangeStart.line 
> >= i + 
> │ > allCodeLineLength + 3 ->
> │ >                                 rangeEnd.line - 
> allCodeLineLength - 2
> │ >                             | _ -> rangeEnd.line - 
> allCodeLineLength),
> │ >                             (match lastTopLevelIndex with
> │ >                             | Some i when rangeStart.line 
> >= i + 
> │ > allCodeLineLength + 3 ->
> │ >                                 rangeEnd.character - 4
> │ >                             | _ -> rangeEnd.character)
> │ >                         )
> │ >                     )
> │ >                 )
> │ >             )
> │ >     )
> │ >     |> List.collect id
> │ >     |> List.toArray
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### workspaceRoot
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let workspaceRoot = SpiralFileSystem.get_workspace_root ()
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### targetDir
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let targetDir = workspaceRoot </> "target/spiral_Eval"
> │ > [[ targetDir ]]
> │ > |> List.iter (fun dir -> if Directory.Exists dir |> not 
> then 
> │ > Directory.CreateDirectory dir |> ignore)
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## allCode
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let mutable allCode = ""
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### allPackages
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let mutable allPackages : string [[]] = [[||]]
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## allCodeReal
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let mutable allCodeReal = ""
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## traceToggle
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let mutable traceToggle = false
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## startTokenRangeWatcher
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline startTokenRangeWatcher () =
> │ >     if [[ "dotnet-repl" ]] |> List.contains 
> spiral_compiler.assemblyName
> │ >     then new_disposable (fun () -> ())
> │ >     else
> │ >         let tokensDir = targetDir </> "tokens"
> │ > 
> │ >         [[ tokensDir ]]
> │ >         |> List.iter (fun dir -> if Directory.Exists dir |>
> not then 
> │ > Directory.CreateDirectory dir |> ignore)
> │ > 
> │ >         let stream, disposable = FileSystem.watchDirectory 
> (fun _ -> false) 
> │ > tokensDir
> │ > 
> │ >         try
> │ >             let existingFilesChild =
> │ >                 tokensDir
> │ >                 |> System.IO.Directory.GetDirectories
> │ >                 |> Array.map (fun codeDir -> async {
> │ >                     try
> │ >                         let tokensPath = codeDir </> 
> "tokens.json"
> │ >                         if tokensPath |> File.Exists |> not
> then
> │ >                             let spiralCodePath = codeDir 
> </> "main.spi"
> │ >                             let spiralRealCodePath = 
> codeDir </> 
> │ > "main_real.spir"
> │ >                             let spiralExists = 
> spiralCodePath |> 
> │ > System.IO.File.Exists
> │ >                             let spiralRealExists = 
> spiralRealCodePath |> 
> │ > System.IO.File.Exists
> │ >                             if spiralExists |> not && 
> spiralRealExists |> not
> │ >                             then do! codeDir |> 
> │ > SpiralFileSystem.delete_directory_async |> Async.Ignore
> │ >                             else
> │ >                                 let! tokens =
> │ >                                     if spiralExists then 
> spiralCodePath else 
> │ > spiralRealCodePath
> │ >                                     |> 
> Supervisor.getFileTokenRange None None
> │ >                                 match tokens with
> │ >                                 | Some tokens ->
> │ >                                     do!
> │ >                                         tokens
> │ >                                         |> 
> FSharp.Json.Json.serialize
> │ >                                         |> 
> SpiralFileSystem.write_all_text_async
> │ > tokensPath
> │ >                                 | None ->
> │ >                                     trace Verbose (fun () 
> -> 
> │ > $"Eval.startTokenRangeWatcher / GetDirectories / tokens: 
> None") _locals
> │ >                     with ex ->
> │ >                         trace Critical (fun () -> 
> $"Eval.startTokenRangeWatcher 
> │ > / GetDirectories / ex: {ex |> SpiralSm.format_exception}") 
> _locals
> │ >                 })
> │ >                 |> Async.Parallel
> │ >                 |> Async.Ignore
> │ > 
> │ >             let streamAsyncChild =
> │ >                 stream
> │ >                 |> 
> FSharp.Control.AsyncSeq.iterAsyncParallel (fun (ticks, event)
> │ > ->
> │ >                     match event with
> │ >                     | FileSystem.FileSystemChange.Changed 
> (codePath, _)
> │ >                         when [[ "main.spi"; 
> "main_real.spir" ]]
> │ >                             |> List.contains 
> (System.IO.Path.GetFileName 
> │ > codePath)
> │ >                         ->
> │ >                         async {
> │ >                             let hashDir = codePath |> 
> │ > System.IO.Directory.GetParent
> │ >                             let hashHex = hashDir.Name
> │ >                             let codePath = tokensDir </> 
> codePath
> │ >                             let tokensPath = tokensDir </> 
> hashHex </> 
> │ > "tokens.json"
> │ >                             // do! Async.Sleep 30
> │ >                             let rec loop retry = async {
> │ >                                 let! tokens = codePath |> 
> │ > Supervisor.getFileTokenRange None None
> │ >                                 if retry = 3 || tokens <> 
> Some [[||]]
> │ >                                 then return tokens, retry
> │ >                                 else
> │ >                                     trace Debug
> │ >                                         (fun () -> 
> $"Eval.startTokenRangeWatcher
> │ > / iterAsyncParallel")
> │ >                                         (fun () -> $"retry:
> {retry} / tokens: 
> │ > %A{tokens}")
> │ >                                     do! Async.Sleep 30
> │ >                                     return! loop (retry + 
> 1)
> │ >                             }
> │ >                             let! tokens, retries = loop 1
> │ >                             match tokens with
> │ >                             | Some tokens ->
> │ >                                 do!
> │ >                                     tokens
> │ >                                     |> 
> FSharp.Json.Json.serialize
> │ >                                     |> 
> SpiralFileSystem.write_all_text_exists 
> │ > tokensPath
> │ >                             | None ->
> │ >                                 trace Debug
> │ >                                     (fun () -> 
> $"Eval.startTokenRangeWatcher / 
> │ > iterAsyncParallel")
> │ >                                     (fun () -> $"retries: 
> {retries} / tokens: 
> │ > {tokens}")
> │ >                         }
> │ >                         |> Async.retryAsync 3
> │ >                         |> Async.map (Result.toOption >> 
> Option.defaultValue ())
> │ >                     | _ -> () |> Async.init
> │ >                 )
> │ > 
> │ >             async {
> │ >                 do! Async.Sleep 3000
> │ >                 existingFilesChild |> Async.StartImmediate
> │ >                 streamAsyncChild |> Async.Start
> │ >             }
> │ >             |> Async.Start
> │ >         with ex ->
> │ >             trace Critical (fun () -> 
> $"Eval.startTokenRangeWatcher / ex: {ex |>
> │ > SpiralSm.format_exception}") _locals
> │ > 
> │ >         disposable
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## startCommandsWatcher
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let startCommandsWatcher (uriServer : string) =
> │ >     let commandsDir = targetDir </> "eval_commands"
> │ >     let commandHistoryDir = targetDir </> 
> "eval_command_history"
> │ >     [[ commandsDir; commandHistoryDir ]]
> │ >     |> List.iter (fun dir -> if Directory.Exists dir |> not
> then 
> │ > Directory.CreateDirectory dir |> ignore)
> │ > 
> │ >     Directory.EnumerateFiles commandsDir |> Seq.iter 
> File.Delete
> │ > 
> │ >     let stream, disposable =
> │ >         commandsDir
> │ >         |> FileSystem.watchDirectory (function
> │ >             | FileSystem.FileSystemChange.Created _ -> true
> │ >             | _ -> false
> │ >         )
> │ > 
> │ >     let connection = 
> HubConnectionBuilder().WithUrl(uriServer).Build()
> │ >     connection.StartAsync() |> Async.AwaitTask |> 
> Async.Start
> │ >     // let _ = connection.On<string>("ServerToClientMsg", 
> fun x ->
> │ >     //     printfn $"ServerToClientMsg: '{x}'"
> │ >     // )
> │ > 
> │ >     stream
> │ >     |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun 
> (ticks, event) -> async {
> │ >         let _locals () = $"ticks: {ticks} / event: {event} 
> / {_locals ()}"
> │ >         trace Verbose (fun () -> "Eval.startCommandsWatcher
> / 
> │ > iterAsyncParallel") _locals
> │ > 
> │ >         match event with
> │ >         | FileSystem.FileSystemChange.Created (path, Some 
> json) ->
> │ >             try
> │ >                 let fullPath = commandsDir </> path
> │ >                 let! result = 
> │ > connection.InvokeAsync<string>("ClientToServerMsg", json) 
> |> Async.AwaitTask
> │ >                 let commandHistoryPath = commandHistoryDir 
> </> path
> │ >                 do! fullPath |> 
> SpiralFileSystem.move_file_async 
> │ > commandHistoryPath |> Async.Ignore
> │ >                 if result |> SpiralSm.trim |> String.length
> > 0 then
> │ >                     let resultPath = commandHistoryDir </> 
> │ > $"{Path.GetFileNameWithoutExtension path}_result.json"
> │ >                     do! result |> 
> SpiralFileSystem.write_all_text_async 
> │ > resultPath
> │ >             with ex ->
> │ >                 let _locals () = $"ex: {ex |> 
> SpiralSm.format_exception} / 
> │ > {_locals ()}"
> │ >                 trace Critical (fun () -> 
> "Eval.startCommandsWatcher / 
> │ > iterAsyncParallel") _locals
> │ >         | _ -> ()
> │ >     })
> │ >     |> Async.StartChild
> │ >     |> Async.Ignore
> │ >     |> Async.Start
> │ > 
> │ >     new_disposable (fun () ->
> │ >         disposable.Dispose ()
> │ >     )
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## prepareSpiral
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let prepareSpiral rawCellCode lines =
> │ >     let lastBlock =
> │ >         lines
> │ >         |> Array.tryFindBack (fun line ->
> │ >             line |> String.length > 0
> │ >             && line.[[0]] <> ' '
> │ >         )
> │ > 
> │ >     let hasMain =
> │ >         lastBlock
> │ >         |> Option.exists (fun line ->
> │ >             line |> SpiralSm.starts_with "inl main "
> │ >             || line |> SpiralSm.starts_with "let main "
> │ >         )
> │ > 
> │ >     if hasMain
> │ >     then rawCellCode, None
> │ >     else
> │ >         let lastTopLevelIndex, _ =
> │ >             (lines |> Array.indexed, (None, false))
> │ >             ||> Array.foldBack (fun (i, line) 
> (lastTopLevelIndex, finished) ->
> │ >                 // trace Verbose (fun () -> 
> $"Eval.prepareSpiral / i: {i} / 
> │ > line: '{line}' / lastTopLevelIndex: {lastTopLevelIndex} / 
> finished: {finished}")
> │ > _locals
> │ >                 match line with
> │ >                 | _ when finished -> lastTopLevelIndex, 
> true
> │ >                 | "" -> lastTopLevelIndex, false
> │ >                 | line when
> │ >                     line |> SpiralSm.starts_with " "
> │ >                     || line |> SpiralSm.starts_with "// " 
> -> lastTopLevelIndex, 
> │ > false
> │ >                 | line when
> │ >                     line |> SpiralSm.starts_with "open "
> │ >                     || line |> SpiralSm.starts_with 
> "prototype "
> │ >                     || line |> SpiralSm.starts_with 
> "instance "
> │ >                     || line |> SpiralSm.starts_with "type "
> │ >                     || line |> SpiralSm.starts_with "union 
> "
> │ >                     || line |> SpiralSm.starts_with 
> "nominal " -> 
> │ > lastTopLevelIndex, true
> │ >                 | line when
> │ >                     line |> SpiralSm.starts_with "inl "
> │ >                     || line |> SpiralSm.starts_with "and "
> │ >                     || line |> SpiralSm.starts_with "let " 
> ->
> │ >                     let m =
> │ >                         
> System.Text.RegularExpressions.Regex.Match (
> │ >                             line,
> │ >                             @"^(?:and +)?(inl|let) 
> +((?:[[{( 
> │ > ]]*)?[[~\(\w]]+[[\w\d']]*(?:|[[\w\d']]+[[ }]]*(?:&? 
> *[[\w\d']]*\))?| 
> │ > *[[~\w]][[\w\d']]*\)|, *[[~\w]][[\w\d']]*)) +[[:=]](?! 
> +function)"
> │ >                         )
> │ >                     trace Verbose (fun () -> 
> $"Eval.prepareSpi / m: '{m}' / 
> │ > m.Groups.Count: {m.Groups.Count}") _locals
> │ >                     if m.Groups.Count = 3
> │ >                     then Some i, false
> │ >                     else lastTopLevelIndex, true
> │ >                 | _ -> Some i, false
> │ >             )
> │ >         let code =
> │ >             match lastTopLevelIndex with
> │ >             | Some lastTopLevelIndex ->
> │ >                 lines
> │ >                 |> Array.mapi (fun i line ->
> │ >                     match i with
> │ >                     | i when i < lastTopLevelIndex -> line
> │ >                     | i when i = lastTopLevelIndex -> 
> $"\nlet main () =\n    
> │ > {line}"
> │ >                     | _ when line |> SpiralSm.trim = "" -> 
> ""
> │ >                     | _ -> $"    {line}"
> │ >                 )
> │ >                 |> SpiralSm.concat "\n"
> │ >             | None -> $"{rawCellCode}\n\ninl main () = 
> ()\n"
> │ >         code, lastTopLevelIndex
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## processSpiralOutput
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let processSpiralOutput
> │ >     (props : {|
> │ >         printCode: bool
> │ >         traceLevel: TraceLevel
> │ >         builderCommands: string array
> │ >         lastTopLevelIndex: int option
> │ >         backend: Supervisor.Backend
> │ >         cancellationToken: _
> │ >         spiralErrors: _
> │ >         code: string
> │ >         outputPath: string
> │ >         isReal: bool
> │ >     |})
> │ >     = async {
> │ >     let inline _trace (fn : unit -> string) =
> │ >         if props.traceLevel = Verbose
> │ >         then trace Info (fun () -> 
> $"Eval.processSpiralOutput / props: {props |>
> │ > FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 400} / 
> {fn ()}") _locals
> │ >         else fn () |> System.Console.WriteLine
> │ > 
> │ >     if props.printCode && props.backend <> Supervisor.Cuda 
> && props.backend <> 
> │ > Supervisor.Gleam then
> │ >         let ext = props.outputPath |> 
> System.IO.Path.GetExtension
> │ >         _trace (fun () -> if props.builderCommands.Length >
> 0 then 
> │ > $"{ext}:\n{props.code}\n" else props.code)
> │ > 
> │ >     let workspaceRootExternal =
> │ >         let currentDir = 
> System.IO.Directory.GetCurrentDirectory () |> 
> │ > SpiralSm.to_lower
> │ >         let workspaceRoot = workspaceRoot |> 
> SpiralSm.to_lower
> │ >         if currentDir |> SpiralSm.starts_with workspaceRoot
> │ >         then None
> │ >         else Some workspaceRoot
> │ > 
> │ >     let! spiralBuilderResults =
> │ >         match props.builderCommands, 
> props.lastTopLevelIndex with
> │ >         | [[||]], _ | _, None -> [[||]] |> Async.init
> │ >         | builderCommands, _ ->
> │ >             builderCommands
> │ >             |> Array.map (fun builderCommand ->
> │ >                 let path =
> │ >                     workspaceRoot </> 
> │ > 
> $@"deps/spiral/workspace/target/release/spiral{SpiralPlatform.get_executable_suf
> │ > fix ()}"
> │ >                     |> System.IO.Path.GetFullPath
> │ >                 let commands =
> │ >                     if props.backend = Supervisor.Fsharp
> │ >                         && (
> │ >                             builderCommand |> 
> SpiralSm.starts_with "rust"
> │ >                             || builderCommand |> 
> SpiralSm.starts_with 
> │ > "typescript"
> │ >                             || builderCommand |> 
> SpiralSm.starts_with "python"
> │ >                         )
> │ >                     then [[| $"{path} fable --fs-path 
> \"{props.outputPath}\" 
> │ > --command \"{builderCommand}\"" |]]
> │ >                     elif props.backend = Supervisor.Cuda
> │ >                         && builderCommand |> 
> SpiralSm.starts_with "cuda"
> │ >                     then [[| $"{path} {builderCommand} 
> --py-path 
> │ > \"{props.outputPath}\"" |]]
> │ >                     elif props.backend = Supervisor.Gleam
> │ >                         && builderCommand |> 
> SpiralSm.starts_with "gleam"
> │ >                     then [[| $"{path} {builderCommand} 
> --gleam-path 
> │ > \"{props.outputPath}\"" |]]
> │ >                     else [[||]]
> │ >                 builderCommand, commands
> │ >             )
> │ >             |> Array.filter (fun (_, commands) -> 
> commands.Length > 0)
> │ >             |> Array.collect (fun (builderCommand, 
> commands) ->
> │ >                 commands
> │ >                 |> Array.map (fun command -> async {
> │ >                     let! exitCode, result =
> │ >                         SpiralRuntime.execution_options 
> (fun x ->
> │ >                             { x with
> │ >                                 l0 = command
> │ >                                 l1 = 
> props.cancellationToken
> │ >                                 l2 = [[|
> │ >                                     "AUTOMATION", 
> spiral_compiler.assemblyName =
> │ > "dotnet-repl" |> string
> │ >                                     "TRACE_LEVEL", $"%A{if 
> props.printCode then 
> │ > props.traceLevel else Info}"
> │ >                                 |]]
> │ >                                 l6 = workspaceRootExternal
> │ >                             }
> │ >                         )
> │ >                         |> 
> SpiralRuntime.execute_with_options_async
> │ >                     trace Debug
> │ >                         (fun () -> 
> $"Eval.processSpiralOutput / spiral cli")
> │ >                         (fun () -> $"exitCode: {exitCode} /
> builderCommand: 
> │ > {builderCommand} / command: {command} / result: {result |> 
> SpiralSm.ellipsis_end
> │ > 400} / {_locals ()}")
> │ >                     return
> │ >                         if exitCode = 0
> │ >                         then {| code = result; eval = 
> false; builderCommand = 
> │ > builderCommand |} |> Ok
> │ >                         else result |> Error
> │ >                 })
> │ >             )
> │ >             |> Async.Parallel
> │ > 
> │ >     let hasEval =
> │ >         props.backend = Supervisor.Fsharp
> │ >         && props.builderCommands |> Array.exists (fun x -> 
> x |> 
> │ > SpiralSm.starts_with "fsharp")
> │ > 
> │ >     let outputResult =
> │ >         if props.builderCommands.Length > 0 && not hasEval
> │ >         then None
> │ >         else
> │ >             let code =
> │ >                 if props.builderCommands.Length > 1
> │ >                 then
> │ >                     let header = "System.Console.WriteLine 
> \".fsx output:\"\n"
> │ >                     $"{header}{props.code}"
> │ >                 else props.code
> │ >             Some (Ok [[ {| code = code; eval = true; 
> builderCommand = "" |} ]])
> │ > 
> │ >     match outputResult, spiralBuilderResults with
> │ >     | Some outputResult, [[||]] ->
> │ >         return outputResult, [[||]]
> │ >     | None, [[||]] ->
> │ >         return Ok [[ {| code = "()"; eval = true; 
> builderCommand = "" |} ]], 
> │ > [[||]]
> │ >     | _, spiralBuilderResults ->
> │ >         try
> │ >             let spiralResults =
> │ >                 match outputResult with
> │ >                 | Some (Ok code) ->
> │ >                     spiralBuilderResults
> │ >                     |> Array.append (code |> List.map Ok |>
> List.toArray)
> │ >                 | _ -> spiralBuilderResults
> │ >             let codes =
> │ >                 spiralResults
> │ >                 |> Array.map (fun spiralBuilderResult' ->
> │ >                     let commandResult, errors =
> │ >                         match spiralBuilderResult' with
> │ >                         | Ok result when result.eval = 
> false ->
> │ >                             let result' =
> │ >                                 result.code
> │ >                                 |> 
> │ > FSharp.Json.Json.deserialize<Map<string,string>>
> │ >                             let result =
> │ >                                 match result' |> 
> Map.tryFind "command_result" 
> │ > with
> │ >                                 | Some result'' ->
> │ >                                     result''
> │ >                                     |> 
> │ > FSharp.Json.Json.deserialize<Map<string,string>>
> │ >                                     |> Map.add 
> "builderCommand" 
> │ > result.builderCommand
> │ >                                 | None -> Map.empty
> │ >                             result, [[||]]
> │ >                         | Ok result when result.eval = true
> ->
> │ >                             let result =
> │ >                                 [[
> │ >                                     "extension", "fsx"
> │ >                                     "code", result.code
> │ >                                     "output", ""
> │ >                                 ]]
> │ >                                 |> Map.ofList
> │ >                             result, [[||]]
> │ >                         | Error error ->
> │ >                             Map.empty,
> │ >                             [[|
> │ >                                 (
> │ >                                     TraceLevel.Critical, 
> │ > $"Eval.processSpiralOutput / evalResult error / errors[[0]]
> / outputPath: 
> │ > {props.outputPath} / builderCommands: 
> %A{props.builderCommands} / 
> │ > spiralBuilderResult': %A{spiralBuilderResult'} / error: 
> %A{error}", 0, ("", (0, 
> │ > 0), (0, 0))
> │ >                                 )
> │ >                             |]]
> │ >                         | _ ->
> │ >                             Map.empty, [[||]]
> │ > 
> │ >                     if errors |> Array.isEmpty |> not
> │ >                     then Error (Exception 
> $"Eval.processSpiralOutput / 
> │ > evalResult errors / Exception / commandResult: 
> %A{commandResult}"), errors
> │ >                     else
> │ >                         let extension = 
> commandResult.[["extension"]]
> │ >                         let code = commandResult.[["code"]]
> │ >                         let output = 
> commandResult.[["output"]]
> │ >                         let builderCommand =
> │ >                             commandResult
> │ >                             |> Map.tryFind "builderCommand"
> │ >                             |> Option.defaultValue ""
> │ > 
> │ >                         let backendInfo =
> │ >                             match props.backend, 
> builderCommand with
> │ >                             | Supervisor.Fsharp, 
> builderCommand
> │ >                                 when builderCommand |> 
> SpiralSm.contains " " -> 
> │ > $" ({builderCommand})"
> │ >                             | Supervisor.Fsharp, _ -> ""
> │ >                             | _ -> $" ({props.backend})"
> │ > 
> │ >                         let eval = output = "" && extension
> = "fsx"
> │ > 
> │ >                         if props.printCode && not eval
> │ >                         then _trace (fun () -> 
> │ > $""".{extension}{backendInfo}:{'\n'}{code}""")
> │ > 
> │ >                         trace Debug
> │ >                             (fun () -> 
> $"Eval.processSpiralOutput / result")
> │ >                             (fun () -> $"builderCommand: 
> {builderCommand} / 
> │ > extension: {extension} / commandResult: {commandResult |> 
> │ > FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 400}/ 
> {_locals ()}")
> │ > 
> │ >                         let code =
> │ >                             if props.printCode
> │ >                                 || spiralResults.Length > 1
> │ >                                 || 
> props.builderCommands.Length > 1
> │ >                             then
> │ >                                 if eval
> │ >                                 then code
> │ >                                 else
> │ >                                     let header = 
> $".{extension} 
> │ > output{backendInfo}:\n"
> │ >                                     $"""{if output |> 
> SpiralSm.contains "\n" 
> │ > then "\n" else ""}{header}{output}"""
> │ >                             elif eval
> │ >                             then code
> │ >                             else output
> │ >                         Ok {| code = code; eval = eval; 
> builderCommand = 
> │ > builderCommand |}, [[||]]
> │ >                 )
> │ >             trace Debug
> │ >                 (fun () -> $"Eval.processSpiralOutput / 
> codes")
> │ >                 (fun () ->
> │ >                     let props = {| props with 
> cancellationToken = None |}
> │ >                     $"codes: {codes |> 
> FSharp.Json.Json.serialize |> 
> │ > SpiralSm.ellipsis_end 400} / spiralResults: {spiralResults 
> |> 
> │ > FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 400} / 
> spiralBuilderResults:
> │ > {spiralBuilderResults |> FSharp.Json.Json.serialize |> 
> SpiralSm.ellipsis_end 
> │ > 400} / props: {props |> FSharp.Json.Json.serialize |> 
> SpiralSm.ellipsis_end 400}
> │ > / {_locals ()}")
> │ >             return
> │ >                 (((Ok [[]]), [[||]]), codes)
> │ >                 ||> Array.fold (fun (acc_code, acc_errors) 
> (code, errors) ->
> │ >                     match code, acc_code with
> │ >                     | Ok code, Ok acc_code ->
> │ >                         let errors =
> │ >                             acc_errors
> │ >                             |> Array.append errors
> │ >                             |> Array.append 
> props.spiralErrors
> │ >                         let errors =
> │ >                             if errors |> Array.isEmpty
> │ >                             then errors
> │ >                             else
> │ >                                 let code = $"%A{code}"
> │ >                                 errors
> │ >                                 |> Array.append [[|
> │ >                                     TraceLevel.Critical, 
> │ > $"Eval.processSpiralOutput / errors / errors[[-1]] / 
> outputPath: 
> │ > {props.outputPath} / builderCommands: 
> %A{props.builderCommands} / code: {code |>
> │ > SpiralSm.ellipsis_end 400}", 0, ("", (0, 0), (0, 0))
> │ >                                 |]]
> │ >                         Ok (code :: acc_code), errors
> │ >                     | Error ex, _
> │ >                     | _, Error ex ->
> │ >                         Error (Exception 
> $"Eval.processSpiralOutput / -1 / 
> │ > Exception / spiralBuilderResults: %A{spiralBuilderResults} 
> / ex: {ex |> 
> │ > SpiralSm.format_exception}"),
> │ >                         acc_errors |> Array.append errors
> │ >                 )
> │ >         with ex ->
> │ >             trace Critical (fun () -> 
> $"Eval.processSpiralOutput / try 2 ex / 
> │ > spiralBuilderResults: %A{spiralBuilderResults} / ex: {ex |>│ > SpiralSm.format_exception}") _locals
> │ >             return
> │ >                 Error (Exception $"Eval.processSpiralOutput
> / try 2 ex / 
> │ > Exception / spiralBuilderResults: %A{spiralBuilderResults} 
> / ex: {ex |> 
> │ > SpiralSm.format_exception}"),
> │ >                 [[|
> │ >                     (
> │ >                         TraceLevel.Critical, 
> $"Eval.processSpiralOutput / try 2 
> │ > ex / errors[[0]] / spiralBuilderResults: 
> %A{spiralBuilderResults} / ex: {ex |> 
> │ > SpiralSm.format_exception}", 0, ("", (0, 0), (0, 0))
> │ >                     )
> │ >                 |]]
> │ > }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## tryGetPropertyValue
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let tryGetPropertyValue (propertyName: string) (obj: obj) =
> │ >     let objType = obj.GetType ()
> │ >     let propertyInfo = propertyName |> objType.GetProperty
> │ >     if propertyInfo <> null
> │ >     then propertyInfo.GetValue (obj, null) |> Some
> │ >     else None
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## evalAsync
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let rec evalAsync
> │ >     retry
> │ >     (props : {|
> │ >         rawCellCode: _
> │ >         lines: _
> │ >         isReal: _
> │ >         builderCommands: _ array
> │ >         isCache: _
> │ >         timeout: _
> │ >         cancellationToken: _
> │ >         printCode: _
> │ >         traceLevel: _
> │ >         fsi_eval: _
> │ >     |})
> │ >     = async {
> │ >     try
> │ >         let cellCode, lastTopLevelIndex = prepareSpiral 
> props.rawCellCode 
> │ > props.lines
> │ >         let newAllCode =
> │ >             if props.isReal
> │ >             then $"{allCodeReal}\n\n{cellCode}"
> │ >             else $"{allCode}\n\n{cellCode}"
> │ > 
> │ >         let buildBackends =
> │ >             if props.builderCommands.Length = 0
> │ >             then [[| Supervisor.Fsharp |]]
> │ >             else
> │ >                 props.builderCommands
> │ >                 |> Array.map (fun x ->
> │ >                     if x |> SpiralSm.starts_with "cuda"
> │ >                     then Supervisor.Cuda
> │ >                     elif x |> SpiralSm.starts_with "gleam"
> │ >                     then Supervisor.Gleam
> │ >                     else Supervisor.Fsharp
> │ >                 )
> │ >                 |> Array.distinct
> │ > 
> │ >         trace Verbose
> │ >             (fun () -> $"Eval.eval")
> │ >             (fun () -> $"lastTopLevelIndex: 
> {lastTopLevelIndex} / 
> │ > builderCommands: %A{props.builderCommands} / buildBackends:
> %A{buildBackends} / 
> │ > isReal: {props.isReal} / {_locals ()}")
> │ > 
> │ >         let! buildCodeResults =
> │ >             buildBackends
> │ >             |> Array.map (fun backend -> async {
> │ >                 let! result =
> │ >                     if props.isReal
> │ >                     then Supervisor.Spir newAllCode
> │ >                     else
> │ >                         Supervisor.Spi
> │ >                             (newAllCode, if allCodeReal = 
> "" then None else Some
> │ > allCodeReal)
> │ >                     |> Supervisor.buildCode backend 
> allPackages props.isCache 
> │ > props.timeout props.cancellationToken
> │ >                 return backend, result
> │ >             })
> │ >             |> Async.Parallel
> │ >             |> Async.catch
> │ >             |> Async.runWithTimeoutAsync props.timeout
> │ > 
> │ >         match buildCodeResults with
> │ >         | Some (Ok buildCodeResults) ->
> │ >             let! result, errors =
> │ >                 ((Ok [[]], [[||]]), buildCodeResults)
> │ >                 ||> Async.fold (fun acc buildCodeResult -> 
> async {
> │ >                     match buildCodeResult with
> │ >                     | backend, (_, (outputPath, Some code),
> spiralErrors) ->
> │ >                         let spiralErrors =
> │ >                             allCode |> mapErrors (Warning, 
> spiralErrors, 
> │ > lastTopLevelIndex)
> │ >                         let! result =
> │ >                             processSpiralOutput
> │ >                                 {|
> │ >                                     printCode = 
> props.printCode
> │ >                                     traceLevel = 
> props.traceLevel
> │ >                                     builderCommands = 
> props.builderCommands
> │ >                                     lastTopLevelIndex = 
> lastTopLevelIndex
> │ >                                     backend = backend
> │ >                                     cancellationToken = 
> props.cancellationToken
> │ >                                     spiralErrors = 
> spiralErrors
> │ >                                     code = code
> │ >                                     outputPath = outputPath
> │ >                                     isReal = props.isReal
> │ >                                 |}
> │ >                         match result, acc with
> │ >                         | (Ok code, errors), (Ok acc_code, 
> acc_errors) ->
> │ >                             return Ok (acc_code @ code), 
> acc_errors |> 
> │ > Array.append errors
> │ >                         | (Error ex, errors), _ | _, (Error
> ex, errors) ->
> │ >                             return
> │ >                                 Error (Exception 
> $"Eval.evalAsync / 
> │ > processSpiralOutput / Exception / buildCodeResult: 
> %A{buildCodeResult |> 
> │ > FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 400} / 
> ex: {ex |> 
> │ > SpiralSm.format_exception}"),
> │ >                                 errors |> Array.append 
> errors
> │ >                     | _, (_, _, errors) when errors |> 
> List.isEmpty |> not ->
> │ >                         return errors.[[0]] |> fst |> 
> Exception |> Error,
> │ >                         allCode |> mapErrors 
> (TraceLevel.Critical, errors, 
> │ > lastTopLevelIndex)
> │ >                     | _ -> return acc
> │ >                 })
> │ >             let cancellationToken = defaultArg 
> props.cancellationToken 
> │ > System.Threading.CancellationToken.None
> │ >             match result, errors with
> │ >             | Ok code, [[||]] ->
> │ >                 let code, eval =
> │ >                     code
> │ >                     |> List.map (fun code ->
> │ >                         if code.eval
> │ >                         then None, Some code.code
> │ >                         else Some code.code, None
> │ >                     )
> │ >                     |> List.unzip
> │ >                 let code = code |> List.choose id
> │ >                 let eval = eval |> List.choose id
> │ > 
> │ >                 trace Debug
> │ >                     (fun () -> $"Eval.eval")
> │ >                     (fun () -> $"eval: {eval |> 
> FSharp.Json.Json.serialize |> 
> │ > SpiralSm.ellipsis_end 400} / code: {code |> 
> FSharp.Json.Json.serialize |> 
> │ > SpiralSm.ellipsis_end 400} / {_locals ()}")
> │ > 
> │ >                 let ch, errors =
> │ >                     match eval, code with
> │ >                     | [[]], [[]] ->
> │ >                         Choice2Of2 (Exception 
> $"Eval.evalAsync / eval=[[]] / 
> │ > code=[[]] / buildCodeResults: %A{buildCodeResults} / code: 
> %A{code}"), errors
> │ >                     | [[ eval ]], [[]] ->
> │ >                         let eval =
> │ >                             if eval |> SpiralSm.contains 
> "<script"
> │ >                             then $"{eval}, \"text/html1\""
> │ >                             else eval
> │ >                         let ch, errors2 = props.fsi_eval 
> eval cancellationToken
> │ >                         let errors =
> │ >                             errors2
> │ >                             // |> Array.map (fun (e1, e2, 
> e3, _) ->
> │ >                             //     (e1, e2, e3, ("", (0, 
> 0), (0, 0)))
> │ >                             // )
> │ >                             |> Array.append errors
> │ >                         ch, errors
> │ >                     | [[]], _ ->
> │ >                         let code = code |> List.rev |> 
> String.concat "\n\n"
> │ >                         let code =
> │ >                             if props.printCode
> │ >                             then $"\"\"\"{code}\n\n\"\"\""
> │ >                             else $"\"\"\"{code}\n\"\"\""
> │ >                         let code =
> │ >                             if code |> SpiralSm.contains 
> "<script"
> │ >                             then $"{code}, \"text/html2\""
> │ >                             else code
> │ >                         let ch, errors2 = props.fsi_eval 
> code cancellationToken
> │ >                         let errors =
> │ >                             errors2
> │ >                             // |> Array.map (fun (e1, e2, 
> e3, _) ->
> │ >                             //     (e1, e2, e3, ("", (0, 
> 0), (0, 0)))
> │ >                             // )
> │ >                             |> Array.append errors
> │ >                         ch, errors
> │ >                     | _ ->
> │ >                         let code, errors =
> │ >                             ((Ok (code |> List.rev), 
> [[||]]), eval)
> │ >                             ||> List.fold (fun (acc, 
> acc_errors) eval ->
> │ >                                 match acc with
> │ >                                 | Error ch -> Error ch, 
> acc_errors
> │ >                                 | Ok acc ->
> │ >                                     let eval =
> │ >                                         if eval |> 
> SpiralSm.contains "<script"
> │ >                                         then $"{eval}, 
> \"text/html3\""
> │ >                                         else eval
> │ >                                     let ch, errors = 
> props.fsi_eval eval 
> │ > cancellationToken
> │ >                                     let errors =
> │ >                                         errors
> │ >                                         // |> Array.map 
> (fun (e1, e2, e3, _) ->
> │ >                                         //     (e1, e2, e3,
> ("", (0, 0), (0, 
> │ > 0)))
> │ >                                         // )
> │ >                                         |> Array.append 
> acc_errors
> │ >                                     match ch with
> │ >                                     | Choice1Of2 v ->
> │ >                                         let v =
> │ >                                             v
> │ >                                             |> 
> tryGetPropertyValue 
> │ > "ReflectionValue"
> │ >                                             |> Option.map 
> (fun x -> $"%A{x}")
> │ >                                             |> 
> Option.defaultValue ""
> │ >                                         Ok (v :: acc), 
> errors
> │ >                                     | Choice2Of2 ex ->
> │ >                                         trace Critical (fun
> () -> 
> │ > $"Eval.evalAsync / fsi_eval fold Choice error / 
> buildCodeResults: 
> │ > %A{buildCodeResults} / ex: {ex |> 
> SpiralSm.format_exception}") _locals
> │ >                                         Error ch, errors
> │ >                             )
> │ >                         match code with
> │ >                         | Error ch -> ch, errors
> │ >                         | Ok code ->
> │ >                             let code =
> │ >                                 code
> │ >                                 |> List.filter ((<>) "")
> │ >                                 |> String.concat "\n\n"
> │ > 
> │ >                             let code =
> │ >                                 if 
> props.builderCommands.Length > 0 && 
> │ > eval.Length = 0
> │ >                                 then code
> │ >                                 elif code |> 
> SpiralSm.contains "\n\n\n"
> │ >                                 then $"{code}\n\n"
> │ >                                 else $"{code}\n"
> │ > 
> │ >                             let code =
> │ >                                 if props.printCode
> │ >                                 then 
> $"\"\"\"{code}\n\n\n\"\"\""
> │ >                                 else 
> $"\"\"\"{code}\n\"\"\""
> │ >                             let code =
> │ >                                 if code |> 
> SpiralSm.contains "<script"
> │ >                                 then $"{code}, 
> \"text/html4\""
> │ >                                 else code
> │ >                             let ch, errors2 = 
> props.fsi_eval code 
> │ > cancellationToken
> │ >                             let errors =
> │ >                                 errors2
> │ >                                 // |> Array.map (fun (e1, 
> e2, e3, _) ->
> │ >                                 //     (e1, e2, e3, ("", 
> (0, 0), (0, 0)))
> │ >                                 // )
> │ >                                 |> Array.append errors
> │ >                             ch, errors
> │ >                 match ch with
> │ >                 | Choice1Of2 v ->
> │ >                     if props.isReal
> │ >                     then allCodeReal <- newAllCode
> │ >                     else allCode <- newAllCode
> │ >                     return Ok(v), errors
> │ >                 | Choice2Of2 ex ->
> │ >                     return
> │ >                         Error (Exception $"Eval.evalAsync /
> -2 / Exception / ex:
> │ > {ex |> SpiralSm.format_exception} / buildCodeResults: 
> {buildCodeResults |> 
> │ > FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 400}"),
> │ >                         errors
> │ >             | Ok code, errors ->
> │ >                 return
> │ >                     Error (Exception "Eval.evalAsync / 
> errors / 
> │ > buildCodeResults: %A{buildCodeResults} / code: %A{code}"),
> │ >                     errors
> │ >             | Error ex, errors ->
> │ >                 let ex = ex |> SpiralSm.format_exception
> │ >                 if retry <= 3 &&
> │ >                     (ex |> SpiralSm.contains "Expected one 
> of: inl, let, union, 
> │ > nominal, prototype, type, instance, and, open")
> │ >                     || (ex |> SpiralSm.contains "Unexpected
> end of block past 
> │ > this token.")
> │ >                 then return! evalAsync (retry + 1) props
> │ >                 else
> │ >                     return
> │ >                         Error (Exception $"Eval.evalAsync /
> -1 / Exception / ex:
> │ > {ex} / buildCodeResults: {buildCodeResults |> 
> FSharp.Json.Json.serialize |> 
> │ > SpiralSm.ellipsis_end 1500}"),
> │ >                         errors
> │ >         | Some (Error ex) ->
> │ >             trace Critical (fun () -> $"Eval.evalAsync / 
> buildCodeResults Error 
> │ > / buildCodeResults: %A{buildCodeResults} / ex: {ex |> 
> │ > SpiralSm.format_exception}") _locals
> │ >             return
> │ >                 Error (Exception $"Eval.evalAsync / 
> buildCodeResults Error / 
> │ > Exception / buildCodeResults: %A{buildCodeResults} / ex: 
> {ex |> 
> │ > SpiralSm.format_exception}"),
> │ >                 [[|
> │ >                     (
> │ >                         TraceLevel.Critical, 
> $"Eval.evalAsync / buildCodeResults
> │ > Error / errors[[0]] / ex: {ex |> SpiralSm.format_exception}
> / buildCodeResults: 
> │ > %A{buildCodeResults}", 0, ("", (0, 0), (0, 0))
> │ >                     )
> │ >                 |]]
> │ >         | _ ->
> │ >             return
> │ >                 Error (Exception $"Eval.evalAsync / 
> buildCodeResults / Exception
> │ > / buildCodeResults: %A{buildCodeResults}"),
> │ >                 [[|
> │ >                     (
> │ >                         TraceLevel.Critical, 
> $"Eval.evalAsync / buildCodeResults
> │ > / errors[[0]] / buildCodeResults: %A{buildCodeResults}", 0,
> ("", (0, 0), (0, 0))
> │ >                     )
> │ >                 |]]
> │ >     with ex ->
> │ >         trace Critical (fun () -> $"Eval.evalAsync / try 1 
> ex / ex: {ex |> 
> │ > SpiralSm.format_exception} / lines: %A{props.lines}") 
> _locals
> │ >         return
> │ >             Error (Exception $"Eval.evalAsync / try 1 ex / 
> Exception / ex: {ex 
> │ > |> SpiralSm.format_exception} / lines: %A{props.lines}"),
> │ >             [[|
> │ >                 (
> │ >                     TraceLevel.Critical, $"Eval.evalAsync /
> try 1 ex / 
> │ > errors[[0]] / ex: {ex |> SpiralSm.format_exception} / 
> lines: %A{props.lines}", 
> │ > 0, ("", (0, 0), (0, 0))
> │ >                 )
> │ >             |]]
> │ > }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## eval
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let inline eval
> │ >     (fsi_eval:
> │ >         string
> │ >         -> System.Threading.CancellationToken
> │ >         -> Choice<'a, Exception> * (TraceLevel * string * 
> int * (string * (int *
> │ > int) * (int * int))) array)
> │ >     (cancellationToken: 
> Option<System.Threading.CancellationToken>)
> │ >     (code: string)
> │ >     =
> │ >     trace Verbose
> │ >         (fun () -> $"Eval.eval")
> │ >         (fun () -> $"code: {code |> SpiralSm.ellipsis_end 
> 400} / {_locals ()}")
> │ > 
> │ >     let rawCellCode =
> │ >         code |> SpiralSm.replace "\r\n" "\n"
> │ > 
> │ >     let lines = rawCellCode |> SpiralSm.split "\n"
> │ > 
> │ >     if lines |> Array.exists (fun line -> line |> 
> SpiralSm.starts_with "#r " && 
> │ > line |> SpiralSm.ends_with "\"") then
> │ >         let cancellationToken = defaultArg 
> cancellationToken 
> │ > System.Threading.CancellationToken.None
> │ >         let code =
> │ >             if code |> SpiralSm.contains "<script"
> │ >             then $"{code}, \"text/html5\""
> │ >             else code
> │ >         let ch, errors = fsi_eval code cancellationToken
> │ >         trace Verbose (fun () -> $"Eval.eval / fsi_eval 1 /
> ch: %A{ch} / errors:
> │ > %A{errors}") _locals
> │ >         match ch with
> │ >         | Choice1Of2 v -> Ok(v), errors
> │ >         | Choice2Of2 ex -> Error(ex), errors
> │ >     else
> │ >         let builderCommands =
> │ >             lines
> │ >             |> Array.choose (fun line ->
> │ >                 if line |> SpiralSm.starts_with "///! "
> │ >                 then line |> SpiralSm.split "///! " |> 
> Array.tryItem 1
> │ >                 else None
> │ >             )
> │ > 
> │ >         let packages =
> │ >             lines
> │ >             |> Array.choose (fun line ->
> │ >                 if line |> SpiralSm.starts_with "//// 
> package="
> │ >                 then line |> SpiralSm.split "=" |> 
> Array.skip 1 |> 
> │ > SpiralSm.concat "" |> Some
> │ >                 else None
> │ >             )
> │ > 
> │ >         allPackages <- packages |> Array.append allPackages
> |> Array.distinct
> │ > 
> │ >         let timeout =
> │ >             lines
> │ >             |> Array.tryPick (fun line ->
> │ >                 if line |> SpiralSm.starts_with "//// 
> timeout="
> │ >                 then line |> SpiralSm.split "=" |> 
> Array.tryItem 1 |> Option.map
> │ > int
> │ >                 else None
> │ >             )
> │ >             |> Option.defaultValue (60003 * 60 * 24)
> │ > 
> │ >         let boolArg def command =
> │ >             lines
> │ >             |> Array.tryPick (fun line ->
> │ >                 let text = $"//// {command}"
> │ >                 match line.[[0..text.Length-1]], 
> line.[[text.Length..]] with
> │ >                 | head, "" when head = text ->
> │ >                     Some true
> │ >                 | head, _ when head = text ->
> │ >                     line |> SpiralSm.split "=" |> 
> Array.tryItem 1 |> Option.map 
> │ > ((<>) "false")
> │ >                 | _ -> None
> │ >             )
> │ >             |> Option.defaultValue def
> │ > 
> │ >         let printCode = "print_code" |> boolArg false
> │ >         let isTraceToggle = "trace_toggle" |> boolArg false
> │ >         let isTrace = "trace" |> boolArg false
> │ >         let isCache = "cache" |> boolArg false
> │ >         let isReal = "real" |> boolArg false
> │ >         let timeout_continue = "timeout_continue" |> 
> boolArg false
> │ > 
> │ >         if isTraceToggle
> │ >         then traceToggle <- not traceToggle
> │ > 
> │ >         let oldLevel = get_trace_level ()
> │ >         let traceLevel =
> │ >             if isTrace || traceToggle
> │ >             then Verbose
> │ >             else Info
> │ >         traceLevel
> │ >         |> to_trace_level
> │ >         |> set_trace_level
> │ >         use _ = (new_disposable (fun () ->
> │ >             oldLevel |> set_trace_level
> │ >         ))
> │ > 
> │ >         evalAsync 1
> │ >             {|
> │ >                 rawCellCode = rawCellCode
> │ >                 lines = lines
> │ >                 isReal = isReal
> │ >                 builderCommands = builderCommands
> │ >                 isCache = isCache
> │ >                 timeout = timeout
> │ >                 cancellationToken = cancellationToken
> │ >                 printCode = printCode
> │ >                 traceLevel = traceLevel
> │ >                 fsi_eval = fsi_eval
> │ >             |}
> │ >         |> Async.runWithTimeout timeout
> │ >         |> (fun x ->
> │ >             match x with
> │ >             | Some ((Ok x), a) -> Some ((Ok x), a)
> │ >             | Some ((Error x), a) ->
> │ >                 trace Info (fun () -> $"Eval.eval / error /
> exception: 
> │ > {x.GetType().FullName} / a: %A{a} / x: %A{x}") (fun () -> 
> "")
> │ >                 Some ((Error x), a)
> │ >             | _ -> None
> │ >         )
> │ >         |> Option.defaultWith (fun () -> (
> │ >             let lines = lines |> SpiralSm.concat (string 
> '\n') |> 
> │ > SpiralSm.ellipsis_end 1500
> │ >             in
> │ >             Error (Exception $"Eval.eval / 
> Async.runWithTimeout / Exception / 
> │ > timeout: {timeout} / timeout_continue: {timeout_continue} /
> lines: {lines}"),
> │ >             [[|
> │ >                 (
> │ >                     TraceLevel.Critical, $"Eval.eval / 
> Async.runWithTimeout / 
> │ > errors[[0]] / timeout: {timeout} / lines: {lines}", 0, ("",
> (0, 0), (0, 0))
> │ >                 )
> │ >             |]]
> │ >         ))
> │ 00:02:31 v #3 runtime.execute_with_options / result / {
> exit_code = 0; std_trace_length = 56111 }
> │ 00:02:31 d #4 runtime.execute_with_options / { 
> file_name = jupyter; arguments = ["nbconvert", 
> "c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb", "--to", "html", 
> "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert 
> "c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb" --to html 
> --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:02:33 v #5 ! [NbConvertApp] Converting notebook 
> c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb to html
> │ 00:02:33 v #6 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.
> py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a 
> hard error in future nbformat versions. You may want to use `normalize()` on 
> your notebooks before validations (available since nbformat 5.1.4). Previous 
> versions of nbformat are fixing this issue transparently, and will stop doing so
> in the future.
> │ 00:02:33 v #7 !   validate(nb)
> │ 00:02:33 v #8 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\
> highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python
> 3
> │ 00:02:33 v #9 !   return _pygments_highlight(
> │ 00:02:34 v #10 ! [NbConvertApp] Writing 463701 bytes to
> c:\home\git\polyglot\apps\spiral\Eval.dib.html
> │ 00:02:34 v #11 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 852 }
> │ 00:02:34 d #12 spiral.run / dib / jupyter nbconvert / {
> exit_code = 0; jupyter_result_length = 852 }
> │ 00:02:34 d #13 runtime.execute_with_options / { 
> file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/spiral/Eval.dib.html'; (Get-Content $path -Raw) 
> -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } 
> | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/spiral/Eval.dib.html'; (Get-Content $path -Raw) 
> -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | 
> Set-Content $path"; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:02:35 v #14 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 0 }
> │ 00:02:35 d #15 spiral.run / dib / html cell ids / { 
> exit_code = 0; pwsh_replace_html_result_length = 0 }
> │ 00:02:35 d #16 spiral.run / dib / { exit_code = 0; 
> result_length = 57022 }
> │ 00:00:00 d #1 writeDibCode / output: Fs / path: Eval.dib
> │ 00:00:00 d #2 parseDibCode / output: Fs / file: Eval.dib
> │ polyglot/apps/spiral/build.ps1 / $env:CI:''
> │ 
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> { pwsh ../lib/fsharp/build.ps1 -sequential 1 } | Invoke-Block
> 
> ── [ 2.52m - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:00 d #1 runtime.execute_with_options_async / { 
> file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = 
> US5_0 "dib --path Async.dib --retries 3"; options = { command = 
> ../../deps/spiral/workspace/target/release/spiral.exe dib --path Async.dib 
> --retries 3; cancellation_token = Some System.Threading.CancellationToken; 
> environment_variables = [||]; on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:00:22 d #2 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 19529; options = { command = 
> ../../deps/spiral/workspace/target/release/spiral.exe dib --path Async.dib 
> --retries 3; cancellation_token = Some System.Threading.CancellationToken; 
> environment_variables = [||]; on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:00:22 d #1 main / executeCommand / exitCode: 0 / 
> command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path 
> Async.dib --retries 3
> │ 00:00:22 d #3 runtime.execute_with_options_async / { 
> file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = 
> US5_0 "dib --path AsyncSeq.dib --retries 3"; options = { command = 
> ../../deps/spiral/workspace/target/release/spiral.exe dib --path AsyncSeq.dib 
> --retries 3; cancellation_token = Some System.Threading.CancellationToken; 
> environment_variables = [||]; on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:00:45 d #4 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 11796; options = { command = 
> ../../deps/spiral/workspace/target/release/spiral.exe dib --path AsyncSeq.dib 
> --retries 3; cancellation_token = Some System.Threading.CancellationToken; 
> environment_variables = [||]; on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:00:45 d #2 main / executeCommand / exitCode: 0 / 
> command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path 
> AsyncSeq.dib --retries 3
> │ 00:00:45 d #5 runtime.execute_with_options_async / { 
> file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = 
> US5_0 "dib --path Common.dib --retries 3"; options = { command = 
> ../../deps/spiral/workspace/target/release/spiral.exe dib --path Common.dib 
> --retries 3; cancellation_token = Some System.Threading.CancellationToken; 
> environment_variables = [||]; on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:01:04 d #6 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 5506; options = { command = 
> ../../deps/spiral/workspace/target/release/spiral.exe dib --path Common.dib 
> --retries 3; cancellation_token = Some System.Threading.CancellationToken; 
> environment_variables = [||]; on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:01:04 d #3 main / executeCommand / exitCode: 0 / 
> command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path 
> Common.dib --retries 3
> │ 00:01:04 d #7 runtime.execute_with_options_async / { 
> file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = 
> US5_0 "dib --path CommonFSharp.dib --retries 3"; options = { command = 
> ../../deps/spiral/workspace/target/release/spiral.exe dib --path 
> CommonFSharp.dib --retries 3; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = 
> None; stdin = None; trace = true; working_directory = None } }
> │ 00:01:24 d #8 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 4477; options = { command = 
> ../../deps/spiral/workspace/target/release/spiral.exe dib --path 
> CommonFSharp.dib --retries 3; cancellation_token = Some 
> System.Threading.CancellationToken; environment_variables = [||]; on_line = 
> None; stdin = None; trace = true; working_directory = None } }
> │ 00:01:24 d #4 main / executeCommand / exitCode: 0 / 
> command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path 
> CommonFSharp.dib --retries 3
> │ 00:01:24 d #9 runtime.execute_with_options_async / { 
> file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = 
> US5_0 "dib --path FileSystem.dib --retries 3"; options = { command = 
> ../../deps/spiral/workspace/target/release/spiral.exe dib --path FileSystem.dib 
> --retries 3; cancellation_token = Some System.Threading.CancellationToken; 
> environment_variables = [||]; on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:02:08 d #10 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 46777; options = { command = 
> ../../deps/spiral/workspace/target/release/spiral.exe dib --path FileSystem.dib 
> --retries 3; cancellation_token = Some System.Threading.CancellationToken; 
> environment_variables = [||]; on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:02:08 d #5 main / executeCommand / exitCode: 0 / 
> command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path 
> FileSystem.dib --retries 3
> │ 00:02:08 d #11 runtime.execute_with_options_async / { 
> file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = 
> US5_0 "dib --path Runtime.dib --retries 3"; options = { command = 
> ../../deps/spiral/workspace/target/release/spiral.exe dib --path Runtime.dib 
> --retries 3; cancellation_token = Some System.Threading.CancellationToken; 
> environment_variables = [||]; on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:02:30 d #12 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 9236; options = { command = 
> ../../deps/spiral/workspace/target/release/spiral.exe dib --path Runtime.dib 
> --retries 3; cancellation_token = Some System.Threading.CancellationToken; 
> environment_variables = [||]; on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:02:30 d #6 main / executeCommand / exitCode: 0 / 
> command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path 
> Runtime.dib --retries 3
> │ 00:00:00 d #1 writeDibCode / output: Fs / path: 
> Common.dib
> │ 00:00:00 d #1 writeDibCode / output: Fs / path: 
> FileSystem.dib
> │ 00:00:00 d #1 writeDibCode / output: Fs / path: 
> Runtime.dib
> │ 00:00:00 d #1 writeDibCode / output: Fs / path: 
> AsyncSeq.dib
> │ 00:00:00 d #1 writeDibCode / output: Fs / path: 
> CommonFSharp.dib
> │ 00:00:00 d #1 writeDibCode / output: Fs / path: 
> Async.dib
> │ 00:00:00 d #2 parseDibCode / output: Fs / file: 
> FileSystem.dib
> │ 00:00:00 d #3 parseDibCode / output: Fs / file: 
> Common.dib
> │ 00:00:00 d #4 parseDibCode / output: Fs / file: 
> Runtime.dib
> │ 00:00:00 d #4 parseDibCode / output: Fs / file: 
> CommonFSharp.dib
> │ 00:00:00 d #6 parseDibCode / output: Fs / file: 
> AsyncSeq.dib
> │ 00:00:00 d #7 parseDibCode / output: Fs / file: 
> Async.dib
> │ 
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> { pwsh ../deps/spiral/apps/wasm/build.ps1 -SkipFsx 1 } | Invoke-Block
> 
> ── [ 2.44m - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:00 d #1 persistCodeProject / packages: 
> [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; 
> deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: 
> spiral_wasm / hash:  / code.Length: 248118
> │ spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: 
> C:\home\git\polyglot\target\Builder\spiral_wasm
> │ polyglot/scripts/core.ps1/ResolveLink #4 / Path: 
> C:\home\git\polyglot\deps\spiral\deps\polyglot\deps\spiral\lib\spiral/../../deps
> /polyglot / parent_target:  / path_target: C:\home\git\polyglot / parent: 
> C:\home\git\polyglot\deps\spiral\deps\polyglot\deps\spiral\lib\spiral\..\..\deps
> / End: polyglot
> │ spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: 
> C:\home\git\polyglot\target\Builder\spiral_wasm / ProjectName: spiral_wasm / 
> Language: rs / Runtime:  / root: C:\home\git\polyglot
> │ Fable 5.0.0-alpha.9: F# to Rust compiler (status: alpha)
> │ 
> │ Thanks to the contributor! @coolya
> │ Stand with Ukraine! https://standwithukraine.com.ua/
> │ 
> │ Parsing target\Builder\spiral_wasm\spiral_wasm.fsproj...
> │ Project and references (14 source files) parsed in 2685ms
> │ 
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.JSInt
> erop.dll for Fable plugins, skipping this assembly. Original error: The 
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Routing.dll for Fable plugins, skipping this assembly. Original error: The
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Routing.Abstractions.dll for Fable plugins, skipping this assembly. 
> Original error: The exception has been reported. This internal exception should 
> now be caught at an error recovery point on the stack. Original message: The 
> type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You 
> must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.ViewFeatures.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.dll for Fable plugins, skipping this assembly. Original error: The 
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.Core.dll for Fable plugins, skipping this assembly. Original error: 
> The exception has been reported. This internal exception should now be caught at
> an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Http.Abstractions.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.Forms.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.Endpoints.dll for Fable plugins, skipping this assembly. 
> Original error: The exception has been reported. This internal exception should 
> now be caught at an error recovery point on the stack. Original message: The 
> type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You 
> must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.dll for Fable plugins, skipping this assembly. Original error: 
> The exception has been reported. This internal exception should now be caught at
> an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ 
> │ Started Fable compilation...
> │ 
> │ Fable compilation finished in 10875ms
> │ 
> │ .\deps\spiral\lib\spiral\common.fsx(2199,0): (2199,2) warning
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\sm.fsx(561,0): (561,2) warning 
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\async_.fsx(250,0): (250,2) warning 
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\crypto.fsx(2426,0): (2426,2) warning
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\threading.fsx(139,0): (139,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\date_time.fsx(2546,0): (2546,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\platform.fsx(121,0): (121,2) warning
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\networking.fsx(5050,0): (5050,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\trace.fsx(2232,0): (2232,2) warning 
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\runtime.fsx(7321,0): (7321,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\file_system.fsx(19036,0): (19036,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ spiral/apps/wasm/build.ps1 / path: 
> C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/spiral_wasm.rs
> │ spiral/apps/wasm/build.ps1 / $targetDir = 
> C:\home\git\polyglot\target\Builder\spiral_wasm / $projectName: spiral_wasm / 
> $env:CI:''
> │ warning: /mnt/c/home/git/spiral/apps/spiral/Cargo.toml: 
> the cargo feature `edition2024` has been stabilized in the 1.85 release and is 
> no longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: /mnt/c/home/git/spiral/workspace/Cargo.toml: 
> the cargo feature `edition2024` has been stabilized in the 1.85 release and is 
> no longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: /mnt/c/home/git/spiral/apps/wasm/Cargo.toml: 
> the cargo feature `edition2024` has been stabilized in the 1.85 release and is 
> no longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> /mnt/c/home/git/spiral/lib/spiral/near/wallet/Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │    Compiling spiral_wasm v0.0.1 
> (/mnt/c/home/git/spiral/apps/wasm)
> │     Finished `release` profile [optimized] target(s) in 
> 2m 02s
> │ 
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> { pwsh ../lib/math/build.ps1 } | Invoke-Block
> 
> ── [ 4.58m - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:00 d #1 spiral.main / { args = 
> Array(MutCell(["dib", "--path", "math.dib", "--retries", "1"])) }
> │ 00:00:00 d #2 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", 
> "c:/home/git/polyglot/lib/math/math.dib", "--output-path", 
> "c:/home/git/polyglot/lib/math/math.dib.ipynb"]; options = { command = dotnet 
> repl --exit-after-run --run "c:/home/git/polyglot/lib/math/math.dib" 
> --output-path "c:/home/git/polyglot/lib/math/math.dib.ipynb"; cancellation_token
> = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), 
> ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; 
> working_directory = None } }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ # math
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > open testing
> │ > open rust.rust_operators
> │ > open rust
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## complex
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > nominal complex t =
> │ >     `(
> │ >         global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; 
> │ > 
> Fable.Core.Emit(\"num_complex::Complex<$0>\")>]]\n#endif\ntype 
> │ > num_complex_Complex<'T> = class end"
> │ >         $'' : $'num_complex_Complex<`t>'
> │ >     )
> │ > 
> │ > inl complex forall t. ((re : t), (im : t)) : complex t =
> │ >     !\\((re, im), $'"num_complex::Complex::new($0, $1)"')
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -d num-complex
> │ > 
> │ > complex (0f64, 0f64)
> │ > |> sm'.format'
> │ > |> sm'.from_std_string
> │ > |> _assert_eq "0+0i"
> │ > 
> │ > ── [ 22.44s - return value ] 
> ───────────────────────────────────────────────────
> │ > │ { name = __assert_eq; actual = 0+0i; 
> expected = 0+0i }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## re
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl re forall t. (c : complex t) : t =
> │ >     !\\(c, $'"$0.re"')
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## im
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl im forall t. (c : complex t) : t =
> │ >     !\\(c, $'"$0.im"')
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## complex_unbox
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl complex_unbox forall t. (c : complex t) =
> │ >     re c, im c
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## (~.^)
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl (~.^) c = complex c
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## complex_eq
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl complex_eq forall t. (a : complex t) (b : complex t) : 
> bool =
> │ >     !\\((a, b), $'"$0 == $1"')
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## (.=)
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl (.=) a b = complex_eq a b
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## equable complex
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > instance equable complex t = complex_eq
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## complex_add
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl complex_add forall t. (a : complex t) (b : complex t) :
> complex t =
> │ >     !\\((a, b), $'"$0 + $1"')
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## (.+)
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl (.+) a b = complex_add a b
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## complex_sub
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl complex_sub forall t. (a : complex t) (b : complex t) :
> complex t =
> │ >     !\\((a, b), $'"$0 - $1"')
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## (.-)
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl (.-) a b = complex_sub a b
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## complex_mult
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl complex_mult forall t. (a : complex t) (b : complex t) 
> : complex t =
> │ >     !\\((a, b), $'"$0 * $1"')
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## (.*)
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl (.*) a b = complex_mult a b
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## complex_div
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl complex_div forall t. (a : complex t) (b : complex t) :
> complex t =
> │ >     !\\((a, b), $'"$0 / $1"')
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## (./)
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl (./) a b = complex_div a b
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## powc
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl powc forall t. (s : complex t) (c : complex t) : 
> complex t =
> │ >     !\\((c, s), $'"num_complex::Complex::powc($0, $1)"')
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## (.**)
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl (.**) a b = powc b a
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## complex_sin
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl complex_sin forall t. (c : complex t) : complex t =
> │ >     !\\(c, $'"$0.sin()"')
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## conj
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl conj forall t. (c : complex t) : complex t =
> │ >     !\\(c, $'"$0.conj()"')
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## zeta
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl zeta log (gamma : complex f64 -> complex f64) (s : 
> complex f64) : complex 
> │ > f64 =
> │ >     inl rec zeta count gamma s =
> │ >         if log then
> │ >             !\\((count, s), $'"println\!(\\\"zeta / count: 
> {:?} / s: {:?}\\\", 
> │ > $0, $1)"')
> │ >         if re s > 1 then
> │ >             (.^(0, 0), (am.init 10000i32 id : a i32 _))
> │ >             ||> am.fold fun acc n =>
> │ >                 acc .+ (.^(1, 0) ./ (.^(f64 n, 0) .** s))
> │ >         else
> │ >             inl gamma_term = gamma (.^(1, 0) .- s)
> │ >             inl sin_term = .^(pi, 0) .* s ./ .^(2, 0) |> 
> complex_sin
> │ >             inl one_minus_s = .^(1 - re s, -(im s))
> │ >             inl mirror_term =
> │ >                 if re one_minus_s <= 1
> │ >                 then .^(0, 0)
> │ >                 else
> │ >                     if count <= 3
> │ >                     then zeta (count + 1) gamma one_minus_s
> │ >                     else one_minus_s
> │ >             inl reflection_formula =
> │ >                 .^(2, 0) .* (.^(pi, 0) .** s) .* sin_term 
> .* gamma_term .* 
> │ > mirror_term
> │ >             reflection_formula
> │ >     join zeta 0i32 gamma s
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## bound
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > nominal bound t =
> │ >     `(
> │ >         global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; 
> │ > Fable.Core.Emit(\"pyo3::Bound<$0>\")>]]\n#endif\ntype 
> pyo3_Bound<'T> = class 
> │ > end"
> │ >         $'' : $'pyo3_Bound<`t>'
> │ >     )
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## python
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > nominal python =
> │ >     `(
> │ >         global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; 
> │ > Fable.Core.Emit(\"pyo3::Python\")>]]\n#endif\ntype 
> pyo3_Python = class end"
> │ >         $'' : $'pyo3_Python'
> │ >     )
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## pymodule
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > nominal pymodule =
> │ >     `(
> │ >         global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; 
> │ > Fable.Core.Emit(\"pyo3::types::PyModule\")>]]\n#endif\ntype
> pyo3_types_PyModule 
> │ > = class end"
> │ >         $'' : $'pyo3_types_PyModule'
> │ >     )
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## pyany
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > nominal pyany =
> │ >     `(
> │ >         global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; 
> │ > Fable.Core.Emit(\"pyo3::PyAny\")>]]\n#endif\ntype 
> pyo3_PyAny = class end"
> │ >         $'' : $'pyo3_PyAny'
> │ >     )
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## pyerr
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > nominal pyerr =
> │ >     `(
> │ >         global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; 
> │ > Fable.Core.Emit(\"pyo3::PyErr\")>]]\n#endif\ntype 
> pyo3_PyErr = class end"
> │ >         $'' : $'pyo3_PyErr'
> │ >     )
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## eval
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl module_from_code (py : python) (code : string) : _ 
> (bound pymodule) _ =
> │ >     inl py = join py
> │ >     inl code = code |> sm'.to_std_string |> 
> sm'.new_c_string
> │ >     inl empty = "" |> sm'.to_std_string |> sm'.new_c_string
> │ >     !\\(code, $'"pyo3::types::PyModule::from_code(!py, &$0,
> &!empty, &!empty)"')
> │ >     |> resultm.map_error'' fun (x : pyerr) => x |> 
> sm'.format'
> │ > 
> │ > inl use_pyanymethods () =
> │ >     global "Fable.Core.RustInterop.emitRustExpr () 
> \");\nuse 
> │ > pyo3::prelude::PyAnyMethods;\n//\""
> │ > 
> │ > inl getattr (attr : string) (module : bound pymodule) : _ 
> (bound pyany) _ =
> │ >     inl attr = join attr
> │ >     inl attr = attr |> sm'.as_str
> │ >     inl module = join module
> │ >     use_pyanymethods ()
> │ >     !\\(attr, $'"!module.getattr($0)"')
> │ >     |> resultm.map_error'' fun (x : pyerr) => x |> 
> sm'.format'
> │ > 
> │ > inl call forall t. (args : t) (module : bound pyany) : _ 
> (bound pyany) _ =
> │ >     inl args = join args
> │ >     inl module = join module
> │ >     !\($'"pyo3::prelude::PyAnyMethods::call(&!module, 
> ((*!args).0, *(*!args).1),
> │ > None)"')
> │ >     |> resultm.map_error'' fun (x : pyerr) => x |> 
> sm'.format'
> │ > 
> │ > inl extract forall t. (result : bound pyany) : _ t _ =
> │ >     inl result = join result
> │ >     use_pyanymethods ()
> │ >     !\($'"!result.extract()"')
> │ >     |> resultm.map_error'' fun (x : pyerr) => x |> 
> sm'.format'
> │ > 
> │ > inl eval py code (args : pair bool (pair f64 f64)) : _ (_ 
> f64) sm'.std_string =
> │ >     inl code =
> │ >         code
> │ >         |> module_from_code py
> │ >         |> resultm.unwrap'
> │ >     inl fn =
> │ >         code
> │ >         |> getattr "fn"
> │ >         |> resultm.unwrap'
> │ > 
> │ >     fn
> │ >     |> call args
> │ >     |> resultm.try'
> │ >     |> extract
> │ >     |> resultm.try'
> │ >     |> complex
> │ >     |> Ok
> │ >     |> resultm.box
> │ > 
> │ > inl call1_ log py s code =
> │ >     inl code = join (a code : _ i32 _) |> sm'.concat_array 
> "\n"
> │ > 
> │ >     inl s = new_pair (re s) (im s)
> │ >     inl args = new_pair log s
> │ > 
> │ >     eval py code args
> │ > 
> │ > inl call1_ log name py s line =
> │ >     inl s = join s
> │ >     join
> │ >         ;[[
> │ >             $'$"import sys"'
> │ >             $'$"import traceback"'
> │ >             $'$"import re"'
> │ >             $'$"count = 0"'
> │ >             $'$"memory_address_pattern = re.compile(r\' at 
> 0x[[0-9a-fA-F]]+\')"'
> │ >             $'$"def trace_calls(frame, event, arg):"'
> │ >             $'$"    global count"'
> │ >             $'$"    count += 1"'
> │ >             $'$"    if count < 200:"'
> │ >             $'$"        try:"'
> │ >             $'$"            args = {{ k: v for k, v in 
> frame.f_locals.items() if
> │ > frame.f_code.co_name \!= \'make_mpc\' and k not in 
> [[\'ctx\']] and not 
> │ > callable(v) }}"'
> │ >             $'$"            args_str = \', \'.join([[ 
> │ > f\\\"{{k}}={{re.sub(memory_address_pattern, \' at 0x<?>\', 
> repr(v))}}\\\" for k,
> │ > v in args.items() ]])"'
> │ >             $'$"            print(f\\\"{{event}}({!name}) /
> f_code.co_name: 
> │ > {{frame.f_code.co_name}} / f_locals: {{args_str}} / 
> f_lineno: {{frame.f_lineno}}
> │ > / f_code.co_filename: 
> │ > {{frame.f_code.co_filename.split(\'site-packages\')[[-1]]}}
> / f_back.f_lineno: 
> │ > {{ \'\' if frame.f_back is None else frame.f_back.f_lineno 
> }} / 
> │ > f_back.f_code.co_filename: {{ \'\' if frame.f_back is None 
> else 
> │ > 
> frame.f_back.f_code.co_filename.split(\'site-packages\')[[-1]] }} / arg: 
> │ > {{re.sub(memory_address_pattern, \' at 0x<?>\', 
> repr(arg))}}\\\", flush=True)"'
> │ >             $'$"        except ValueError as e:"'
> │ >             $'$"            print(f\'{!name} / e: {{e}}\', 
> flush=True)"'
> │ >             $'$"        return trace_calls"'
> │ >             $'$"import mpmath"'
> │ >             $'$"def fn(log, s):"'
> │ >             $'$"    global count"'
> │ >             $'$"    if log:"'
> │ >             $'$"        print(f\'{!name} / s: {{s}} / 
> count: {{count}}\', 
> │ > flush=True)"'
> │ >             $'$"    s = complex(*s)"'
> │ >             $'$"    try:"'
> │ >             $'$"        if log: sys.settrace(trace_calls)"'
> │ >             line
> │ >             $'$"        if log:"'
> │ >             $'$"            sys.settrace(None)"'
> │ >             $'$"            print(f\'{!name} / result: 
> {{s}} / count: 
> │ > {{count}}\', flush=True)"'
> │ >             $'$"    except ValueError as e:"'
> │ >             $'$"        if s.real == 1:"'
> │ >             $'$"            s = complex(float(\'inf\'), 
> 0)"'
> │ >             $'$"    return (s.real, s.imag)"'
> │ >         ]]
> │ >         |> call1_ log py s
> │ > 
> │ > inl gamma_ log py s =
> │ >     call1_ log "gamma_" py s $'$"        s = 
> mpmath.gamma(s)"'
> │ > 
> │ > inl zeta_ log py s =
> │ >     call1_ log "zeta_" py s $'$"        s = 
> mpmath.zeta(s)"'
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## run_test
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl run_test log (fn : (complex f64 -> complex f64) * 
> (complex f64 -> complex 
> │ > f64) -> ()) =
> │ >     inl fn_ (py : python) : resultm.result' () pyerr =
> │ >         inl nan () =
> │ >             !\($'"f64::NAN"')
> │ >         inl gamma__ = fun (s : complex f64) =>
> │ >             inl result = gamma_ log py s
> │ >             if log then
> │ >                 inl s = join s
> │ >                 !\($'"println\!(\\\"gamma__ / s: {:?} / 
> result: {:?}\\\", !s, 
> │ > !result)"')
> │ >             result |> resultm.ok' |> optionm'.unbox |> 
> optionm'.default_value 
> │ > .^(nan (), nan ())
> │ >         inl zeta__ = fun (s : complex f64) =>
> │ >             inl result = zeta_ log py s
> │ > 
> │ >             inl z = zeta true gamma__ s
> │ > 
> │ >             if log then
> │ >                 inl s = join s
> │ >                 !\($'"println\!(\\\"zeta__ / s: {:?} / 
> result: {:?} / z: 
> │ > {:?}\\\", !s, !result, !z)"')
> │ > 
> │ >     //             re result - re x |> abs
> │ >     //             |> _assert_lt 0.001
> │ > 
> │ >     //             im result - im x |> abs
> │ >     //             |> _assert_lt 0.001
> │ > 
> │ >             result |> resultm.ok' |> optionm'.unbox |> 
> optionm'.default_value 
> │ > .^(nan (), nan ())
> │ >         join fn (zeta__, gamma__)
> │ > 
> │ >         Ok ()
> │ >         |> resultm.box
> │ > 
> │ >     join
> │ >         !\($'"pyo3::prepare_freethreaded_python()"') : ()
> │ > 
> │ >         !\($'"let __run_test = pyo3::Python::with_gil(|py| 
> -> pyo3::PyResult<()>
> │ > { //"')
> │ > 
> │ >         let x' = fn_ (!\($'"py"') : python)
> │ >         inl x' = join x'
> │ > 
> │ >         inl closure_fix = 2u8, 1u8
> │ >         x' |> rust.fix_closure closure_fix
> │ > 
> │ >         (!\($'"__run_test"') : _ () pyerr)
> │ >         |> resultm.unwrap'
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## test_zeta_at_known_values_
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl test_zeta_at_known_values_ log = run_test log fun zeta,
> gamma =>
> │ >     ;[[
> │ >         .^(2, 0), pi ** 2 / 6
> │ >         .^(-1, 0), -1 / 12
> │ >     ]]
> │ >     |> fun x => a x : _ i32 _
> │ >     |> am.iter fun s, e =>
> │ >         inl result = zeta s
> │ > 
> │ >         result |> im |> _assert_eq 0
> │ >         re result - e |> abs |> _assert_lt 0.0001
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -d num-complex pyo3
> │ > 
> │ > test_zeta_at_known_values_ true
> │ > 
> │ > ── [ 31.52s - return value ] 
> ───────────────────────────────────────────────────
> │ > │ zeta_ / s: (2.0, 0.0) / count: 0
> │ > │ call(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+0j), a=1,
> │ > derivative=0, method=None, kwargs={} / f_lineno: 528 / 
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+0j), a=1,
> │ > derivative=0, method=None, kwargs={} / f_lineno: 530 / 
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+0j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+0j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+0j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ call(zeta_) / f_code.co_name: f / 
> f_locals: x=(2+0j), 
> │ > kwargs={}, name='zeta' / f_lineno: 989 / 
> f_code.co_filename: 
> │ > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / arg: None
> │ > │ line(zeta_) / f_code.co_name: f / 
> f_locals: x=(2+0j), 
> │ > kwargs={}, name='zeta' / f_linen... f_code.co_filename: 
> \mpmath\ctx_mp_python.py
> │ > / f_back.f_lineno: 1007 / f_back.f_code.co_filename: 
> \mpmath\ctx_mp_python.py / 
> │ > arg: None
> │ > │ line(gamma_) / f_code.co_name: make_mpc 
> / f_locals:  / 
> │ > f_lineno: 604 / f_code.co_filename: 
> \mpmath\ctx_mp_python.py / f_back.f_lineno: 
> │ > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py 
> / arg: None
> │ > │ line(gamma_) / f_code.co_name: make_mpc 
> / f_locals:  / 
> │ > f_lineno: 605 / f_code.co_filename: 
> \mpmath\ctx_mp_python.py / f_back.f_lineno: 
> │ > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py 
> / arg: None
> │ > │ return(gamma_) / f_code.co_name: 
> make_mpc / f_locals:  / 
> │ > f_lineno: 605 / f_code.co_filename: 
> \mpmath\ctx_mp_python.py / f_back.f_lineno: 
> │ > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py 
> / arg: 
> │ > mpc(real='1.0', imag='0.0')
> │ > │ return(gamma_) / f_code.co_name: f / 
> f_locals: 
> │ > x=mpc(real='2.0', imag='0.0'), kwargs={}, name='gamma', 
> prec=53, rounding='n' / 
> │ > f_lineno: 1007 / f_code.co_filename: 
> \mpmath\ctx_mp_python.py / f_back.f_lineno:
> │ > 25 / f_back.f_code.co_filename:  / arg: mpc(real='1.0', 
> imag='0.0')
> │ > │ gamma_ / result: (1.0 + 0.0j) / count: 
> 140
> │ > │ gamma__ / s: Complex { re: 2.0, im: 0.0 
> } / result: 
> │ > Ok(Complex { re: 1.0, im: 0.0 })
> │ > │ zeta / count: 1 / s: Complex { re: 2.0, 
> im: -0.0 }
> │ > │ zeta__ / s: Complex { re: -1.0, im: 0.0 
> } / result: 
> │ > Ok(Complex { re: -0.08333333333333333, im: 0.0 }) / z: 
> Complex { re: NaN, im: 
> │ > NaN }
> │ > │ { name = __assert_eq; actual = 
> +0.000000; expected = 
> │ > +0.000000 }
> │ > │ { name = __assert_lt; actual = 
> +0.000000; expected = 
> │ > +0.000100 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## test_zeta_at_2_minus2
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl test_zeta_at_2_minus2 log = run_test log fun zeta, 
> gamma =>
> │ >     inl s = .^(2, -2)
> │ >     inl result = zeta s
> │ > 
> │ >     (re result - 0.8673) |> abs |> _assert_lt 0.001
> │ >     (im result - 0.2750) |> abs |> _assert_lt 0.001
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -d num-complex pyo3
> │ > 
> │ > test_zeta_at_2_minus2 true
> │ > 
> │ > ── [ 10.68s - return value ] 
> ───────────────────────────────────────────────────
> │ > │ zeta_ / s: (2.0, -2.0) / count: 0
> │ > │ call(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2-2j), a=1,
> │ > derivative=0, method=None, kwargs={} / f_lineno: 528 / 
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2-2j), a=1,
> │ > derivative=0, method=None, kwargs={} / f_lineno: 530 / 
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2-2j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2-2j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2-2j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ call(zeta_) / f_code.co_name: f / 
> f_locals: x=(2-2j), 
> │ > kwargs={}, name='zeta' / f_lineno: 989 / 
> f_code.co_filename: 
> │ > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / arg: None
> │ > │ line(zeta_) / f_code.co_name: f / 
> f_locals: x=(2-2j), 
> │ > kwargs={}, name='zeta' / f_line... None
> │ > │ call(zeta_) / f_code.co_name: 
> python_bitcount / f_locals: n=2
> │ > / f_lineno: 91 / f_code.co_filename: 
> \mpmath\libmp\libintmath.py / 
> │ > f_back.f_lineno: 778 / f_back.f_code.co_filename: 
> \mpmath\libmp\libmpf.py / arg:
> │ > None
> │ > │ line(zeta_) / f_code.co_name: 
> python_bitcount / f_locals: n=2
> │ > / f_lineno: 93 / f_code.co_filename: 
> \mpmath\libmp\libintmath.py / 
> │ > f_back.f_lineno: 778 / f_back.f_code.co_filename: 
> \mpmath\libmp\libmpf.py / arg:
> │ > None
> │ > │ line(zeta_) / f_code.co_name: 
> python_bitcount / f_locals: 
> │ > n=2, bc=2 / f_lineno: 94 / f_code.co_filename: 
> \mpmath\libmp\libintmath.py / 
> │ > f_back.f_lineno: 778 / f_back.f_code.co_filename: 
> \mpmath\libmp\libmpf.py / arg:
> │ > None
> │ > │ line(zeta_) / f_code.co_name: 
> python_bitcount / f_locals: 
> │ > n=2, bc=2 / f_lineno: 95 / f_code.co_filename: 
> \mpmath\libmp\libintmath.py / 
> │ > f_back.f_lineno: 778 / f_back.f_code.co_filename: 
> \mpmath\libmp\libmpf.py / arg:
> │ > None
> │ > │ return(zeta_) / f_code.co_name: 
> python_bitcount / f_locals: 
> │ > n=2, bc=2 / f_lineno: 95 / f_code.co_filename: 
> \mpmath\libmp\libintmath.py / 
> │ > f_back.f_lineno: 778 / f_back.f_code.co_filename: 
> \mpmath\libmp\libmpf.py / arg:
> │ > 2
> │ > │ zeta_ / result: (0.867351829635993 + 
> 0.275127238807858j) / 
> │ > count: 1812
> │ > │ zeta / count: 0 / s: Complex { re: 2.0, 
> im: -2.0 }
> │ > │ zeta__ / s: Complex { re: 2.0, im: -2.0 
> } / result: 
> │ > Ok(Complex { re: 0.8673518296359931, im: 
> 0.27512723880785767 }) / z: Complex { 
> │ > re: NaN, im: NaN }
> │ > │ { name = __assert_lt; actual = 
> +0.000052; expected = 
> │ > +0.001000 }
> │ > │ { name = __assert_lt; actual = 
> +0.000127; expected = 
> │ > +0.001000 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## 
> test_trivial_zero_at_negative_even___
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl test_trivial_zero_at_negative_even___ log = run_test 
> log fun zeta, gamma =>
> │ >     (join listm'.init_series -2f64 -40 -2)
> │ >     |> listm.iter fun n =>
> │ >         inl s = .^(n, 0)
> │ >         inl result = zeta s
> │ > 
> │ >         result |> re |> _assert_eq 0
> │ >         result |> im |> _assert_eq 0
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -d num-complex pyo3
> │ > 
> │ > test_trivial_zero_at_negative_even___ true
> │ > 
> │ > ── [ 10.38s - return value ] 
> ───────────────────────────────────────────────────
> │ > │ zeta_ / s: (-2.0, 0.0) / count: 0
> │ > │ call(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(-2+0j), 
> │ > a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(-2+0j), 
> │ > a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(-2+0j), 
> │ > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 
> 531 / 
> │ > f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(-2+0j), 
> │ > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 
> 532 / 
> │ > f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(-2+0j), 
> │ > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 
> 533 / 
> │ > f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ call(zeta_) / f_code.co_name: f / 
> f_locals: x=(-2+0j), 
> │ > kwargs={}, name='zeta' / f_lineno: 989 / 
> f_code.co_filename: 
> │ > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / arg: None
> │ > │ line(zeta_) / f_code.co_name: f / 
> f_locals: x=(-2+0j), 
> │ > kwargs={}, name='zeta' /...neno: 1007 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\ctx_mp_python.py / arg: None
> │ > │ line(gamma_) / f_code.co_name: make_mpc 
> / f_locals:  / 
> │ > f_lineno: 604 / f_code.co_filename: 
> \mpmath\ctx_mp_python.py / f_back.f_lineno: 
> │ > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py 
> / arg: None
> │ > │ line(gamma_) / f_code.co_name: make_mpc 
> / f_locals:  / 
> │ > f_lineno: 605 / f_code.co_filename: 
> \mpmath\ctx_mp_python.py / f_back.f_lineno: 
> │ > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py 
> / arg: None
> │ > │ return(gamma_) / f_code.co_name: 
> make_mpc / f_locals:  / 
> │ > f_lineno: 605 / f_code.co_filename: 
> \mpmath\ctx_mp_python.py / f_back.f_lineno: 
> │ > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py 
> / arg: 
> │ > mpc(real='8.1591528324789768e+47', imag='0.0')
> │ > │ return(gamma_) / f_code.co_name: f / 
> f_locals: 
> │ > x=mpc(real='41.0', imag='0.0'), kwargs={}, name='gamma', 
> prec=53, rounding='n' /
> │ > f_lineno: 1007 / f_code.co_filename: 
> \mpmath\ctx_mp_python.py / f_back.f_lineno:
> │ > 25 / f_back.f_code.co_filename:  / arg: 
> mpc(real='8.1591528324789768e+47', 
> │ > imag='0.0')
> │ > │ gamma_ / result: (8.15915283247898e+47 +
> 0.0j) / count: 149
> │ > │ gamma__ / s: Complex { re: 41.0, im: 0.0
> } / result: 
> │ > Ok(Complex { re: 8.159152832478977e47, im: 0.0 })
> │ > │ zeta / count: 1 / s: Complex { re: 41.0,
> im: -0.0 }
> │ > │ zeta__ / s: Complex { re: -40.0, im: 0.0
> } / result: 
> │ > Ok(Complex { re: 0.0, im: 0.0 }) / z: Complex { re: NaN, 
> im: NaN }
> │ > │ { name = __assert_eq; actual = 
> +0.000000; expected = 
> │ > +0.000000 }
> │ > │ { name = __assert_eq; actual = 
> +0.000000; expected = 
> │ > +0.000000 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## test_non_trivial_zero___
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl test_non_trivial_zero___ log = run_test log fun zeta, 
> gamma =>
> │ >     ;[[
> │ >         .^(0.5, 14.134725)
> │ >         .^(0.5, 21.022040)
> │ >         .^(0.5, 25.010857)
> │ >         .^(0.5, 30.424876)
> │ >         .^(0.5, 32.935062)
> │ >         .^(0.5, 37.586178)
> │ >     ]]
> │ >     |> fun x => a x : _ i32 _
> │ >     |> am.iter fun x =>
> │ >             inl result = zeta x
> │ >             result |> re |> abs |> _assert_lt 0.0001
> │ >             result |> im |> abs |> _assert_lt 0.0001
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -d num-complex pyo3
> │ > 
> │ > test_non_trivial_zero___ true
> │ > 
> │ > ── [ 10.38s - return value ] 
> ───────────────────────────────────────────────────
> │ > │ zeta_ / s: (0.5, 14.134725) / count: 0
> │ > │ call(zeta_) / f_code.co_name: zeta / 
> f_locals: 
> │ > s=(0.5+14.134725j), a=1, derivative=0, method=None, 
> kwargs={} / f_lineno: 528 / 
> │ > f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: 
> │ > s=(0.5+14.134725j), a=1, derivative=0, method=None, 
> kwargs={} / f_lineno: 530 / 
> │ > f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: 
> │ > s=(0.5+14.134725j), a=1, derivative=0, method=None, 
> kwargs={}, d=0 / f_lineno: 
> │ > 531 / f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: 
> │ > s=(0.5+14.134725j), a=1, derivative=0, method=None, 
> kwargs={}, d=0 / f_lineno: 
> │ > 532 / f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: 
> │ > s=(0.5+14.134725j), a=1, derivative=0, method=None, 
> kwargs={}, d=0 / f_lineno: 
> │ > 533 / f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ call(zeta_) / f_code.co_name: f / 
> f_locals: 
> │ > x=(0.5+14.134725j), kwargs={}, name='zeta' / f_lineno: 989 
> / f_code.co_filename:
> │ > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / arg: None
> │ > │ line(zeta_) / f_code...None
> │ > │ line(gamma_) / f_code.co_name: 
> complex_stirling_series / 
> │ > f_locals: x=1208925819614629174706176, 
> y=-90877802089662679288381440, prec=81, 
> │ > _m=3416353708500640443578529333, tre=855591523614410863719,│ > tim=64316830603724894628746, ure=-1710577520534459139249, 
> │ > uim=45518868236127668552, sre=1013002518538853602038572, 
> │ > sim=90883161825546323029600502 / f_lineno: 1637 / 
> f_code.co_filename: 
> │ > \mpmath\libmp\gammazeta.py / f_back.f_lineno: 2050 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\libmp\gammazeta.py / arg: None
> │ > │ line(gamma_) / f_code.co_name: 
> complex_stirling_series / 
> │ > f_locals: x=1208925819614629174706176, 
> y=-90877802089662679288381440, prec=81, 
> │ > _m=3416353708500640443578529333, tre=-1816151534455075068, 
> │ > tim=-45486653225747820096, ure=-1710577520534459139249, 
> │ > uim=45518868236127668552, sre=1013002518538853602038572, 
> │ > sim=90883161825546323029600502 / f_lineno: 1638 / 
> f_code.co_filename: 
> │ > \mpmath\libmp\gammazeta.py / f_back.f_lineno: 2050 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\libmp\gammazeta.py / arg: None
> │ > │ gamma_ / result: (-1.32798420042152e-26 
> + 
> │ > 5.5751975252688e-26j) / count: 309
> │ > │ gamma__ / s: Complex { re: 0.5, im: 
> -37.586178 } / result: 
> │ > Ok(Complex { re: -1.3279842004215153e-26, im: 
> 5.575197525268802e-26 })
> │ > │ zeta__ / s: Complex { re: 0.5, im: 
> 37.586178 } / result: 
> │ > Ok(Complex { re: -8.910186507947958e-8, im: 
> -2.943780446402868e-7 }) / z: 
> │ > Complex { re: -0.0, im: 0.0 }
> │ > │ { name = __assert_lt; actual = 
> +0.000000; expected = 
> │ > +0.000100 }
> │ > │ { name = __assert_lt; actual = 
> +0.000000; expected = 
> │ > +0.000100 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## test_real_part_greater_than_one___
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl test_real_part_greater_than_one___ log = run_test log 
> fun zeta, gamma =>
> │ >     inl points = ;[[ 2; 3; 4; 5; 10; 20; 50 ]]
> │ >     (a points : _ i32 _)
> │ >     |> am.iter fun point =>
> │ >         inl s = .^(point, 0)
> │ >         inl result = zeta s
> │ >         result |> re |> _assert_gt 0
> │ >         result |> im |> _assert_eq 0
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -d num-complex pyo3
> │ > 
> │ > test_real_part_greater_than_one___ true
> │ > 
> │ > ── [ 10.00s - return value ] 
> ───────────────────────────────────────────────────
> │ > │ zeta_ / s: (2.0, 0.0) / count: 0
> │ > │ call(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+0j), a=1,
> │ > derivative=0, method=None, kwargs={} / f_lineno: 528 / 
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+0j), a=1,
> │ > derivative=0, method=None, kwargs={} / f_lineno: 530 / 
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+0j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+0j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+0j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ call(zeta_) / f_code.co_name: f / 
> f_locals: x=(2+0j), 
> │ > kwargs={}, name='zeta' / f_lineno: 989 / 
> f_code.co_filename: 
> │ > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / arg: None
> │ > │ line(zeta_) / f_code.co_name: f / 
> f_locals: x=(2+0j), 
> │ > kwargs={}, name='zeta' / f_linen..._mp_python.py / 
> f_back.f_lineno: 1007 / 
> │ > f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: 
> None
> │ > │ line(zeta_) / f_code.co_name: make_mpc /
> f_locals:  / 
> │ > f_lineno: 605 / f_code.co_filename: 
> \mpmath\ctx_mp_python.py / f_back.f_lineno: 
> │ > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py 
> / arg: None
> │ > │ return(zeta_) / f_code.co_name: make_mpc
> / f_locals:  / 
> │ > f_lineno: 605 / f_code.co_filename: 
> \mpmath\ctx_mp_python.py / f_back.f_lineno: 
> │ > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py 
> / arg: 
> │ > mpc(real='1.0000000000000009', imag='0.0')
> │ > │ return(zeta_) / f_code.co_name: f / 
> f_locals: 
> │ > x=mpc(real='50.0', imag='0.0'), kwargs={}, name='zeta', 
> prec=53, rounding='n' / 
> │ > f_lineno: 1007 / f_code.co_filename: 
> \mpmath\ctx_mp_python.py / f_back.f_lineno:
> │ > 533 / f_back.f_code.co_filename: \mpmath\functions\zeta.py 
> / arg: 
> │ > mpc(real='1.0000000000000009', imag='0.0')
> │ > │ return(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(50+0j), 
> │ > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 
> 533 / 
> │ > f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: 
> mpc(real='1.0000000000000009', imag='0.0')
> │ > │ zeta_ / result: (1.0 + 0.0j) / count: 
> 181
> │ > │ zeta / count: 0 / s: Complex { re: 50.0,
> im: 0.0 }
> │ > │ zeta__ / s: Complex { re: 50.0, im: 0.0 
> } / result: 
> │ > Ok(Complex { re: 1.0000000000000009, im: 0.0 }) / z: 
> Complex { re: NaN, im: NaN 
> │ > }
> │ > │ { name = __assert_gt; actual = 
> +1.000000; expected = 
> │ > +0.000000 }
> │ > │ { name = __assert_eq; actual = 
> +0.000000; expected = 
> │ > +0.000000 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## test_zeta_at_1___
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl test_zeta_at_1___ log = run_test log fun zeta, gamma =>
> │ >     inl s = .^(1, 0)
> │ >     inl result = zeta s
> │ >     result |> re |> _assert_eq limit.max
> │ >     result |> im |> _assert_eq 0
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -d num-complex pyo3
> │ > 
> │ > test_zeta_at_1___ true
> │ > 
> │ > ── [ 9.86s - return value ] 
> ────────────────────────────────────────────────────
> │ > │ zeta_ / s: (1.0, 0.0) / count: 0
> │ > │ call(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(1+0j), a=1,
> │ > derivative=0, method=None, kwargs={} / f_lineno: 528 / 
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(1+0j), a=1,
> │ > derivative=0, method=None, kwargs={} / f_lineno: 530 / 
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(1+0j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(1+0j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(1+0j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ call(zeta_) / f_code.co_name: f / 
> f_locals: x=(1+0j), 
> │ > kwargs={}, name='zeta' / f_lineno: 989 / 
> f_code.co_filename: 
> │ > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / arg: None
> │ > │ line(zeta_) / f_code.co_name: f / 
> f_locals: x=(1+0j), 
> │ > kwargs={}, name='zeta' / f_linen...) / f_code.co_name: f / 
> f_locals: 
> │ > x=mpc(real='0.0', imag='0.0'), kwargs={}, name='gamma', 
> prec=53, rounding='n' / 
> │ > f_lineno: 1007 / f_code.co_filename: 
> \mpmath\ctx_mp_python.py / f_back.f_lineno:
> │ > 25 / f_back.f_code.co_filename:  / arg: None
> │ > │ exception(gamma_) / f_code.co_name: fn /
> f_locals: log=True, 
> │ > s=0j / f_lineno: 25 / f_code.co_filename:  / 
> f_back.f_lineno:  / 
> │ > f_back.f_code.co_filename:  / arg: (<class 'ValueError'>, 
> ValueError('gamma 
> │ > function pole'), <traceback object at 0x<?>>)
> │ > │ line(gamma_) / f_code.co_name: fn / 
> f_locals: log=True, s=0j 
> │ > / f_lineno: 29 / f_code.co_filename:  / f_back.f_lineno:  /│ > f_back.f_code.co_filename:  / arg: None
> │ > │ line(gamma_) / f_code.co_name: fn / 
> f_locals: log=True, s=0j,
> │ > e=ValueError('gamma function pole') / f_lineno: 30 / 
> f_code.co_filename:  / 
> │ > f_back.f_lineno:  / f_back.f_code.co_filename:  / arg: None
> │ > │ line(gamma_) / f_code.co_name: fn / 
> f_locals: log=True, s=0j 
> │ > / f_lineno: 32 / f_code.co_filename:  / f_back.f_lineno:  /│ > f_back.f_code.co_filename:  / arg: None
> │ > │ return(gamma_) / f_code.co_name: fn / 
> f_locals: log=True, 
> │ > s=0j / f_lineno: 32 / f_code.co_filename:  / 
> f_back.f_lineno:  / 
> │ > f_back.f_code.co_filename:  / arg: (0.0, 0.0)
> │ > │ gamma__ / s: Complex { re: 0.0, im: 0.0 
> } / result: 
> │ > Ok(Complex { re: 0.0, im: 0.0 })
> │ > │ zeta__ / s: Complex { re: 1.0, im: 0.0 }
> / result: Ok(Complex
> │ > { re: inf, im: 0.0 }) / z: Complex { re: 0.0, im: 0.0 }
> │ > │ { name = __assert_eq; actual = +inf; 
> expected = +inf }
> │ > │ { name = __assert_eq; actual = 
> +0.000000; expected = 
> │ > +0.000000 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## test_symmetry_across_real_axis___
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl test_symmetry_across_real_axis___ log = run_test log 
> fun zeta, gamma =>
> │ >     inl s = .^(2, 10)
> │ >     inl result_positive_im = zeta s
> │ >     inl result_negative_im = zeta .^(re s, -(im s))
> │ >     inl conj = result_negative_im |> conj
> │ >     result_positive_im |> re |> _assert_eq (conj |> re)
> │ >     result_positive_im |> im |> _assert_eq (conj |> im)
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -d num-complex pyo3
> │ > 
> │ > test_symmetry_across_real_axis___ true
> │ > 
> │ > ── [ 9.89s - return value ] 
> ────────────────────────────────────────────────────
> │ > │ zeta_ / s: (2.0, 10.0) / count: 0
> │ > │ call(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+10j), 
> │ > a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+10j), 
> │ > a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+10j), 
> │ > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 
> 531 / 
> │ > f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+10j), 
> │ > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 
> 532 / 
> │ > f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+10j), 
> │ > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 
> 533 / 
> │ > f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ call(zeta_) / f_code.co_name: f / 
> f_locals: x=(2+10j), 
> │ > kwargs={}, name='zeta' / f_lineno: 989 / 
> f_code.co_filename: 
> │ > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / arg: None
> │ > │ line(zeta_) / f_code.co_name: f / 
> f_locals: x=(2+10j), 
> │ > kwargs={}, name='zeta' /...ack.f_lineno: 778 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\libmp\libmpf.py / arg: None
> │ > │ line(zeta_) / f_code.co_name: 
> python_bitcount / f_locals: 
> │ > n=26, bc=5 / f_lineno: 94 / f_code.co_filename: 
> \mpmath\libmp\libintmath.py / 
> │ > f_back.f_lineno: 778 / f_back.f_code.co_filename: 
> \mpmath\libmp\libmpf.py / arg:
> │ > None
> │ > │ line(zeta_) / f_code.co_name: 
> python_bitcount / f_locals: 
> │ > n=26, bc=5 / f_lineno: 95 / f_code.co_filename: 
> \mpmath\libmp\libintmath.py / 
> │ > f_back.f_lineno: 778 / f_back.f_code.co_filename: 
> \mpmath\libmp\libmpf.py / arg:
> │ > None
> │ > │ return(zeta_) / f_code.co_name: 
> python_bitcount / f_locals: 
> │ > n=26, bc=5 / f_lineno: 95 / f_code.co_filename: 
> \mpmath\libmp\libintmath.py / 
> │ > f_back.f_lineno: 778 / f_back.f_code.co_filename: 
> \mpmath\libmp\libmpf.py / arg:
> │ > 5
> │ > │ line(zeta_) / f_code.co_name: mpf_add / 
> f_locals: s=(0, 1, 2,
> │ > 1), t=(0, 25, 2, 5), prec=14, rnd='d', _sub=0, ssign=0, 
> sman=1, sexp=2, sbc=1, 
> │ > tsign=0, tman=25, texp=2, tbc=5, offset=0, man=26, bc=5 / 
> f_lineno: 779 / 
> │ > f_code.co_filename: \mpmath\libmp\libmpf.py / 
> f_back.f_lineno: 1401 / 
> │ > f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: 
> None
> │ > │ zeta_ / result: (1.19798250067418 + 
> 0.0791704917205257j) / 
> │ > count: 1174
> │ > │ zeta / count: 0 / s: Complex { re: 2.0, 
> im: -10.0 }
> │ > │ zeta__ / s: Complex { re: 2.0, im: -10.0
> } / result: 
> │ > Ok(Complex { re: 1.1979825006741847, im: 
> 0.07917049172052575 }) / z: Complex { 
> │ > re: NaN, im: NaN }
> │ > │ { name = __assert_eq; actual = 
> +1.197983; expected = 
> │ > +1.197983 }
> │ > │ { name = __assert_eq; actual = 
> -0.079170; expected = 
> │ > -0.079170 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## test_behavior_near_origin___
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl test_behavior_near_origin___ log = run_test log fun 
> zeta, gamma =>
> │ >     inl s = .^(0.01, 0.01)
> │ >     inl result = zeta s
> │ >     result |> re |> _assert_lt limit.max
> │ >     result |> im |> _assert_lt limit.max
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -d num-complex pyo3
> │ > 
> │ > test_behavior_near_origin___ true
> │ > 
> │ > ── [ 9.80s - return value ] 
> ────────────────────────────────────────────────────
> │ > │ zeta_ / s: (0.01, 0.01) / count: 0
> │ > │ call(zeta_) / f_code.co_name: zeta / 
> f_locals: 
> │ > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={} /
> f_lineno: 528 / 
> │ > f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: 
> │ > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={} /
> f_lineno: 530 / 
> │ > f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: 
> │ > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, 
> d=0 / f_lineno: 531 /
> │ > f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: 
> │ > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, 
> d=0 / f_lineno: 532 /
> │ > f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: 
> │ > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, 
> d=0 / f_lineno: 533 /
> │ > f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ call(zeta_) / f_code.co_name: f / 
> f_locals: x=(0.01+0.01j), 
> │ > kwargs={}, name='zeta' / f_lineno: 989 / 
> f_code.co_filename: 
> │ > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / arg: None
> │ > │ line(zeta_) / f_code.co_name: f / 
> f_locals: x=(0.../ 
> │ > f_back.f_lineno: 1007 / f_back.f_code.co_filename: 
> \mpmath\ctx_mp_python.py / 
> │ > arg: None
> │ > │ line(gamma_) / f_code.co_name: mpc_gamma
> / f_locals: z=((0, 
> │ > 4458563631096791, -52, 52), (1, 5764607523034235, -59, 
> 53)), prec=53, rnd='n', 
> │ > type=0, a=(0, 4458563631096791, -52, 52), b=(1, 
> 5764607523034235, -59, 53), 
> │ > asign=0, aman=4458563631096791, aexp=-52, abc=52, bsign=1, 
> │ > bman=5764607523034235, bexp=-59, bbc=53, wp=73, amag=0, 
> bmag=-6, mag=0, an=0, 
> │ > bn=0, absn=0j, gamma_size=0, need_reflection=0, zorig=((0, 
> 4458563631096791, 
> │ > -52, 52), (1, 5764607523034235, -59, 53)), yfinal=0, 
> balance_prec=0, 
> │ > n_for_stirling=14, need_reduction=True, 
> afix=132131814190692672995328, 
> │ > bfix=-94447329657392906240, r=0, zprered=((0, 
> 4458563631096791, -52, 52), (1, 
> │ > 5764607523034235, -59, 53)), d=14, 
> rre=56942610883563778729574216337150, 
> │ > one=9444732965739290427392, 
> rim=-1820461636508155576115177658065, k=12 / 
> │ > f_lineno: 2043 / f_code.co_filename: 
> \mpmath\libmp\gammazeta.py / 
> │ > f_back.f_lineno: 1007 / f_back.f_code.co_filename: 
> \mpmath\ctx_mp_python.py / 
> │ > arg: None
> │ > │ gamma_ / result: (1.00577030202902 + 
> 0.0059717824054102j) / 
> │ > count: 383
> │ > │ gamma__ / s: Complex { re: 0.99, im: 
> -0.01 } / result: 
> │ > Ok(Complex { re: 1.005770302029023, im: 
> 0.005971782405410201 })
> │ > │ zeta__ / s: Complex { re: 0.01, im: 0.01
> } / result: 
> │ > Ok(Complex { re: -0.5091873433665667, im: 
> -0.00939202213994577 }) / z: Complex {
> │ > re: 0.0, im: 0.0 }
> │ > │ { name = __assert_lt; actual = 
> -0.509187; expected = +inf }
> │ > │ { name = __assert_lt; actual = 
> -0.009392; expected = +inf }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## test_imaginary_axis
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl test_imaginary_axis log = run_test log fun zeta, gamma 
> =>
> │ >     (join [[ 10; 20; 30; 40; 50; 60; 70; 80; 90; 100 ]])
> │ >     |> listm.iter fun s =>
> │ >         inl s = .^(0, s)
> │ >         inl result = zeta s
> │ >         result |> re |> _assert_ne 0
> │ >         result |> im |> _assert_ne 0
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -d num-complex pyo3
> │ > 
> │ > test_imaginary_axis true
> │ > 
> │ > ── [ 10.22s - return value ] 
> ───────────────────────────────────────────────────
> │ > │ zeta_ / s: (0.0, 10.0) / count: 0
> │ > │ call(zeta_) / f_code.co_name: zeta / 
> f_locals: s=10j, a=1, 
> │ > derivative=0, method=None, kwargs={} / f_lineno: 528 / 
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=10j, a=1, 
> │ > derivative=0, method=None, kwargs={} / f_lineno: 530 / 
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=10j, a=1, 
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=10j, a=1, 
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=10j, a=1, 
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ call(zeta_) / f_code.co_name: f / 
> f_locals: x=10j, kwargs={},
> │ > name='zeta' / f_lineno: 989 / f_code.co_filename: 
> \mpmath\ctx_mp_python.py / 
> │ > f_back.f_lineno: 533 / f_back.f_code.co_filename: 
> \mpmath\functions\zeta.py / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: f / 
> f_locals: x=10j, kwargs={},
> │ > name='zeta' / f_lineno: 990 / f_code.co_f...a_) / 
> f_code.co_name: to_fixed / 
> │ > f_locals: s=(0, 1, 0, 1), prec=83 / f_lineno: 511 / 
> f_code.co_filename: 
> │ > \mpmath\libmp\libmpf.py / f_back.f_lineno: 2031 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\libmp\gammazeta.py / arg: None
> │ > │ line(gamma_) / f_code.co_name: to_fixed 
> / f_locals: s=(0, 1, 
> │ > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1 / f_lineno: 512 
> / f_code.co_filename:
> │ > \mpmath\libmp\libmpf.py / f_back.f_lineno: 2031 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\libmp\gammazeta.py / arg: None
> │ > │ line(gamma_) / f_code.co_name: to_fixed 
> / f_locals: s=(0, 1, 
> │ > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1, offset=83 / 
> f_lineno: 513 / 
> │ > f_code.co_filename: \mpmath\libmp\libmpf.py / 
> f_back.f_lineno: 2031 / 
> │ > f_back.f_code.co_filename: \mpmath\libmp\gammazeta.py / 
> arg: None
> │ > │ line(gamma_) / f_code.co_name: to_fixed 
> / f_locals: s=(0, 1, 
> │ > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1, offset=83 / 
> f_lineno: 517 / 
> │ > f_code.co_filename: \mpmath\libmp\libmpf.py / 
> f_back.f_lineno: 2031 / 
> │ > f_back.f_code.co_filename: \mpmath\libmp\gammazeta.py / 
> arg: None
> │ > │ gamma_ / result: (-1.51425318049776e-67 
> + 
> │ > 2.79082155561748e-69j) / count: 289
> │ > │ gamma__ / s: Complex { re: 1.0, im: 
> -100.0 } / result: 
> │ > Ok(Complex { re: -1.514253180497756e-67, im: 
> 2.7908215556174775e-69 })
> │ > │ zeta__ / s: Complex { re: 0.0, im: 100.0
> } / result: 
> │ > Ok(Complex { re: 6.51721042625301, im: 0.18128842533791736 
> }) / z: Complex { re:
> │ > 0.0, im: 0.0 }
> │ > │ { name = __assert_ne; actual = 
> +6.517210; expected = 
> │ > +0.000000 }
> │ > │ { name = __assert_ne; actual = 
> +0.181288; expected = 
> │ > +0.000000 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## test_critical_strip
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl test_critical_strip log = run_test log fun zeta, gamma 
> =>
> │ >     (join [[
> │ >         .^(0.5, 14.134725)
> │ >         .^(0.75, 20.5)
> │ >         .^(1.25, 30.1)
> │ >         .^(0.25, 40.0)
> │ >         .^(1.0, 50.0)
> │ >     ]])
> │ >     |> listm.iter fun s =>
> │ >         inl result = zeta s
> │ >         result |> re |> _assert_ne 0
> │ >         result |> im |> _assert_ne 0
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -d num-complex pyo3
> │ > 
> │ > test_critical_strip true
> │ > 
> │ > ── [ 10.14s - return value ] 
> ───────────────────────────────────────────────────
> │ > │ zeta_ / s: (0.5, 14.134725) / count: 0
> │ > │ call(zeta_) / f_code.co_name: zeta / 
> f_locals: 
> │ > s=(0.5+14.134725j), a=1, derivative=0, method=None, 
> kwargs={} / f_lineno: 528 / 
> │ > f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: 
> │ > s=(0.5+14.134725j), a=1, derivative=0, method=None, 
> kwargs={} / f_lineno: 530 / 
> │ > f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: 
> │ > s=(0.5+14.134725j), a=1, derivative=0, method=None, 
> kwargs={}, d=0 / f_lineno: 
> │ > 531 / f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: 
> │ > s=(0.5+14.134725j), a=1, derivative=0, method=None, 
> kwargs={}, d=0 / f_lineno: 
> │ > 532 / f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: 
> │ > s=(0.5+14.134725j), a=1, derivative=0, method=None, 
> kwargs={}, d=0 / f_lineno: 
> │ > 533 / f_code.co_filename: \mpmath\functions\zeta.py / 
> f_back.f_lineno: 25 / 
> │ > f_back.f_code.co_filename:  / arg: None
> │ > │ call(zeta_) / f_code.co_name: f / 
> f_locals: 
> │ > x=(0.5+14.134725j), kwargs={}, name='zeta' / f_lineno: 989 
> / f_code.co_filename:
> │ > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / arg: None
> │ > │ line(zeta_) / 
> f_code...23535862290161314995 / f_lineno: 1648 
> │ > / f_code.co_filename: \mpmath\libmp\gammazeta.py / 
> f_back.f_lineno: 2050 / 
> │ > f_back.f_code.co_filename: \mpmath\libmp\gammazeta.py / 
> arg: None
> │ > │ line(gamma_) / f_code.co_name: 
> complex_stirling_series / 
> │ > f_locals: x=0, y=-241785163922925834941235200, prec=82, 
> │ > _m=12089258196146291747061760000, tre=0, tim=396, 
> ure=-1934281311383406679530, 
> │ > uim=0, sre=4443714077719696485012210, 
> sim=241793223535862290161314995 / 
> │ > f_lineno: 1649 / f_code.co_filename: 
> \mpmath\libmp\gammazeta.py / 
> │ > f_back.f_lineno: 2050 / f_back.f_code.co_filename: 
> \mpmath\libmp\gammazeta.py / 
> │ > arg: None
> │ > │ line(gamma_) / f_code.co_name: 
> complex_stirling_series / 
> │ > f_locals: x=0, y=-241785163922925834941235200, prec=82, 
> │ > _m=12089258196146291747061760000, tre=0, tim=396, 
> ure=-1934281311383406679530, 
> │ > uim=0, sre=4443714077719696485012210, 
> sim=241793223535862290161314997 / 
> │ > f_lineno: 1650 / f_code.co_filename: 
> \mpmath\libmp\gammazeta.py / 
> │ > f_back.f_lineno: 2050 / f_back.f_code.co_filename: 
> \mpmath\libmp\gammazeta.py / 
> │ > arg: None
> │ > │ gamma_ / result: (2.63173210619768e-35 -│ > 8.16464935465334e-36j) / count: 262
> │ > │ gamma__ / s: Complex { re: 0.0, im: 
> -50.0 } / result: 
> │ > Ok(Complex { re: 2.6317321061976804e-35, im: 
> -8.164649354653339e-36 })
> │ > │ zeta__ / s: Complex { re: 1.0, im: 50.0 
> } / result: 
> │ > Ok(Complex { re: 0.44103873082309397, im: 0.281582455029683
> }) / z: Complex { 
> │ > re: 0.0, im: 0.0 }
> │ > │ { name = __assert_ne; actual = 
> +0.441039; expected = 
> │ > +0.000000 }
> │ > │ { name = __assert_ne; actual = 
> +0.281582; expected = 
> │ > +0.000000 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## 
> test_reflection_formula_for_specific_value
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl test_reflection_formula_for_specific_value log = 
> run_test log fun zeta, 
> │ > gamma =>
> │ >     (join [[
> │ >         .^(3, 4)
> │ >         .^(2.5, -3.5)
> │ >         .^(1.5, 2.5)
> │ >         .^(0.5, 14.134725)
> │ >     ]])
> │ >     |> listm.iter fun s =>
> │ >         inl lhs = zeta s
> │ >         inl reflection_coefficient =
> │ >             (.^(2, 0) .** s)
> │ >             .* (.^(pi, 0) .** (s .- .^(1, 0)))
> │ >             .* (.^(pi, 0) .* s ./ .^(2, 0) |> complex_sin)
> │ >             .* gamma (.^(1, 0) .- s)
> │ > 
> │ >         inl one_minus_s = .^(1 - re s, -(im s))
> │ >         inl rhs = reflection_coefficient .* zeta 
> one_minus_s
> │ > 
> │ >         re lhs - re rhs |> abs |> _assert_lt 0.0001
> │ >         im lhs - im rhs |> abs |> _assert_lt 0.0001
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -d num-complex pyo3
> │ > 
> │ > test_reflection_formula_for_specific_value true
> │ > 
> │ > ── [ 10.43s - return value ] 
> ───────────────────────────────────────────────────
> │ > │ zeta_ / s: (3.0, 4.0) / count: 0
> │ > │ call(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(3+4j), a=1,
> │ > derivative=0, method=None, kwargs={} / f_lineno: 528 / 
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(3+4j), a=1,
> │ > derivative=0, method=None, kwargs={} / f_lineno: 530 / 
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(3+4j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(3+4j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(3+4j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ call(zeta_) / f_code.co_name: f / 
> f_locals: x=(3+4j), 
> │ > kwargs={}, name='zeta' / f_lineno: 989 / 
> f_code.co_filename: 
> │ > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / arg: None
> │ > │ line(zeta_) / f_code.co_name: f / 
> f_locals: x=(3+4j), 
> │ > kwargs={}, name='zeta' / f_linen... / f_code.co_filename: 
> │ > \mpmath\libmp\gammazeta.py / f_back.f_lineno: 1007 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\ctx_mp_python.py / arg: None
> │ > │ line(gamma_) / f_code.co_name: mpc_gamma
> / f_locals: z=((0, 
> │ > 1, -1, 1), (0, 3978571390186527, -48, 52)), prec=53, 
> rnd='n', type=0, a=(0, 1, 
> │ > -1, 1), b=(0, 3978571390186527, -48, 52), asign=0, aman=1, 
> aexp=-1, abc=1, 
> │ > bsign=0, bman=3978571390186527, bexp=-48, bbc=52, wp=79, 
> amag=0, bmag=4, mag=4, 
> │ > an=0, bn=14, absn=14j, gamma_size=56, need_reflection=0, 
> zorig=((0, 1, -1, 1), 
> │ > (0, 3978571390186527, -48, 52)), yfinal=0, balance_prec=0, 
> n_for_stirling=15, 
> │ > need_reduction=True, afix=2115620184325601055735808, 
> │ > bfix=8543917002826194402410496, r=0, zprered=((0, 1, -1, 
> 1), (0, 
> │ > 3978571390186527, -48, 52)), d=5, 
> rre=-542313259704087430481959845, 
> │ > one=604462909807314587353088, 
> rim=-1657865507045117397880679064, k=2 / f_lineno:
> │ > 2043 / f_code.co_filename: \mpmath\libmp\gammazeta.py / 
> f_back.f_lineno: 1007 / 
> │ > f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: 
> None
> │ > │ gamma_ / result: (-1.4455538437607e-10 -│ > 5.52278876877407e-10j) / count: 318
> │ > │ gamma__ / s: Complex { re: 0.5, im: 
> 14.134725 } / result: 
> │ > Ok(Complex { re: -1.4455538437606964e-10, im: 
> -5.522788768774066e-10 })
> │ > │ zeta__ / s: Complex { re: 0.5, im: 
> -14.134725 } / result: 
> │ > Ok(Complex { re: 1.7674298413849186e-8, im: 
> 1.1102028930923156e-7 }) / z: 
> │ > Complex { re: 0.0, im: 0.0 }
> │ > │ { name = __assert_lt; actual = 
> +0.000000; expected = 
> │ > +0.000100 }
> │ > │ { name = __assert_lt; actual = 
> +0.000000; expected = 
> │ > +0.000100 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## test_euler_product_formula
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl test_euler_product_formula log = run_test log fun zeta,
> gamma =>
> │ >     inl s_values = join [[ 2; 2.5; 3; 3.5; 4; 4.5; 5 ]]
> │ >     inl primes = join [[ 2; 3; 5; 7; 11; 13; 17; 19; 23; 
> 29; 31; 37; 41; 43; 47;
> │ > 53; 59; 61; 67; 71 ]]
> │ >     s_values
> │ >     |> listm.iter fun s_re =>
> │ >         inl s = .^(s_re, 0)
> │ >         inl product =
> │ >             (1, primes)
> │ >             ||> listm.fold fun acc x =>
> │ >                 acc * 1 / (1 - x ** -s_re)
> │ > 
> │ >         inl result = zeta s
> │ >         re result - product |> abs |> _assert_lt 0.01
> │ >         result |> im |> _assert_lt 0.01
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -d num-complex pyo3
> │ > 
> │ > test_euler_product_formula true
> │ > 
> │ > ── [ 10.07s - return value ] 
> ───────────────────────────────────────────────────
> │ > │ zeta_ / s: (2.0, 0.0) / count: 0
> │ > │ call(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+0j), a=1,
> │ > derivative=0, method=None, kwargs={} / f_lineno: 528 / 
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+0j), a=1,
> │ > derivative=0, method=None, kwargs={} / f_lineno: 530 / 
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+0j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+0j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ line(zeta_) / f_code.co_name: zeta / 
> f_locals: s=(2+0j), a=1,
> │ > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 /
> f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / 
> f_back.f_code.co_filename:  / 
> │ > arg: None
> │ > │ call(zeta_) / f_code.co_name: f / 
> f_locals: x=(2+0j), 
> │ > kwargs={}, name='zeta' / f_lineno: 989 / 
> f_code.co_filename: 
> │ > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / 
> f_back.f_code.co_filename: 
> │ > \mpmath\functions\zeta.py / arg: None
> │ > │ line(zeta_) / f_code.co_name: f / 
> f_locals: x=(2+0j), 
> │ > kwargs={}, name='zeta' / f_linen..._code.co_filename: 
> \mpmath\libmp\gammazeta.py
> │ > / arg: None
> │ > │ line(zeta_) / f_code.co_name: 
> mpf_zeta_int / f_locals: s=5, 
> │ > prec=53, rnd='n', wp=73, m=19.25, needed_terms=623488, 
> n=33, d=[1, 2179, 792067,
> │ > 115062531, 8930212611, 429314925315, 13983537177347, 
> 327666966438659, 
> │ > 5764846406968067, 78615943485956867, 851604426176701187, 
> 7470527451121689347, 
> │ > 53898915046387983107, 323897845985013506819, 
> 1638178356374090130179, 
> │ > 7034281785235908174595, 25833609859980306522883, 
> 81661917475887913739011, 
> │ > 223448095548034217779971, 532029677981012660429571, 
> 1108048631855905753375491, 
> │ > 2029946562680066824315651, 3292927237466655352791811, 
> 4769455369342763680768771,
> │ > 6235511670496346417767171, 7463408621503347142796035, 
> 8322751284048216428487427,
> │ > 8818779962777819524211459, 9050689474911140452082435, 
> 9136270117622166323831555,
> │ > 9160252037839493347779331, 9165045885455648617505539, 
> 9165654628010081032708867,
> │ > 9165691521498228451812099], 
> t=-84153986440240940095109733900764881301998910956, 
> │ > k=26 / f_lineno: 954 / f_code.co_filename: 
> \mpmath\libmp\gammazeta.py / 
> │ > f_back.f_lineno: 985 / f_back.f_code.co_filename: 
> \mpmath\libmp\gammazeta.py / 
> │ > arg: None
> │ > │ zeta_ / result: (1.03692775514337 + 
> 0.0j) / count: 228
> │ > │ zeta / count: 0 / s: Complex { re: 5.0, 
> im: 0.0 }
> │ > │ zeta__ / s: Complex { re: 5.0, im: 0.0 }
> / result: Ok(Complex
> │ > { re: 1.03692775514337, im: 0.0 }) / z: Complex { re: NaN, 
> im: NaN }
> │ > │ { name = __assert_lt; actual = 
> +0.000000; expected = 
> │ > +0.010000 }
> │ > │ { name = __assert_lt; actual = 
> +0.000000; expected = 
> │ > +0.010000 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## graph
> │ > 
> │ > ── mermaid 
> ─────────────────────────────────────────────────────────────────────
> │ > │ <div class="mermaidMarkdownContainer" 
> │ > style="background-color:white">
> │ > │ <link rel="stylesheet" 
> │ > 
> href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css"
> │ > >
> │ > │ <div 
> id="86aad4a755da493fb3a7bb8cf988ab36"></div>
> │ > │ <script type="module">
> │ > │ 
> │ > │             import mermaid from 
> │ > 
> 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs';
> │ > │             let renderTarget = 
> │ > 
> document.getElementById('86aad4a755da493fb3a7bb8cf988ab36');
> │ > │             try {
> │ > │                 const {svg, 
> bindFunctions} = await 
> │ > mermaid.mermaidAPI.render( 
> │ > │                     
> │ > 'mermaid_86aad4a755da493fb3a7bb8cf988ab36', 
> │ > │                     `graph TD
> │ > │     zeta("zeta()") --> convert
> │ > │     zeta --> f["f()"]
> │ > │     f --> mpc_f["mpc_zeta()"]
> │ > │     f --> mpf_f["mpf_zeta()"]
> │ > │     convert --> from_float
> │ > │     from_float --> from_man_exp
> │ > │     from_man_exp --> python_bitcount
> │ > │     python_bitcount --> _normalize
> │ > │     _normalize --> make_mpc
> │ > │     make_mpc --> 
> mpc_zeta["mpc_zeta()"]
> │ > │     mpc_zeta --> 
> mpf_zeta["mpf_zeta()"]
> │ > │     mpf_zeta --> to_int
> │ > │     to_int --> 
> mpf_zeta_int["mpf_zeta_int()"]
> │ > │     mpf_zeta_int --> 
> borwein_coefficients
> │ > │     borwein_coefficients --> 
> │ > from_man_exp_2("from_man_exp()")
> │ > │     from_man_exp_2 --> 
> │ > python_bitcount_2("python_bitcount()")
> │ > │     python_bitcount_2 --> 
> _normalize_2("_normalize()")
> │ > │     _normalize_2 --> 
> make_mpc_2("make_mpc()")
> │ > │     make_mpc_2 --> stop_trace
> │ > │     mpf_zeta_int --> mpf_bernoulli
> │ > │     mpf_bernoulli --> bernoulli_size
> │ > │     bernoulli_size --> mpf_rdiv_int
> │ > │     mpf_rdiv_int --> 
> python_bitcount_3("python_bitcount()")
> │ > │     python_bitcount_3 --> _normalize1
> │ > │     _normalize1 --> 
> from_man_exp_3("from_man_exp()")
> │ > │     from_man_exp_3 --> 
> _normalize_3("_normalize()")
> │ > │     _normalize_3 --> mpf_sub
> │ > │     mpf_sub --> mpf_add
> │ > │     mpf_add --> mpf_neg
> │ > │     mpf_neg --> 
> _normalize1_2("_normalize1()")
> │ > │     _normalize1_2 --> from_int
> │ > │     from_int --> mpf_div
> │ > │     mpf_div --> 
> python_bitcount_4("python_bitcount()")
> │ > │     python_bitcount_4 --> 
> _normalize1_3("_normalize1()")
> │ > │     _normalize1_3 --> 
> make_mpc_3("make_mpc()")
> │ > │     make_mpc_3 --> 
> final_stop["stop_trace()"]`);
> │ > │                 renderTarget.innerHTML
> = svg;
> │ > │                 
> bindFunctions?.(renderTarget);
> │ > │             }
> │ > │             catch (error) {
> │ > │                 console.log(error);
> │ > │             }
> │ > │ </script>
> │ > │ </div>
> │ > │ 
> │ > 
> │ > ── mermaid 
> ─────────────────────────────────────────────────────────────────────
> │ > │ <div class="mermaidMarkdownContainer" 
> │ > style="background-color:white">
> │ > │ <link rel="stylesheet" 
> │ > 
> href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css"
> │ > >
> │ > │ <div 
> id="3d1ab463793e493590419454e4bb0eb7"></div>
> │ > │ <script type="module">
> │ > │ 
> │ > │             import mermaid from 
> │ > 
> 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs';
> │ > │             let renderTarget = 
> │ > 
> document.getElementById('3d1ab463793e493590419454e4bb0eb7');
> │ > │             try {
> │ > │                 const {svg, 
> bindFunctions} = await 
> │ > mermaid.mermaidAPI.render( 
> │ > │                     
> │ > 'mermaid_3d1ab463793e493590419454e4bb0eb7', 
> │ > │                     `graph TD
> │ > │     zeta_rust("zeta() - Rust") --> 
> num_traits("num-traits")
> │ > │     zeta_rust --> 
> num_bigint("num-bigint")
> │ > │     zeta_rust --> 
> rust_decimal("rust_decimal for 
> │ > precision")
> │ > │     zeta_rust --> error_handling("Rust
> Error Handling")
> │ > │ 
> │ > │     num_traits --> 
> num_traits_usage("Use for common 
> │ > traits")
> │ > │     num_bigint --> 
> bigint_operations("Arbitrary-precision 
> │ > arithmetic operations")
> │ > │     rust_decimal --> 
> decimal_operations("High-precision 
> │ > decimal operations")
> │ > │     error_handling --> 
> result_type("Use Result<T, E> for 
> │ > error handling")
> │ > │ 
> │ > │     bigint_operations --> 
> convert_rust("convert() - Rust")
> │ > │     bigint_operations --> 
> normalize_rust("_normalize() - 
> │ > Rust")
> │ > │ 
> │ > │     convert_rust --> 
> from_float_rust("from_float() - Rust")
> │ > │     from_float_rust --> 
> from_man_exp_rust("from_man_exp() -
> │ > Rust")
> │ > │     from_man_exp_rust --> 
> bitcount_rust("bitcount() - 
> │ > Rust")
> │ > │     bitcount_rust --> normalize_rust
> │ > │     normalize_rust --> 
> mpc_zeta_rust("mpc_zeta() - Rust")
> │ > │     mpc_zeta_rust --> 
> mpf_zeta_rust("mpf_zeta() - Rust")
> │ > │     mpf_zeta_rust --> 
> to_int_rust("to_int() - Rust")
> │ > │     to_int_rust --> 
> mpf_zeta_int_rust("mpf_zeta_int() - 
> │ > Rust")
> │ > │ 
> │ > │     mpf_zeta_int_rust --> 
> │ > borwein_coefficients_rust("borwein_coefficients() - Rust")
> │ > │     borwein_coefficients_rust --> 
> │ > from_man_exp_rust_2("from_man_exp() - Rust")
> │ > │     from_man_exp_rust_2 --> 
> bitcount_rust_2("bitcount() - 
> │ > Rust")
> │ > │     bitcount_rust_2 --> 
> normalize_rust_2("_normalize() - 
> │ > Rust")
> │ > │     normalize_rust_2 --> 
> make_mpc_rust("make_mpc() - Rust")
> │ > │ 
> │ > │     mpf_zeta_int_rust --> 
> │ > mpf_bernoulli_rust("mpf_bernoulli() - Rust")
> │ > │     mpf_bernoulli_rust --> 
> │ > bernoulli_size_rust("bernoulli_size() - Rust")
> │ > │     bernoulli_size_rust --> 
> │ > mpf_rdiv_int_rust("mpf_rdiv_int() - Rust")
> │ > │     mpf_rdiv_int_rust --> 
> bitcount_rust_3("bitcount() - 
> │ > Rust")
> │ > │     bitcount_rust_3 --> 
> normalize1_rust("_normalize1() - 
> │ > Rust")
> │ > │     normalize1_rust --> 
> from_man_exp_rust_3("from_man_exp()
> │ > - Rust")
> │ > │     from_man_exp_rust_3 --> 
> normalize_rust_3("_normalize() 
> │ > - Rust")
> │ > │     normalize_rust_3 --> 
> mpf_sub_rust("mpf_sub() - Rust")
> │ > │     mpf_sub_rust --> 
> mpf_add_rust("mpf_add() - Rust")
> │ > │     mpf_add_rust --> 
> mpf_neg_rust("mpf_neg() - Rust")
> │ > │     mpf_neg_rust --> 
> normalize1_rust_2("_normalize1() - 
> │ > Rust")
> │ > │     normalize1_rust_2 --> 
> from_int_rust("from_int() - 
> │ > Rust")
> │ > │     from_int_rust --> 
> mpf_div_rust("mpf_div() - Rust")
> │ > │     mpf_div_rust --> 
> bitcount_rust_4("bitcount() - Rust")
> │ > │     bitcount_rust_4 --> 
> normalize1_rust_3("_normalize1() - 
> │ > Rust")
> │ > │ 
> │ > │     style zeta_rust 
> fill:#f9f,stroke:#333,stroke-width:4px
> │ > │     style num_traits 
> fill:#bbf,stroke:#333,stroke-width:2px
> │ > │     style num_bigint 
> fill:#bbf,stroke:#333,stroke-width:2px
> │ > │     style rust_decimal 
> │ > fill:#bbf,stroke:#333,stroke-width:2px
> │ > │     style error_handling 
> │ > fill:#bbf,stroke:#333,stroke-width:2px
> │ > │     style bigint_operations 
> │ > fill:#bfb,stroke:#333,stroke-width:2px
> │ > │     style decimal_operations 
> │ > fill:#bfb,stroke:#333,stroke-width:2px
> │ > │     style result_type 
> │ > fill:#bfb,stroke:#333,stroke-width:2px`);
> │ > │                 renderTarget.innerHTML
> = svg;
> │ > │                 
> bindFunctions?.(renderTarget);
> │ > │             }
> │ > │             catch (error) {
> │ > │                 console.log(error);
> │ > │             }
> │ > │ </script>
> │ > │ </div>
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## tests
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl tests () =
> │ >     testing.run_tests_log {
> │ >         test_zeta_at_known_values_
> │ >         test_zeta_at_2_minus2
> │ >         test_trivial_zero_at_negative_even___
> │ >         test_non_trivial_zero___
> │ >         test_real_part_greater_than_one___
> │ >         test_zeta_at_1___
> │ >         test_symmetry_across_real_axis___
> │ >         test_behavior_near_origin___
> │ >         test_imaginary_axis
> │ >         test_critical_strip
> │ >         test_reflection_formula_for_specific_value
> │ >         test_euler_product_formula
> │ >     }
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > ///! _
> │ > 
> │ > inl main (_args : array_base string) =
> │ >     inl value = 1i32
> │ >     console.write_line ($'$"value: {!value}"' : string)
> │ >     0i32
> │ > 
> │ > inl main () =
> │ >     $'let tests () = !tests ()' : ()
> │ >     $'let main args = !main args' : ()
> │ 00:03:04 v #3 runtime.execute_with_options / result / {
> exit_code = 0; std_trace_length = 76840 }
> │ 00:03:04 d #4 runtime.execute_with_options / { 
> file_name = jupyter; arguments = ["nbconvert", 
> "c:/home/git/polyglot/lib/math/math.dib.ipynb", "--to", "html", 
> "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert 
> "c:/home/git/polyglot/lib/math/math.dib.ipynb" --to html 
> --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:03:06 v #5 ! [NbConvertApp] Converting notebook 
> c:/home/git/polyglot/lib/math/math.dib.ipynb to html
> │ 00:03:06 v #6 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.
> py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a 
> hard error in future nbformat versions. You may want to use `normalize()` on 
> your notebooks before validations (available since nbformat 5.1.4). Previous 
> versions of nbformat are fixing this issue transparently, and will stop doing so
> in the future.
> │ 00:03:06 v #7 !   validate(nb)
> │ 00:03:06 v #8 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\
> highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python
> 3
> │ 00:03:06 v #9 !   return _pygments_highlight(
> │ 00:03:08 v #10 ! [NbConvertApp] Writing 7173045 bytes 
> to c:\home\git\polyglot\lib\math\math.dib.html
> │ 00:03:08 v #11 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 847 }
> │ 00:03:08 d #12 spiral.run / dib / jupyter nbconvert / {
> exit_code = 0; jupyter_result_length = 847 }
> │ 00:03:08 d #13 runtime.execute_with_options / { 
> file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 
> 'c:/home/git/polyglot/lib/math/math.dib.html'; (Get-Content $path -Raw) -replace
> '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | 
> Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 
> 'c:/home/git/polyglot/lib/math/math.dib.html'; (Get-Content $path -Raw) -replace
> '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | 
> Set-Content $path"; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:03:08 v #14 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 0 }
> │ 00:03:08 d #15 spiral.run / dib / html cell ids / { 
> exit_code = 0; pwsh_replace_html_result_length = 0 }
> │ 00:03:08 d #16 spiral.run / dib / { exit_code = 0; 
> result_length = 77746 }
> │ 00:00:00 d #1 writeDibCode / output: Spi / path: 
> math.dib
> │ 00:00:00 d #2 parseDibCode / output: Spi / file: 
> math.dib
> │ 00:00:00 d #1 persistCodeProject / packages: 
> [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; 
> deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: 
> math / hash:  / code.Length: 276129
> │ 00:00:00 d #2 buildProject / fullPath: 
> c:\home\git\polyglot\target\Builder\math\math.fsproj
> │ 00:00:00 d #1 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   "publish 
> "c:/home/git\polyglot\target/Builder\math\math.fsproj" --configuration Release 
> --output "C:\home\git\polyglot\lib\math\dist" --runtime linux-x64"; options = { 
> command = dotnet publish "c:/home/git\polyglot\target/Builder\math\math.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\lib\math\dist" --runtime 
> linux-x64; cancellation_token = None; environment_variables = [||]; on_line = 
> None; stdin = None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\math" } }
> │ 00:00:01 v #2 >   Determining projects to restore...
> │ 00:00:01 v #3 >   Paket version 
> 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ 00:00:01 v #4 >   The last full restore is still up to 
> date. Nothing left to do.
> │ 00:00:01 v #5 >   Total time taken: 0 milliseconds
> │ 00:00:01 v #6 >   Paket version 
> 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ 00:00:02 v #7 >   Restoring 
> c:\home\git\polyglot\target\Builder\math\math.fsproj
> │ 00:00:02 v #8 >   Starting restore process.
> │ 00:00:02 v #9 >   Total time taken: 0 milliseconds
> │ 00:00:02 v #10 >   Restored 
> c:\home\git\polyglot\target\Builder\math\math.fsproj (in 298 ms).
> │ 00:00:16 v #11 >   math -> 
> c:\home\git\polyglot\target\Builder\math\bin\Release\net9.0\linux-x64\math.dll
> │ 00:00:17 v #12 >   math -> 
> C:\home\git\polyglot\lib\math\dist\
> │ 00:00:18 d #13 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 602; options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\math\math.fsproj" --configuration Release 
> --output "C:\home\git\polyglot\lib\math\dist" --runtime linux-x64; 
> cancellation_token = None; environment_variables = [||]; on_line = None; stdin =
> None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\math" } }
> │ 00:00:18 d #14 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   "publish 
> "c:/home/git\polyglot\target/Builder\math\math.fsproj" --configuration Release 
> --output "C:\home\git\polyglot\lib\math\dist" --runtime win-x64"; options = { 
> command = dotnet publish "c:/home/git\polyglot\target/Builder\math\math.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\lib\math\dist" --runtime 
> win-x64; cancellation_token = None; environment_variables = [||]; on_line = 
> None; stdin = None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\math" } }
> │ 00:00:18 v #15 >   Determining projects to restore...
> │ 00:00:19 v #16 >   Paket version 
> 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ 00:00:19 v #17 >   The last full restore is still up to 
> date. Nothing left to do.
> │ 00:00:19 v #18 >   Total time taken: 0 milliseconds
> │ 00:00:19 v #19 >   Restored 
> c:\home\git\polyglot\target\Builder\math\math.fsproj (in 287 ms).
> │ 00:00:32 v #20 >   math -> 
> c:\home\git\polyglot\target\Builder\math\bin\Release\net9.0\win-x64\math.dll
> │ 00:00:34 v #21 >   math -> 
> C:\home\git\polyglot\lib\math\dist\
> │ 00:00:34 d #22 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 409; options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\math\math.fsproj" --configuration Release 
> --output "C:\home\git\polyglot\lib\math\dist" --runtime win-x64; 
> cancellation_token = None; environment_variables = [||]; on_line = None; stdin =
> None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\math" } }
> │ spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: 
> C:\home\git\polyglot\target\Builder\math
> │ polyglot/scripts/core.ps1/ResolveLink #4 / Path: 
> C:\home\git\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target:
> / path_target: C:\home\git\polyglot / parent: 
> C:\home\git\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot
> │ spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: 
> C:\home\git\polyglot\target\Builder\math / ProjectName: math / Language: rs / 
> Runtime:  / root: C:\home\git\polyglot
> │ Fable 5.0.0-alpha.9: F# to Rust compiler (status: alpha)
> │ 
> │ Thanks to the contributor! @Krzysztof-Cieslak
> │ Stand with Ukraine! https://standwithukraine.com.ua/
> │ 
> │ Parsing target\Builder\math\math.fsproj...
> │ Project and references (14 source files) parsed in 2819ms
> │ 
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.JSInt
> erop.dll for Fable plugins, skipping this assembly. Original error: The 
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Routing.dll for Fable plugins, skipping this assembly. Original error: The
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Routing.Abstractions.dll for Fable plugins, skipping this assembly. 
> Original error: The exception has been reported. This internal exception should 
> now be caught at an error recovery point on the stack. Original message: The 
> type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You 
> must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.ViewFeatures.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.dll for Fable plugins, skipping this assembly. Original error: The 
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.Core.dll for Fable plugins, skipping this assembly. Original error: 
> The exception has been reported. This internal exception should now be caught at
> an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Http.Abstractions.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.Forms.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.Endpoints.dll for Fable plugins, skipping this assembly. 
> Original error: The exception has been reported. This internal exception should 
> now be caught at an error recovery point on the stack. Original message: The 
> type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You 
> must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.dll for Fable plugins, skipping this assembly. Original error: 
> The exception has been reported. This internal exception should now be caught at
> an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ 
> │ Started Fable compilation...
> │ 
> │ Fable compilation finished in 11665ms
> │ 
> │ .\deps\spiral\lib\spiral\sm.fsx(561,0): (561,2) warning 
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\common.fsx(2199,0): (2199,2) warning
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\async_.fsx(250,0): (250,2) warning 
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\threading.fsx(139,0): (139,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\crypto.fsx(2426,0): (2426,2) warning
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\date_time.fsx(2546,0): (2546,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\platform.fsx(121,0): (121,2) warning
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\networking.fsx(5050,0): (5050,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\trace.fsx(2232,0): (2232,2) warning 
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\runtime.fsx(7321,0): (7321,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\file_system.fsx(19036,0): (19036,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\target\Builder\math\math.fs(46,0): (48,3) warning FABLE: 
> For Rust, support for F# static and module do bindings is disabled by default. 
> It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
> │ polyglot/lib/math/build.ps1 / path: 
> C:\home\git\polyglot\target\Builder\math/target/rs/math.rs
> │ warning: 
> C:\home\git\polyglot\examples\rust\exercism\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: C:\home\git\polyglot\lib\math\Cargo.toml: the 
> cargo feature `edition2024` has been stabilized in the 1.85 release and is no 
> longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> C:\home\git\polyglot\apps\spiral\temp\extension\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> C:\home\git\polyglot\apps\chat\contract\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> C:\home\git\polyglot\apps\chat\contract\tests\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: C:\home\git\polyglot\apps\plot\Cargo.toml: the 
> cargo feature `edition2024` has been stabilized in the 1.85 release and is no 
> longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: C:\home\git\polyglot\workspace\Cargo.toml: the 
> cargo feature `edition2024` has been stabilized in the 1.85 release and is no 
> longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> C:\home\git\polyglot\apps\spiral\temp\cube\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> C:\home\git\polyglot\apps\spiral\temp\test\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │    Compiling pyo3-build-config v0.23.3
> │    Compiling fable_library_rust v0.1.0 
> (C:\home\git\polyglot\lib\rust\fable\fable_modules\fable-library-rust)
> │    Compiling pyo3-macros-backend v0.23.3
> │    Compiling pyo3-ffi v0.23.3
> │    Compiling pyo3 v0.23.3
> │    Compiling pyo3-macros v0.23.3
> │    Compiling math v0.0.1 
> (C:\home\git\polyglot\lib\math)
> │     Finished `release` profile [optimized] target(s) in 
> 26.06s
> │      Running unittests math.rs 
> (C:\home\git\polyglot\workspace\target\release\deps\math-7035482ad4544907.exe)
> │ 
> │ running 12 tests
> │ test module_728458a3::Math::test_behavior_near_origin___ ... 
> ok
> │ test 
> module_728458a3::Math::test_real_part_greater_than_one___ ... ok
> │ test module_728458a3::Math::test_symmetry_across_real_axis___
> ... ok
> │ test module_728458a3::Math::test_zeta_at_1___ ... ok
> │ test module_728458a3::Math::test_zeta_at_2_minus2 ... ok
> │ test module_728458a3::Math::test_zeta_at_known_values_ ... ok
> │ test module_728458a3::Math::test_critical_strip ... ok
> │ test module_728458a3::Math::test_imaginary_axis ... ok
> │ test module_728458a3::Math::test_euler_product_formula ... ok
> │ test 
> module_728458a3::Math::test_trivial_zero_at_negative_even___ ... ok
> │ test module_728458a3::Math::test_non_trivial_zero___ ... ok
> │ test 
> module_728458a3::Math::test_reflection_formula_for_specific_value ... ok
> │ 
> │ test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 
> 0 filtered out; finished in 1.21s
> │ 
> │ polyglot/lib/math/build.ps1 / $targetDir: 
> C:\home\git\polyglot\target\Builder\math / $projectName: math / $env:CI:''
> │ 
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> { pwsh ../apps/plot/build.ps1 } | Invoke-Block
> 
> ── [ 26.22s - stdout ] ─────────────────────────────────────────────────────────
> │ warning: 
> C:\home\git\polyglot\apps\spiral\temp\extension\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: C:\home\git\polyglot\apps\plot\Cargo.toml: the 
> cargo feature `edition2024` has been stabilized in the 1.85 release and is no 
> longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> C:\home\git\polyglot\apps\spiral\temp\test\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> C:\home\git\polyglot\apps\spiral\temp\cube\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> C:\home\git\polyglot\apps\chat\contract\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> C:\home\git\polyglot\examples\rust\exercism\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: C:\home\git\polyglot\workspace\Cargo.toml: the 
> cargo feature `edition2024` has been stabilized in the 1.85 release and is no 
> longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: C:\home\git\polyglot\lib\math\Cargo.toml: the 
> cargo feature `edition2024` has been stabilized in the 1.85 release and is no 
> longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> C:\home\git\polyglot\apps\chat\contract\tests\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │    Compiling fable_library_rust v0.1.0 
> (C:\home\git\polyglot\lib\rust\fable\fable_modules\fable-library-rust)
> │    Compiling plot v0.0.1 
> (C:\home\git\polyglot\apps\plot)
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:667:
> 33
> │     |
> │ 667 |         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │     |                                 ^
> ^
> │     |
> │     = note: `#[warn(unused_parens)]` on by default
> │ help: remove these parentheses
> │     |
> │ 667 -         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │ 667 +         let v4: string = 
> append(v0.l0.get().clone(), (v1));
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:667:
> 56
> │     |
> │ 667 |         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │     |
> ^  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 667 -         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │ 667 +         let v4: string = 
> append((v0.l0.get().clone()), v1);
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:749:
> 13
> │     |
> │ 749 |             (append(
> │     |             ^
> │ ...
> │ 761 |             )),
> │     |              ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 749 ~             append(
> │ 750 |                 (append(
> │ ...
> │ 760 |                 string(" / "),
> │ 761 ~             ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:762:
> 13
> │     |
> │ 762 |             (v180),
> │     |             ^    ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 762 -             (v180),
> │ 762 +             v180,
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:750:
> 17
> │     |
> │ 750 |                 (append(
> │     |                 ^
> │ ...
> │ 759 |                 )),
> │     |                  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 750 ~                 append(
> │ 751 |                     (append(
> │ ...
> │ 758 |                     
> string("networking.test_port_open"),
> │ 759 ~                 ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:751:
> 21
> │     |
> │ 751 |                     (append(
> │     |                     ^
> │ ...
> │ 757 |                     )),
> │     |                      ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 751 ~                     append(
> │ 752 |                         (append(
> │ ...
> │ 756 |                         string(" "),
> │ 757 ~                     ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:752:
> 25
> │     |
> │ 752 |                         (append(
> │     |                         ^
> │ ...
> │ 755 |                         )),
> │     |                          ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 752 ~                         append(
> │ 753 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 754 |                             
> (toString(v0.l0.get().clone())),
> │ 755 ~                         ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:753:
> 29
> │     |
> │ 753 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 753 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 753 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:754:
> 29
> │     |
> │ 754 | ...                   
> (toString(v0.l0.get().clone())),
> │     |                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 754 -                             
> (toString(v0.l0.get().clone())),
> │ 754 +                             
> toString(v0.l0.get().clone()),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:753:
> 37
> │     |
> │ 753 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                               ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 753 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 753 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:753:
> 45
> │     |
> │ 753 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 753 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 753 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:753:
> 74
> │     |
> │ 753 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |
> ^  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 753 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 753 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:753:
> 53
> │     |
> │ 753 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                                               ^  
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 753 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 753 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:905:
> 13
> │     |
> │ 905 |             (append(
> │     |             ^
> │ ...
> │ 917 |             )),
> │     |              ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 905 ~             append(
> │ 906 |                 (append(
> │ ...
> │ 916 |                 string(" / "),
> │ 917 ~             ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:918:
> 13
> │     |
> │ 918 |             (v107),
> │     |             ^    ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 918 -             (v107),
> │ 918 +             v107,
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:906:
> 17
> │     |
> │ 906 |                 (append(
> │     |                 ^
> │ ...
> │ 915 |                 )),
> │     |                  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 906 ~                 append(
> │ 907 |                     (append(
> │ ...
> │ 914 |                     
> string("async.run_with_timeout_async"),
> │ 915 ~                 ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:907:
> 21
> │     |
> │ 907 |                     (append(
> │     |                     ^
> │ ...
> │ 913 |                     )),
> │     |                      ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 907 ~                     append(
> │ 908 |                         (append(
> │ ...
> │ 912 |                         string(" "),
> │ 913 ~                     ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:908:
> 25
> │     |
> │ 908 |                         (append(
> │     |                         ^
> │ ...
> │ 911 |                         )),
> │     |                          ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 908 ~                         append(
> │ 909 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 910 |                             
> (toString(v0.l0.get().clone())),
> │ 911 ~                         ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:909:
> 29
> │     |
> │ 909 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 909 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 909 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:910:
> 29
> │     |
> │ 910 | ...                   
> (toString(v0.l0.get().clone())),
> │     |                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 910 -                             
> (toString(v0.l0.get().clone())),
> │ 910 +                             
> toString(v0.l0.get().clone()),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:909:
> 37
> │     |
> │ 909 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                               ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 909 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 909 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:909:
> 45
> │     |
> │ 909 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 909 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 909 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:909:
> 74
> │     |
> │ 909 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |
> ^  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 909 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 909 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:909:
> 53
> │     |
> │ 909 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                                               ^  
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 909 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 909 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1023
> :13
> │      |
> │ 1023 |             (append(
> │      |             ^
> │ ...
> │ 1035 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1023 ~             append(
> │ 1024 |                 (append(
> │  ...
> │ 1034 |                 string(" / "),
> │ 1035 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1036
> :13
> │      |
> │ 1036 |             (v180),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1036 -             (v180),
> │ 1036 +             v180,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1024
> :17
> │      |
> │ 1024 |                 (append(
> │      |                 ^
> │ ...
> │ 1033 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1024 ~                 append(
> │ 1025 |                     (append(
> │  ...
> │ 1032 |                     
> string("async.run_with_timeout_async**"),
> │ 1033 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1025
> :21
> │      |
> │ 1025 |                     (append(
> │      |                     ^
> │ ...
> │ 1031 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1025 ~                     append(
> │ 1026 |                         (append(
> │  ...
> │ 1030 |                         string(" "),
> │ 1031 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1026
> :25
> │      |
> │ 1026 |                         (append(
> │      |                         ^
> │ ...
> │ 1029 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1026 ~                         append(
> │ 1027 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1028 |                             
> (toString(v0.l0.get().clone())),
> │ 1029 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1027
> :29
> │      |
> │ 1027 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1027 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1027 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1028
> :29
> │      |
> │ 1028 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1028 -                             
> (toString(v0.l0.get().clone())),
> │ 1028 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1027
> :37
> │      |
> │ 1027 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1027 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1027 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1027
> :45
> │      |
> │ 1027 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1027 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1027 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1027
> :74
> │      |
> │ 1027 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1027 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1027 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1027
> :53
> │      |
> │ 1027 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1027 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1027 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1206
> :13
> │      |
> │ 1206 |             (append(
> │      |             ^
> │ ...
> │ 1218 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1206 ~             append(
> │ 1207 |                 (append(
> │  ...
> │ 1217 |                 string(" / "),
> │ 1218 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1219
> :13
> │      |
> │ 1219 |             (v367),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1219 -             (v367),
> │ 1219 +             v367,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1207
> :17
> │      |
> │ 1207 |                 (append(
> │      |                 ^
> │ ...
> │ 1216 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1207 ~                 append(
> │ 1208 |                     (append(
> │  ...
> │ 1215 |                     
> string("networking.wait_for_port_access"),
> │ 1216 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1208
> :21
> │      |
> │ 1208 |                     (append(
> │      |                     ^
> │ ...
> │ 1214 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1208 ~                     append(
> │ 1209 |                         (append(
> │  ...
> │ 1213 |                         string(" "),
> │ 1214 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1209
> :25
> │      |
> │ 1209 |                         (append(
> │      |                         ^
> │ ...
> │ 1212 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1209 ~                         append(
> │ 1210 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1211 |                             
> (toString(v0.l0.get().clone())),
> │ 1212 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1210
> :29
> │      |
> │ 1210 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1210 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1210 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1211
> :29
> │      |
> │ 1211 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1211 -                             
> (toString(v0.l0.get().clone())),
> │ 1211 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1210
> :37
> │      |
> │ 1210 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1210 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1210 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1210
> :45
> │      |
> │ 1210 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1210 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1210 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1210
> :74
> │      |
> │ 1210 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1210 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1210 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:1210
> :53
> │      |
> │ 1210 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1210 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1210 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:837:33[0
> m
> │     |
> │ 837 |         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │     |                                 ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 837 -         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │ 837 +         let v4: string = 
> append(v0.l0.get().clone(), (v1));
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:837:56[0
> m
> │     |
> │ 837 |         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │     |
> ^  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 837 -         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │ 837 +         let v4: string = 
> append((v0.l0.get().clone()), v1);
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:881:13[0
> m
> │     |
> │ 881 |             (append(
> │     |             ^
> │ ...
> │ 893 |             )),
> │     |              ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 881 ~             append(
> │ 882 |                 (append(
> │ ...
> │ 892 |                 string(" / "),
> │ 893 ~             ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:894:13[0
> m
> │     |
> │ 894 |             (v10),
> │     |             ^   ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 894 -             (v10),
> │ 894 +             v10,
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:882:17[0
> m
> │     |
> │ 882 |                 (append(
> │     |                 ^
> │ ...
> │ 891 |                 )),
> │     |                  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 882 ~                 append(
> │ 883 |                     (append(
> │ ...
> │ 890 |                     
> string("runtime.current_process_kill / exiting... 3"),
> │ 891 ~                 ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:883:21[0
> m
> │     |
> │ 883 |                     (append(
> │     |                     ^
> │ ...
> │ 889 |                     )),
> │     |                      ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 883 ~                     append(
> │ 884 |                         (append(
> │ ...
> │ 888 |                         string(" "),
> │ 889 ~                     ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:884:25[0
> m
> │     |
> │ 884 |                         (append(
> │     |                         ^
> │ ...
> │ 887 |                         )),
> │     |                          ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 884 ~                         append(
> │ 885 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 886 |                             
> (toString(v0.l0.get().clone())),
> │ 887 ~                         ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:885:29[0
> m
> │     |
> │ 885 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 885 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 885 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:886:29[0
> m
> │     |
> │ 886 | ...                   
> (toString(v0.l0.get().clone())),
> │     |                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 886 -                             
> (toString(v0.l0.get().clone())),
> │ 886 +                             
> toString(v0.l0.get().clone()),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:885:37[0
> m
> │     |
> │ 885 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                               ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 885 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 885 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:885:45[0
> m
> │     |
> │ 885 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 885 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 885 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:885:74[0
> m
> │     |
> │ 885 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |
> ^  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 885 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 885 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:885:53[0
> m
> │     |
> │ 885 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                                               ^  
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 885 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 885 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:979:13[0
> m
> │     |
> │ 979 |             (append(
> │     |             ^
> │ ...
> │ 991 |             )),
> │     |              ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 979 ~             append(
> │ 980 |                 (append(
> │ ...
> │ 990 |                 string(" / "),
> │ 991 ~             ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:992:13[0
> m
> │     |
> │ 992 |             (v10),
> │     |             ^   ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 992 -             (v10),
> │ 992 +             v10,
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:980:17[0
> m
> │     |
> │ 980 |                 (append(
> │     |                 ^
> │ ...
> │ 989 |                 )),
> │     |                  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 980 ~                 append(
> │ 981 |                     (append(
> │ ...
> │ 988 |                     
> string("runtime.current_process_kill / exiting... 2"),
> │ 989 ~                 ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:981:21[0
> m
> │     |
> │ 981 |                     (append(
> │     |                     ^
> │ ...
> │ 987 |                     )),
> │     |                      ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 981 ~                     append(
> │ 982 |                         (append(
> │ ...
> │ 986 |                         string(" "),
> │ 987 ~                     ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:982:25[0
> m
> │     |
> │ 982 |                         (append(
> │     |                         ^
> │ ...
> │ 985 |                         )),
> │     |                          ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 982 ~                         append(
> │ 983 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 984 |                             
> (toString(v0.l0.get().clone())),
> │ 985 ~                         ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:983:29[0
> m
> │     |
> │ 983 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 983 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 983 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:984:29[0
> m
> │     |
> │ 984 | ...                   
> (toString(v0.l0.get().clone())),
> │     |                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 984 -                             
> (toString(v0.l0.get().clone())),
> │ 984 +                             
> toString(v0.l0.get().clone()),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:983:37[0
> m
> │     |
> │ 983 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                               ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 983 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 983 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:983:45[0
> m
> │     |
> │ 983 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 983 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 983 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:983:74[0
> m
> │     |
> │ 983 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |
> ^  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 983 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 983 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:983:53[0
> m
> │     |
> │ 983 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                                               ^  
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 983 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 983 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1042:13[
> 0m
> │      |
> │ 1042 |             (append(
> │      |             ^
> │ ...
> │ 1054 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1042 ~             append(
> │ 1043 |                 (append(
> │  ...
> │ 1053 |                 string(" / "),
> │ 1054 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1055:13[
> 0m
> │      |
> │ 1055 |             (v10),
> │      |             ^   ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1055 -             (v10),
> │ 1055 +             v10,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1043:17[
> 0m
> │      |
> │ 1043 |                 (append(
> │      |                 ^
> │ ...
> │ 1052 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1043 ~                 append(
> │ 1044 |                     (append(
> │  ...
> │ 1051 |                     
> string("runtime.current_process_kill / exiting... 1"),
> │ 1052 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1044:21[
> 0m
> │      |
> │ 1044 |                     (append(
> │      |                     ^
> │ ...
> │ 1050 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1044 ~                     append(
> │ 1045 |                         (append(
> │  ...
> │ 1049 |                         string(" "),
> │ 1050 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1045:25[
> 0m
> │      |
> │ 1045 |                         (append(
> │      |                         ^
> │ ...
> │ 1048 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1045 ~                         append(
> │ 1046 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1047 |                             
> (toString(v0.l0.get().clone())),
> │ 1048 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1046:29[
> 0m
> │      |
> │ 1046 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1046 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1046 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1047:29[
> 0m
> │      |
> │ 1047 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1047 -                             
> (toString(v0.l0.get().clone())),
> │ 1047 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1046:37[
> 0m
> │      |
> │ 1046 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1046 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1046 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1046:45[
> 0m
> │      |
> │ 1046 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1046 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1046 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1046:74[
> 0m
> │      |
> │ 1046 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1046 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1046 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1046:53[
> 0m
> │      |
> │ 1046 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1046 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1046 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1123:30[
> 0m
> │      |
> │ 1123 |             break '_method26 (match 
> v0.get().clone().as_ref() {
> │      |                              ^
> │ ...
> │ 1161 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1123 ~             break '_method26 match 
> v0.get().clone().as_ref() {
> │ 1124 |                 Runtime::UH0::UH0_0 => 
> (v1.get().clone(), v2.get().clone(), v3.get().clone()),
> │  ...
> │ 1160 |                 }
> │ 1161 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1168:58[
> 0m
> │      |
> │ 1168 |             (Runtime::method27(v0, (v1) + 
> 1_i32))(append((v2), string(" ")))
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1168 -             (Runtime::method27(v0, (v1) + 
> 1_i32))(append((v2), string(" ")))
> │ 1168 +             (Runtime::method27(v0, (v1) + 
> 1_i32))(append(v2, string(" ")))
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1231:25[
> 0m
> │      |
> │ 1231 |                         ((Runtime::method27((v3) 
> - 1_i32, 0_i32))(string(""))),
> │      |                         ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1231 -                         ((Runtime::method27((v3) 
> - 1_i32, 0_i32))(string(""))),
> │ 1231 +                         (Runtime::method27((v3) -
> 1_i32, 0_i32))(string("")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1292:25[
> 0m
> │      |
> │ 1292 |                         ((Runtime::method27((v3) 
> - 1_i32, 0_i32))(string(""))),
> │      |                         ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1292 -                         ((Runtime::method27((v3) 
> - 1_i32, 0_i32))(string(""))),
> │ 1292 +                         (Runtime::method27((v3) -
> 1_i32, 0_i32))(string("")),
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1309:30[
> 0m
> │      |
> │ 1309 |             break '_method28 (match 
> v2.get().clone().as_ref() {
> │      |                              ^
> │ ...
> │ 1340 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1309 ~             break '_method28 match 
> v2.get().clone().as_ref() {
> │ 1310 |                 Runtime::UH1::UH1_0 => {
> │  ...
> │ 1339 |                 }
> │ 1340 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1347:30[
> 0m
> │      |
> │ 1347 |             break '_method29 (if 
> (v1.get().clone()) >= 2_i64 {
> │      |                              ^
> │ ...
> │ 1378 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1347 ~             break '_method29 if 
> (v1.get().clone()) >= 2_i64 {
> │ 1348 |                 false
> │  ...
> │ 1377 |                 }
> │ 1378 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1394:30[
> 0m
> │      |
> │ 1394 |             break '_method30 ({
> │      |                              ^
> │ ...
> │ 1468 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1394 ~             break '_method30 {
> │ 1395 |                 let v98: Runtime::US7 = if 
> string("") == (v1.get().clone()) {
> │  ...
> │ 1467 |                 }
> │ 1468 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1448:36[
> 0m
> │      |
> │ 1448 | ...                   append((v0.get().clone()), 
> (ofChar(v110_0_0.clone())));
> │      |                              ^                ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1448 -                             
> append((v0.get().clone()), (ofChar(v110_0_0.clone())));
> │ 1448 +                             
> append(v0.get().clone(), (ofChar(v110_0_0.clone())));
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1448:56[
> 0m
> │      |
> │ 1448 | ...                   append((v0.get().clone()), 
> (ofChar(v110_0_0.clone())));
> │      |                                                  
> ^                        ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1448 -                             
> append((v0.get().clone()), (ofChar(v110_0_0.clone())));
> │ 1448 +                             
> append((v0.get().clone()), ofChar(v110_0_0.clone()));
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1484:30[
> 0m
> │      |
> │ 1484 |             break '_method31 (match 
> v4.get().clone().as_ref() {
> │      |                              ^
> │ ...
> │ 1519 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1484 ~             break '_method31 match 
> v4.get().clone().as_ref() {
> │ 1485 |                 Runtime::UH1::UH1_0 => {
> │  ...
> │ 1518 |                 }
> │ 1519 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1526:30[
> 0m
> │      |
> │ 1526 |             break '_method32 (if 
> (v1.get().clone()) >= 3_i64 {
> │      |                              ^
> │ ...
> │ 1562 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1526 ~             break '_method32 if 
> (v1.get().clone()) >= 3_i64 {
> │ 1527 |                 false
> │  ...
> │ 1561 |                 }
> │ 1562 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1578:30[
> 0m
> │      |
> │ 1578 |             break '_method33 ({
> │      |                              ^
> │ ...
> │ 1652 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1578 ~             break '_method33 {
> │ 1579 |                 let v106: Runtime::US7 = if 
> string("") == (v1.get().clone()) {
> │  ...
> │ 1651 |                 }
> │ 1652 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1632:36[
> 0m
> │      |
> │ 1632 | ...                   append((v0.get().clone()), 
> (ofChar(v118_0_0.clone())));
> │      |                              ^                ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1632 -                             
> append((v0.get().clone()), (ofChar(v118_0_0.clone())));
> │ 1632 +                             
> append(v0.get().clone(), (ofChar(v118_0_0.clone())));
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1632:56[
> 0m
> │      |
> │ 1632 | ...                   append((v0.get().clone()), 
> (ofChar(v118_0_0.clone())));
> │      |                                                  
> ^                        ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1632 -                             
> append((v0.get().clone()), (ofChar(v118_0_0.clone())));
> │ 1632 +                             
> append((v0.get().clone()), ofChar(v118_0_0.clone()));
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1659:30[
> 0m
> │      |
> │ 1659 |             break '_method34 (if 
> (v1.get().clone()) >= (length(v0.get().clone())) {
> │      |                              ^
> │ ...
> │ 1671 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1659 ~             break '_method34 if 
> (v1.get().clone()) >= (length(v0.get().clone())) {
> │ 1660 |                 v1.get().clone()
> │  ...
> │ 1670 |                 }
> │ 1671 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1687:30[
> 0m
> │      |
> │ 1687 |             break '_method35 ({
> │      |                              ^
> │ ...
> │ 1737 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1687 ~             break '_method35 {
> │ 1688 |                 let v66: Runtime::US7 = if 
> string("") == (v1.get().clone()) {
> │  ...
> │ 1736 |                 }
> │ 1737 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1717:54[
> 0m
> │      |
> │ 1717 |                         let v0_temp: string = 
> append((v0.get().clone()), (ofChar(v66_0_0.clone())));
> │      |
> ^                ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1717 -                         let v0_temp: string = 
> append((v0.get().clone()), (ofChar(v66_0_0.clone())));
> │ 1717 +                         let v0_temp: string = 
> append(v0.get().clone(), (ofChar(v66_0_0.clone())));
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1717:74[
> 0m
> │      |
> │ 1717 |                         let v0_temp: string = 
> append((v0.get().clone()), (ofChar(v66_0_0.clone())));
> │      |
> ^                       ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1717 -                         let v0_temp: string = 
> append((v0.get().clone()), (ofChar(v66_0_0.clone())));
> │ 1717 +                         let v0_temp: string = 
> append((v0.get().clone()), ofChar(v66_0_0.clone()));
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2094:37[
> 0m
> │      |
> │ 2094 | ...                   ((Runtime::method27((v421) 
> - 1_i32, 0_i32))(string(""))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2094 -                                     
> ((Runtime::method27((v421) - 1_i32, 0_i32))(string(""))),
> │ 2094 +                                     
> (Runtime::method27((v421) - 1_i32, 0_i32))(string("")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2468:13[
> 0m
> │      |
> │ 2468 |             (append(
> │      |             ^
> │ ...
> │ 2480 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2468 ~             append(
> │ 2469 |                 (append(
> │  ...
> │ 2479 |                 string(" / "),
> │ 2480 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2481:13[
> 0m
> │      |
> │ 2481 |             (v911),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2481 -             (v911),
> │ 2481 +             v911,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2469:17[
> 0m
> │      |
> │ 2469 |                 (append(
> │      |                 ^
> │ ...
> │ 2478 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2469 ~                 append(
> │ 2470 |                     (append(
> │  ...
> │ 2477 |                     
> string("runtime.execute_with_options_async"),
> │ 2478 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2470:21[
> 0m
> │      |
> │ 2470 |                     (append(
> │      |                     ^
> │ ...
> │ 2476 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2470 ~                     append(
> │ 2471 |                         (append(
> │  ...
> │ 2475 |                         string(" "),
> │ 2476 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2471:25[
> 0m
> │      |
> │ 2471 |                         (append(
> │      |                         ^
> │ ...
> │ 2474 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2471 ~                         append(
> │ 2472 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2473 |                             
> (toString(v0.l0.get().clone())),
> │ 2474 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2472:29[
> 0m
> │      |
> │ 2472 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2472 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2472 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2473:29[
> 0m
> │      |
> │ 2473 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2473 -                             
> (toString(v0.l0.get().clone())),
> │ 2473 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2472:37[
> 0m
> │      |
> │ 2472 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2472 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2472 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2472:45[
> 0m
> │      |
> │ 2472 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2472 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2472 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2472:74[
> 0m
> │      |
> │ 2472 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2472 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2472 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2472:53[
> 0m
> │      |
> │ 2472 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2472 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2472 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2594:13[
> 0m
> │      |
> │ 2594 |             (append(
> │      |             ^
> │ ...
> │ 2606 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2594 ~             append(
> │ 2595 |                 (append(
> │  ...
> │ 2605 |                 string(" / "),
> │ 2606 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2607:13[
> 0m
> │      |
> │ 2607 |             (v11),
> │      |             ^   ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2607 -             (v11),
> │ 2607 +             v11,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2595:17[
> 0m
> │      |
> │ 2595 |                 (append(
> │      |                 ^
> │ ...
> │ 2604 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2595 ~                 append(
> │ 2596 |                     (append(
> │  ...
> │ 2603 |                     (v8),
> │ 2604 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2596:21[
> 0m
> │      |
> │ 2596 |                     (append(
> │      |                     ^
> │ ...
> │ 2602 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2596 ~                     append(
> │ 2597 |                         (append(
> │  ...
> │ 2601 |                         string(" "),
> │ 2602 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2603:21[
> 0m
> │      |
> │ 2603 |                     (v8),
> │      |                     ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2603 -                     (v8),
> │ 2603 +                     v8,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2597:25[
> 0m
> │      |
> │ 2597 |                         (append(
> │      |                         ^
> │ ...
> │ 2600 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2597 ~                         append(
> │ 2598 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2599 |                             
> (toString(v0.l0.get().clone())),
> │ 2600 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2598:29[
> 0m
> │      |
> │ 2598 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2598 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2598 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2599:29[
> 0m
> │      |
> │ 2599 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2599 -                             
> (toString(v0.l0.get().clone())),
> │ 2599 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2598:37[
> 0m
> │      |
> │ 2598 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2598 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2598 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2598:45[
> 0m
> │      |
> │ 2598 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2598 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2598 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2598:74[
> 0m
> │      |
> │ 2598 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2598 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2598 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2598:53[
> 0m
> │      |
> │ 2598 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2598 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2598 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2755:13[
> 0m
> │      |
> │ 2755 |             (append(
> │      |             ^
> │ ...
> │ 2767 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2755 ~             append(
> │ 2756 |                 (append(
> │  ...
> │ 2766 |                 string(" / "),
> │ 2767 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2768:13[
> 0m
> │      |
> │ 2768 |             (v143),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2768 -             (v143),
> │ 2768 +             v143,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2756:17[
> 0m
> │      |
> │ 2756 |                 (append(
> │      |                 ^
> │ ...
> │ 2765 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2756 ~                 append(
> │ 2757 |                     (append(
> │  ...
> │ 2764 |                     
> string("runtime.execute_with_options_async / WaitForExitAsync"),
> │ 2765 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2757:21[
> 0m
> │      |
> │ 2757 |                     (append(
> │      |                     ^
> │ ...
> │ 2763 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2757 ~                     append(
> │ 2758 |                         (append(
> │  ...
> │ 2762 |                         string(" "),
> │ 2763 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2758:25[
> 0m
> │      |
> │ 2758 |                         (append(
> │      |                         ^
> │ ...
> │ 2761 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2758 ~                         append(
> │ 2759 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2760 |                             
> (toString(v0.l0.get().clone())),
> │ 2761 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2759:29[
> 0m
> │      |
> │ 2759 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2759 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2759 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2760:29[
> 0m
> │      |
> │ 2760 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2760 -                             
> (toString(v0.l0.get().clone())),
> │ 2760 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2759:37[
> 0m
> │      |
> │ 2759 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2759 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2759 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2759:45[
> 0m
> │      |
> │ 2759 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2759 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2759 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2759:74[
> 0m
> │      |
> │ 2759 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2759 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2759 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2759:53[
> 0m
> │      |
> │ 2759 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2759 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2759 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3030:13[
> 0m
> │      |
> │ 3030 |             (append(
> │      |             ^
> │ ...
> │ 3042 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3030 ~             append(
> │ 3031 |                 (append(
> │  ...
> │ 3041 |                 string(" / "),
> │ 3042 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3043:13[
> 0m
> │      |
> │ 3043 |             (v913),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3043 -             (v913),
> │ 3043 +             v913,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3031:17[
> 0m
> │      |
> │ 3031 |                 (append(
> │      |                 ^
> │ ...
> │ 3040 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3031 ~                 append(
> │ 3032 |                     (append(
> │  ...
> │ 3039 |                     
> string("runtime.execute_with_options_async"),
> │ 3040 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3032:21[
> 0m
> │      |
> │ 3032 |                     (append(
> │      |                     ^
> │ ...
> │ 3038 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3032 ~                     append(
> │ 3033 |                         (append(
> │  ...
> │ 3037 |                         string(" "),
> │ 3038 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3033:25[
> 0m
> │      |
> │ 3033 |                         (append(
> │      |                         ^
> │ ...
> │ 3036 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3033 ~                         append(
> │ 3034 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 3035 |                             
> (toString(v0.l0.get().clone())),
> │ 3036 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3034:29[
> 0m
> │      |
> │ 3034 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3034 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 3034 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3035:29[
> 0m
> │      |
> │ 3035 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3035 -                             
> (toString(v0.l0.get().clone())),
> │ 3035 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3034:37[
> 0m
> │      |
> │ 3034 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3034 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 3034 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3034:45[
> 0m
> │      |
> │ 3034 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3034 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 3034 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3034:74[
> 0m
> │      |
> │ 3034 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3034 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 3034 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3034:53[
> 0m
> │      |
> │ 3034 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3034 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 3034 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3191:30[
> 0m
> │      |
> │ 3191 |             break '_method57 (if 
> (v1.get().clone()) >= 4_i64 {
> │      |                              ^
> │ ...
> │ 3232 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3191 ~             break '_method57 if 
> (v1.get().clone()) >= 4_i64 {
> │ 3192 |                 false
> │  ...
> │ 3231 |                 }
> │ 3232 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3248:30[
> 0m
> │      |
> │ 3248 |             break '_method58 ({
> │      |                              ^
> │ ...
> │ 3309 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3248 ~             break '_method58 {
> │ 3249 |                 let v114: Runtime::US7 = if 
> string("") == (v1.get().clone()) {
> │  ...
> │ 3308 |                 }
> │ 3309 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3289:36[
> 0m
> │      |
> │ 3289 | ...                   append((v0.get().clone()), 
> (ofChar(v114_0_0.clone())));
> │      |                              ^                ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3289 -                             
> append((v0.get().clone()), (ofChar(v114_0_0.clone())));
> │ 3289 +                             
> append(v0.get().clone(), (ofChar(v114_0_0.clone())));
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3289:56[
> 0m
> │      |
> │ 3289 | ...                   append((v0.get().clone()), 
> (ofChar(v114_0_0.clone())));
> │      |                                                  
> ^                        ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3289 -                             
> append((v0.get().clone()), (ofChar(v114_0_0.clone())));
> │ 3289 +                             
> append((v0.get().clone()), ofChar(v114_0_0.clone()));
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3316:30[
> 0m
> │      |
> │ 3316 |             break '_method60 (if 
> (v1.get().clone()) >= 3_i64 {
> │      |                              ^
> │ ...
> │ 3352 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3316 ~             break '_method60 if 
> (v1.get().clone()) >= 3_i64 {
> │ 3317 |                 false
> │  ...
> │ 3351 |                 }
> │ 3352 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3408:25[
> 0m
> │      |
> │ 3408 |                         ((Runtime::method27((v3) 
> - 1_i32, 0_i32))(string(""))),
> │      |                         ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3408 -                         ((Runtime::method27((v3) 
> - 1_i32, 0_i32))(string(""))),
> │ 3408 +                         (Runtime::method27((v3) -
> 1_i32, 0_i32))(string("")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3451:28[
> 0m
> │      |
> │ 3451 |                     append((ofChar('\\')), 
> (ofChar(v196_0_0.clone()))),
> │      |                            ^            ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3451 -                     append((ofChar('\\')), 
> (ofChar(v196_0_0.clone()))),
> │ 3451 +                     append(ofChar('\\'), 
> (ofChar(v196_0_0.clone()))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3451:44[
> 0m
> │      |
> │ 3451 |                     append((ofChar('\\')), 
> (ofChar(v196_0_0.clone()))),
> │      |                                            ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3451 -                     append((ofChar('\\')), 
> (ofChar(v196_0_0.clone()))),
> │ 3451 +                     append((ofChar('\\')), 
> ofChar(v196_0_0.clone())),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3514:25[
> 0m
> │      |
> │ 3514 |                         ((Runtime::method27((v3) 
> - 1_i32, 0_i32))(string(""))),
> │      |                         ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3514 -                         ((Runtime::method27((v3) 
> - 1_i32, 0_i32))(string(""))),
> │ 3514 +                         (Runtime::method27((v3) -
> 1_i32, 0_i32))(string("")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3557:28[
> 0m
> │      |
> │ 3557 |                     append((ofChar('`')), 
> (ofChar(v196_0_0.clone()))),
> │      |                            ^           ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3557 -                     append((ofChar('`')), 
> (ofChar(v196_0_0.clone()))),
> │ 3557 +                     append(ofChar('`'), 
> (ofChar(v196_0_0.clone()))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3557:43[
> 0m
> │      |
> │ 3557 |                     append((ofChar('`')), 
> (ofChar(v196_0_0.clone()))),
> │      |                                           ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3557 -                     append((ofChar('`')), 
> (ofChar(v196_0_0.clone()))),
> │ 3557 +                     append((ofChar('`')), 
> ofChar(v196_0_0.clone())),
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3580:30[
> 0m
> │      |
> │ 3580 |             break '_method61 (match 
> v4.get().clone().as_ref() {
> │      |                              ^
> │ ...
> │ 3615 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3580 ~             break '_method61 match 
> v4.get().clone().as_ref() {
> │ 3581 |                 Runtime::UH3::UH3_0 => {
> │  ...
> │ 3614 |                 }
> │ 3615 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3622:30[
> 0m
> │      |
> │ 3622 |             break '_method62 (match 
> v0.get().clone().as_ref() {
> │      |                              ^
> │ ...
> │ 3642 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3622 ~             break '_method62 match 
> v0.get().clone().as_ref() {
> │ 3623 |                 Runtime::UH2::UH2_0 => 
> v1.get().clone(),
> │  ...
> │ 3641 |                 }
> │ 3642 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3658:30[
> 0m
> │      |
> │ 3658 |             break '_method59 ({
> │      |                              ^
> │ ...
> │ 3762 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3658 ~             break '_method59 {
> │ 3659 |                 let v106: Runtime::US7 = if 
> string("") == (v1.get().clone()) {
> │  ...
> │ 3761 |                 }
> │ 3762 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3798:30[
> 0m
> │      |
> │ 3798 |             break '_method64 ({
> │      |                              ^
> │ ...
> │ 3871 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3798 ~             break '_method64 {
> │ 3799 |                 let v106: Runtime::US7 = if 
> string("") == (v1.get().clone()) {
> │  ...
> │ 3870 |                 }
> │ 3871 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3887:30[
> 0m
> │      |
> │ 3887 |             break '_method56 ({
> │      |                              ^
> │ ...
> │ 4351 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3887 ~             break '_method56 {
> │ 3888 |                 let v5: bool = string("") == 
> (v1.get().clone());
> │  ...
> │ 4350 |                 }
> │ 4351 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:4003:41[
> 0m
> │      |
> │ 4003 | ...                   
> ((Runtime::method27((v4.get().clone()) - 1_i32, 0_i32))(
> │      |                       ^
> │ 4004 | ...                       string(""),
> │ 4005 | ...                   )),
> │      |                        ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 4003 ~                                         
> (Runtime::method27((v4.get().clone()) - 1_i32, 0_i32))(
> │ 4004 |                                             
> string(""),
> │ 4005 ~                                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:4131:57[
> 0m
> │      |
> │ 4131 | ...                   ((Runtime::method27(
> │      |                       ^
> │ ...
> │ 4136 | ...                   )),
> │      |                        ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 4131 ~
> (Runtime::method27(
> │ 4132 |
> (v306) - 1_i32,
> │  ...
> │ 4135 |
> string("")
> │ 4136 ~
> ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:611:33
> │     |
> │ 611 |         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │     |                                 ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 611 -         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │ 611 +         let v4: string = 
> append(v0.l0.get().clone(), (v1));
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:611:56
> │     |
> │ 611 |         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │     |
> ^  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 611 -         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │ 611 +         let v4: string = 
> append((v0.l0.get().clone()), v1);
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:776:13
> │     |
> │ 776 |             (append(
> │     |             ^
> │ ...
> │ 788 |             )),
> │     |              ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 776 ~             append(
> │ 777 |                 (append(
> │ ...
> │ 787 |                 string(" / "),
> │ 788 ~             ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:789:13
> │     |
> │ 789 |             (v29),
> │     |             ^   ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 789 -             (v29),
> │ 789 +             v29,
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:777:17
> │     |
> │ 777 |                 (append(
> │     |                 ^
> │ ...
> │ 786 |                 )),
> │     |                  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 777 ~                 append(
> │ 778 |                     (append(
> │ ...
> │ 785 |                     (v8),
> │ 786 ~                 ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:778:21
> │     |
> │ 778 |                     (append(
> │     |                     ^
> │ ...
> │ 784 |                     )),
> │     |                      ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 778 ~                     append(
> │ 779 |                         (append(
> │ ...
> │ 783 |                         string(" "),
> │ 784 ~                     ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:785:21
> │     |
> │ 785 |                     (v8),
> │     |                     ^  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 785 -                     (v8),
> │ 785 +                     v8,
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:779:25
> │     |
> │ 779 |                         (append(
> │     |                         ^
> │ ...
> │ 782 |                         )),
> │     |                          ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 779 ~                         append(
> │ 780 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 781 |                             
> (toString(v0.l0.get().clone())),
> │ 782 ~                         ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:780:29
> │     |
> │ 780 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 780 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 780 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:781:29
> │     |
> │ 781 | ...                   
> (toString(v0.l0.get().clone())),
> │     |                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 781 -                             
> (toString(v0.l0.get().clone())),
> │ 781 +                             
> toString(v0.l0.get().clone()),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:780:37
> │     |
> │ 780 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                               ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 780 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 780 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:780:45
> │     |
> │ 780 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 780 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 780 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:780:74
> │     |
> │ 780 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |
> ^  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 780 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 780 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:780:53
> │     |
> │ 780 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                                               ^  
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 780 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 780 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:890
> :33
> │     |
> │ 890 |         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │     |                                 ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 890 -         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │ 890 +         let v4: string = 
> append(v0.l0.get().clone(), (v1));
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:890
> :56
> │     |
> │ 890 |         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │     |
> ^  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 890 -         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │ 890 +         let v4: string = 
> append((v0.l0.get().clone()), v1);
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:100
> 1:13
> │      |
> │ 1001 |             (append(
> │      |             ^
> │ ...
> │ 1013 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1001 ~             append(
> │ 1002 |                 (append(
> │  ...
> │ 1012 |                 string(" / "),
> │ 1013 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:101
> 4:13
> │      |
> │ 1014 |             (v177),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1014 -             (v177),
> │ 1014 +             v177,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:100
> 2:17
> │      |
> │ 1002 |                 (append(
> │      |                 ^
> │ ...
> │ 1011 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1002 ~                 append(
> │ 1003 |                     (append(
> │  ...
> │ 1010 |                     
> string("file_system.delete_directory_async"),
> │ 1011 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:100
> 3:21
> │      |
> │ 1003 |                     (append(
> │      |                     ^
> │ ...
> │ 1009 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1003 ~                     append(
> │ 1004 |                         (append(
> │  ...
> │ 1008 |                         string(" "),
> │ 1009 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:100
> 4:25
> │      |
> │ 1004 |                         (append(
> │      |                         ^
> │ ...
> │ 1007 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1004 ~                         append(
> │ 1005 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1006 |                             
> (toString(v0.l0.get().clone())),
> │ 1007 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:100
> 5:29
> │      |
> │ 1005 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1005 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1005 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:100
> 6:29
> │      |
> │ 1006 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1006 -                             
> (toString(v0.l0.get().clone())),
> │ 1006 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:100
> 5:37
> │      |
> │ 1005 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1005 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1005 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:100
> 5:45
> │      |
> │ 1005 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1005 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1005 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:100
> 5:74
> │      |
> │ 1005 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1005 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1005 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:100
> 5:53
> │      |
> │ 1005 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1005 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1005 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:117
> 4:13
> │      |
> │ 1174 |             (append(
> │      |             ^
> │ ...
> │ 1186 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1174 ~             append(
> │ 1175 |                 (append(
> │  ...
> │ 1185 |                 string(" / "),
> │ 1186 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:118
> 7:13
> │      |
> │ 1187 |             (v251),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1187 -             (v251),
> │ 1187 +             v251,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:117
> 5:17
> │      |
> │ 1175 |                 (append(
> │      |                 ^
> │ ...
> │ 1184 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1175 ~                 append(
> │ 1176 |                     (append(
> │  ...
> │ 1183 |                     
> string("file_system.wait_for_file_access"),
> │ 1184 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:117
> 6:21
> │      |
> │ 1176 |                     (append(
> │      |                     ^
> │ ...
> │ 1182 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1176 ~                     append(
> │ 1177 |                         (append(
> │  ...
> │ 1181 |                         string(" "),
> │ 1182 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:117
> 7:25
> │      |
> │ 1177 |                         (append(
> │      |                         ^
> │ ...
> │ 1180 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1177 ~                         append(
> │ 1178 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1179 |                             
> (toString(v0.l0.get().clone())),
> │ 1180 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:117
> 8:29
> │      |
> │ 1178 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1178 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1178 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:117
> 9:29
> │      |
> │ 1179 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1179 -                             
> (toString(v0.l0.get().clone())),
> │ 1179 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:117
> 8:37
> │      |
> │ 1178 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1178 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1178 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:117
> 8:45
> │      |
> │ 1178 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1178 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1178 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:117
> 8:74
> │      |
> │ 1178 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1178 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1178 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:117
> 8:53
> │      |
> │ 1178 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1178 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1178 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:135
> 2:13
> │      |
> │ 1352 |             (append(
> │      |             ^
> │ ...
> │ 1364 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1352 ~             append(
> │ 1353 |                 (append(
> │  ...
> │ 1363 |                 string(" / "),
> │ 1364 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:136
> 5:13
> │      |
> │ 1365 |             (v290),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1365 -             (v290),
> │ 1365 +             v290,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:135
> 3:17
> │      |
> │ 1353 |                 (append(
> │      |                 ^
> │ ...
> │ 1362 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1353 ~                 append(
> │ 1354 |                     (append(
> │  ...
> │ 1361 |                     
> string("file_system.read_all_text_async"),
> │ 1362 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:135
> 4:21
> │      |
> │ 1354 |                     (append(
> │      |                     ^
> │ ...
> │ 1360 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1354 ~                     append(
> │ 1355 |                         (append(
> │  ...
> │ 1359 |                         string(" "),
> │ 1360 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:135
> 5:25
> │      |
> │ 1355 |                         (append(
> │      |                         ^
> │ ...
> │ 1358 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1355 ~                         append(
> │ 1356 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1357 |                             
> (toString(v0.l0.get().clone())),
> │ 1358 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:135
> 6:29
> │      |
> │ 1356 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1356 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1356 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:135
> 7:29
> │      |
> │ 1357 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1357 -                             
> (toString(v0.l0.get().clone())),
> │ 1357 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:135
> 6:37
> │      |
> │ 1356 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1356 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1356 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:135
> 6:45
> │      |
> │ 1356 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1356 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1356 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:135
> 6:74
> │      |
> │ 1356 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1356 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1356 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:135
> 6:53
> │      |
> │ 1356 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1356 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1356 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:156
> 3:13
> │      |
> │ 1563 |             (append(
> │      |             ^
> │ ...
> │ 1575 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1563 ~             append(
> │ 1564 |                 (append(
> │  ...
> │ 1574 |                 string(" / "),
> │ 1575 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:157
> 6:13
> │      |
> │ 1576 |             (v104),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1576 -             (v104),
> │ 1576 +             v104,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:156
> 4:17
> │      |
> │ 1564 |                 (append(
> │      |                 ^
> │ ...
> │ 1573 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1564 ~                 append(
> │ 1565 |                     (append(
> │  ...
> │ 1572 |                     
> string("file_system.file_delete"),
> │ 1573 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:156
> 5:21
> │      |
> │ 1565 |                     (append(
> │      |                     ^
> │ ...
> │ 1571 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1565 ~                     append(
> │ 1566 |                         (append(
> │  ...
> │ 1570 |                         string(" "),
> │ 1571 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:156
> 6:25
> │      |
> │ 1566 |                         (append(
> │      |                         ^
> │ ...
> │ 1569 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1566 ~                         append(
> │ 1567 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1568 |                             
> (toString(v0.l0.get().clone())),
> │ 1569 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:156
> 7:29
> │      |
> │ 1567 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1567 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1567 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:156
> 8:29
> │      |
> │ 1568 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1568 -                             
> (toString(v0.l0.get().clone())),
> │ 1568 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:156
> 7:37
> │      |
> │ 1567 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1567 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1567 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:156
> 7:45
> │      |
> │ 1567 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1567 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1567 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:156
> 7:74
> │      |
> │ 1567 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1567 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1567 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:156
> 7:53
> │      |
> │ 1567 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1567 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1567 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:168
> 4:13
> │      |
> │ 1684 |             (append(
> │      |             ^
> │ ...
> │ 1696 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1684 ~             append(
> │ 1685 |                 (append(
> │  ...
> │ 1695 |                 string(" / "),
> │ 1696 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:169
> 7:13
> │      |
> │ 1697 |             (v177),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1697 -             (v177),
> │ 1697 +             v177,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:168
> 5:17
> │      |
> │ 1685 |                 (append(
> │      |                 ^
> │ ...
> │ 1694 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1685 ~                 append(
> │ 1686 |                     (append(
> │  ...
> │ 1693 |                     
> string("delete_file_async"),
> │ 1694 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:168
> 6:21
> │      |
> │ 1686 |                     (append(
> │      |                     ^
> │ ...
> │ 1692 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1686 ~                     append(
> │ 1687 |                         (append(
> │  ...
> │ 1691 |                         string(" "),
> │ 1692 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:168
> 7:25
> │      |
> │ 1687 |                         (append(
> │      |                         ^
> │ ...
> │ 1690 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1687 ~                         append(
> │ 1688 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1689 |                             
> (toString(v0.l0.get().clone())),
> │ 1690 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:168
> 8:29
> │      |
> │ 1688 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1688 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1688 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:168
> 9:29
> │      |
> │ 1689 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1689 -                             
> (toString(v0.l0.get().clone())),
> │ 1689 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:168
> 8:37
> │      |
> │ 1688 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1688 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1688 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:168
> 8:45
> │      |
> │ 1688 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1688 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1688 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:168
> 8:74
> │      |
> │ 1688 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1688 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1688 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:168
> 8:53
> │      |
> │ 1688 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1688 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1688 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:182
> 2:13
> │      |
> │ 1822 |             (append(
> │      |             ^
> │ ...
> │ 1834 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1822 ~             append(
> │ 1823 |                 (append(
> │  ...
> │ 1833 |                 string(" / "),
> │ 1834 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:183
> 5:13
> │      |
> │ 1835 |             (v248),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1835 -             (v248),
> │ 1835 +             v248,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:182
> 3:17
> │      |
> │ 1823 |                 (append(
> │      |                 ^
> │ ...
> │ 1832 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1823 ~                 append(
> │ 1824 |                     (append(
> │  ...
> │ 1831 |                     string("move_file_async"),
> │ 1832 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:182
> 4:21
> │      |
> │ 1824 |                     (append(
> │      |                     ^
> │ ...
> │ 1830 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1824 ~                     append(
> │ 1825 |                         (append(
> │  ...
> │ 1829 |                         string(" "),
> │ 1830 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:182
> 5:25
> │      |
> │ 1825 |                         (append(
> │      |                         ^
> │ ...
> │ 1828 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1825 ~                         append(
> │ 1826 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1827 |                             
> (toString(v0.l0.get().clone())),
> │ 1828 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:182
> 6:29
> │      |
> │ 1826 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1826 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1826 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:182
> 7:29
> │      |
> │ 1827 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1827 -                             
> (toString(v0.l0.get().clone())),
> │ 1827 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:182
> 6:37
> │      |
> │ 1826 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1826 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1826 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:182
> 6:45
> │      |
> │ 1826 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1826 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1826 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:182
> 6:74
> │      |
> │ 1826 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1826 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1826 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:182
> 6:53
> │      |
> │ 1826 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1826 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1826 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:195
> 0:13
> │      |
> │ 1950 |             (append(
> │      |             ^
> │ ...
> │ 1962 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1950 ~             append(
> │ 1951 |                 (append(
> │  ...
> │ 1961 |                 string(" / "),
> │ 1962 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:196
> 3:13
> │      |
> │ 1963 |             (v107),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1963 -             (v107),
> │ 1963 +             v107,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:195
> 1:17
> │      |
> │ 1951 |                 (append(
> │      |                 ^
> │ ...
> │ 1960 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1951 ~                 append(
> │ 1952 |                     (append(
> │  ...
> │ 1959 |                     
> string("async.run_with_timeout_async"),
> │ 1960 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:195
> 2:21
> │      |
> │ 1952 |                     (append(
> │      |                     ^
> │ ...
> │ 1958 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1952 ~                     append(
> │ 1953 |                         (append(
> │  ...
> │ 1957 |                         string(" "),
> │ 1958 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:195
> 3:25
> │      |
> │ 1953 |                         (append(
> │      |                         ^
> │ ...
> │ 1956 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1953 ~                         append(
> │ 1954 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1955 |                             
> (toString(v0.l0.get().clone())),
> │ 1956 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:195
> 4:29
> │      |
> │ 1954 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1954 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1954 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:195
> 5:29
> │      |
> │ 1955 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1955 -                             
> (toString(v0.l0.get().clone())),
> │ 1955 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:195
> 4:37
> │      |
> │ 1954 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1954 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1954 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:195
> 4:45
> │      |
> │ 1954 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1954 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1954 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:195
> 4:74
> │      |
> │ 1954 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1954 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1954 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:195
> 4:53
> │      |
> │ 1954 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 1954 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 1954 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:205
> 5:13
> │      |
> │ 2055 |             (append(
> │      |             ^
> │ ...
> │ 2067 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2055 ~             append(
> │ 2056 |                 (append(
> │  ...
> │ 2066 |                 string(" / "),
> │ 2067 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:206
> 8:13
> │      |
> │ 2068 |             (v180),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2068 -             (v180),
> │ 2068 +             v180,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:205
> 6:17
> │      |
> │ 2056 |                 (append(
> │      |                 ^
> │ ...
> │ 2065 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2056 ~                 append(
> │ 2057 |                     (append(
> │  ...
> │ 2064 |                     
> string("async.run_with_timeout_async**"),
> │ 2065 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:205
> 7:21
> │      |
> │ 2057 |                     (append(
> │      |                     ^
> │ ...
> │ 2063 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2057 ~                     append(
> │ 2058 |                         (append(
> │  ...
> │ 2062 |                         string(" "),
> │ 2063 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:205
> 8:25
> │      |
> │ 2058 |                         (append(
> │      |                         ^
> │ ...
> │ 2061 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2058 ~                         append(
> │ 2059 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2060 |                             
> (toString(v0.l0.get().clone())),
> │ 2061 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:205
> 9:29
> │      |
> │ 2059 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2059 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2059 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:206
> 0:29
> │      |
> │ 2060 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2060 -                             
> (toString(v0.l0.get().clone())),
> │ 2060 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:205
> 9:37
> │      |
> │ 2059 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2059 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2059 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:205
> 9:45
> │      |
> │ 2059 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2059 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2059 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:205
> 9:74
> │      |
> │ 2059 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2059 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2059 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:205
> 9:53
> │      |
> │ 2059 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2059 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2059 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:217
> 3:13
> │      |
> │ 2173 |             (append(
> │      |             ^
> │ ...
> │ 2185 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2173 ~             append(
> │ 2174 |                 (append(
> │  ...
> │ 2184 |                 string(" / "),
> │ 2185 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:218
> 6:13
> │      |
> │ 2186 |             (v180),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2186 -             (v180),
> │ 2186 +             v180,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:217
> 4:17
> │      |
> │ 2174 |                 (append(
> │      |                 ^
> │ ...
> │ 2183 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2174 ~                 append(
> │ 2175 |                     (append(
> │  ...
> │ 2182 |                     
> string("file_system.read_all_text_retry_async"),
> │ 2183 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:217
> 5:21
> │      |
> │ 2175 |                     (append(
> │      |                     ^
> │ ...
> │ 2181 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2175 ~                     append(
> │ 2176 |                         (append(
> │  ...
> │ 2180 |                         string(" "),
> │ 2181 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:217
> 6:25
> │      |
> │ 2176 |                         (append(
> │      |                         ^
> │ ...
> │ 2179 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2176 ~                         append(
> │ 2177 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2178 |                             
> (toString(v0.l0.get().clone())),
> │ 2179 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:217
> 7:29
> │      |
> │ 2177 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2177 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2177 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:217
> 8:29
> │      |
> │ 2178 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2178 -                             
> (toString(v0.l0.get().clone())),
> │ 2178 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:217
> 7:37
> │      |
> │ 2177 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2177 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2177 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:217
> 7:45
> │      |
> │ 2177 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2177 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2177 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:217
> 7:74
> │      |
> │ 2177 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2177 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2177 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:217
> 7:53
> │      |
> │ 2177 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2177 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2177 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:245
> 0:13
> │      |
> │ 2450 |             (append(
> │      |             ^
> │ ...
> │ 2462 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2450 ~             append(
> │ 2451 |                 (append(
> │  ...
> │ 2461 |                 string(" / "),
> │ 2462 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:246
> 3:13
> │      |
> │ 2463 |             (v216),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2463 -             (v216),
> │ 2463 +             v216,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:245
> 1:17
> │      |
> │ 2451 |                 (append(
> │      |                 ^
> │ ...
> │ 2460 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2451 ~                 append(
> │ 2452 |                     (append(
> │  ...
> │ 2459 |                     
> string("file_system.create_dir"),
> │ 2460 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:245
> 2:21
> │      |
> │ 2452 |                     (append(
> │      |                     ^
> │ ...
> │ 2458 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2452 ~                     append(
> │ 2453 |                         (append(
> │  ...
> │ 2457 |                         string(" "),
> │ 2458 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:245
> 3:25
> │      |
> │ 2453 |                         (append(
> │      |                         ^
> │ ...
> │ 2456 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2453 ~                         append(
> │ 2454 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2455 |                             
> (toString(v0.l0.get().clone())),
> │ 2456 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:245
> 4:29
> │      |
> │ 2454 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2454 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2454 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:245
> 5:29
> │      |
> │ 2455 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2455 -                             
> (toString(v0.l0.get().clone())),
> │ 2455 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:245
> 4:37
> │      |
> │ 2454 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2454 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2454 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:245
> 4:45
> │      |
> │ 2454 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2454 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2454 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:245
> 4:74
> │      |
> │ 2454 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2454 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2454 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:245
> 4:53
> │      |
> │ 2454 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2454 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2454 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:253
> 9:13
> │      |
> │ 2539 |             (append(
> │      |             ^
> │ ...
> │ 2551 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2539 ~             append(
> │ 2540 |                 (append(
> │  ...
> │ 2550 |                 string(" / "),
> │ 2551 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:255
> 2:13
> │      |
> │ 2552 |             (v104),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2552 -             (v104),
> │ 2552 +             v104,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:254
> 0:17
> │      |
> │ 2540 |                 (append(
> │      |                 ^
> │ ...
> │ 2549 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2540 ~                 append(
> │ 2541 |                     (append(
> │  ...
> │ 2548 |                     
> string("file_system.create_dir"),
> │ 2549 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:254
> 1:21
> │      |
> │ 2541 |                     (append(
> │      |                     ^
> │ ...
> │ 2547 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2541 ~                     append(
> │ 2542 |                         (append(
> │  ...
> │ 2546 |                         string(" "),
> │ 2547 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:254
> 2:25
> │      |
> │ 2542 |                         (append(
> │      |                         ^
> │ ...
> │ 2545 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2542 ~                         append(
> │ 2543 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2544 |                             
> (toString(v0.l0.get().clone())),
> │ 2545 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:254
> 3:29
> │      |
> │ 2543 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2543 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2543 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:254
> 4:29
> │      |
> │ 2544 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2544 -                             
> (toString(v0.l0.get().clone())),
> │ 2544 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:254
> 3:37
> │      |
> │ 2543 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2543 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2543 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:254
> 3:45
> │      |
> │ 2543 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2543 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2543 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:254
> 3:74
> │      |
> │ 2543 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2543 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2543 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:254
> 3:53
> │      |
> │ 2543 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2543 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2543 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:266
> 2:13
> │      |
> │ 2662 |             (append(
> │      |             ^
> │ ...
> │ 2674 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2662 ~             append(
> │ 2663 |                 (append(
> │  ...
> │ 2673 |                 string(" / "),
> │ 2674 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:267
> 5:13
> │      |
> │ 2675 |             (v177),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2675 -             (v177),
> │ 2675 +             v177,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:266
> 3:17
> │      |
> │ 2663 |                 (append(
> │      |                 ^
> │ ...
> │ 2672 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2663 ~                 append(
> │ 2664 |                     (append(
> │  ...
> │ 2671 |                     
> string("file_system.create_dir"),
> │ 2672 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:266
> 4:21
> │      |
> │ 2664 |                     (append(
> │      |                     ^
> │ ...
> │ 2670 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2664 ~                     append(
> │ 2665 |                         (append(
> │  ...
> │ 2669 |                         string(" "),
> │ 2670 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:266
> 5:25
> │      |
> │ 2665 |                         (append(
> │      |                         ^
> │ ...
> │ 2668 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2665 ~                         append(
> │ 2666 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2667 |                             
> (toString(v0.l0.get().clone())),
> │ 2668 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:266
> 6:29
> │      |
> │ 2666 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2666 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2666 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:266
> 7:29
> │      |
> │ 2667 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2667 -                             
> (toString(v0.l0.get().clone())),
> │ 2667 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:266
> 6:37
> │      |
> │ 2666 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2666 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2666 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:266
> 6:45
> │      |
> │ 2666 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2666 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2666 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:266
> 6:74
> │      |
> │ 2666 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2666 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2666 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:266
> 6:53
> │      |
> │ 2666 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2666 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 2666 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:278
> 6:74
> │      |
> │ 2786 |             (File_system::method95(v0, 
> v1.clone(), (v2) + 1_i32))(append((v3), (v1)))
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2786 -             (File_system::method95(v0, 
> v1.clone(), (v2) + 1_i32))(append((v3), (v1)))
> │ 2786 +             (File_system::method95(v0, 
> v1.clone(), (v2) + 1_i32))(append(v3, (v1)))
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:278
> 6:80
> │      |
> │ 2786 |             (File_system::method95(v0, 
> v1.clone(), (v2) + 1_i32))(append((v3), (v1)))
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2786 -             (File_system::method95(v0, 
> v1.clone(), (v2) + 1_i32))(append((v3), (v1)))
> │ 2786 +             (File_system::method95(v0, 
> v1.clone(), (v2) + 1_i32))(append((v3), v1))
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:280
> 0:13
> │      |
> │ 2800 |             ((File_system::method95(32_i32 - 
> (length(v0.clone())), v3, 0_i32))(string(""))),
> │      |             ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2800 -             ((File_system::method95(32_i32 - 
> (length(v0.clone())), v3, 0_i32))(string(""))),
> │ 2800 +             (File_system::method95(32_i32 - 
> (length(v0.clone())), v3, 0_i32))(string("")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:280
> 1:13
> │      |
> │ 2801 |             (v0),
> │      |             ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2801 -             (v0),
> │ 2801 +             v0,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:280
> 4:13
> │      |
> │ 2804 |             (append(
> │      |             ^
> │ ...
> │ 2825 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2804 ~             append(
> │ 2805 |                 (append(
> │  ...
> │ 2824 |                 string("-"),
> │ 2825 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:282
> 6:13
> │      |
> │ 2826 |             (getSlice(v13, Some(20_i32), 
> Some((32_i32) - 1_i32))),
> │      |             ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2826 -             (getSlice(v13, Some(20_i32), 
> Some((32_i32) - 1_i32))),
> │ 2826 +             getSlice(v13, Some(20_i32), 
> Some((32_i32) - 1_i32)),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:280
> 5:17
> │      |
> │ 2805 |                 (append(
> │      |                 ^
> │ ...
> │ 2823 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2805 ~                 append(
> │ 2806 |                     (append(
> │  ...
> │ 2822 |                     (getSlice(v13.clone(), 
> Some(16_i32), Some((20_i32) - 1_i32))),
> │ 2823 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:280
> 6:21
> │      |
> │ 2806 |                     (append(
> │      |                     ^
> │ ...
> │ 2821 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2806 ~                     append(
> │ 2807 |                         (append(
> │  ...
> │ 2820 |                         string("-"),
> │ 2821 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:282
> 2:21
> │      |
> │ 2822 |                     (getSlice(v13.clone(), 
> Some(16_i32), Some((20_i32) - 1_i32))),
> │      |                     ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2822 -                     (getSlice(v13.clone(), 
> Some(16_i32), Some((20_i32) - 1_i32))),
> │ 2822 +                     getSlice(v13.clone(), 
> Some(16_i32), Some((20_i32) - 1_i32)),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:280
> 7:25
> │      |
> │ 2807 |                         (append(
> │      |                         ^
> │ ...
> │ 2819 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2807 ~                         append(
> │ 2808 |                             (append(
> │  ...
> │ 2818 |                             
> (getSlice(v13.clone(), Some(12_i32), Some((16_i32) - 1_i32))),
> │ 2819 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:280
> 8:29
> │      |
> │ 2808 | ...                   (append(
> │      |                       ^
> │ ...
> │ 2817 | ...                   )),
> │      |                        ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2808 ~                             append(
> │ 2809 |                                 (append(
> │  ...
> │ 2816 |                                 string("-"),
> │ 2817 ~                             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:281
> 8:29
> │      |
> │ 2818 | ...                   (getSlice(v13.clone(), 
> Some(12_i32), Some((16_i32) - 1_i32))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2818 -                             
> (getSlice(v13.clone(), Some(12_i32), Some((16_i32) - 1_i32))),
> │ 2818 +                             getSlice(v13.clone(),
> Some(12_i32), Some((16_i32) - 1_i32)),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:280
> 9:33
> │      |
> │ 2809 | ...                   (append(
> │      |                       ^
> │ ...
> │ 2815 | ...                   )),
> │      |                        ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2809 ~                                 append(
> │ 2810 |                                     (append(
> │  ...
> │ 2814 |                                     
> (getSlice(v13.clone(), Some(8_i32), Some((12_i32) - 1_i32))),
> │ 2815 ~                                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:281
> 0:37
> │      |
> │ 2810 | ...                   (append(
> │      |                       ^
> │ ...
> │ 2813 | ...                   )),
> │      |                        ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2810 ~                                     append(
> │ 2811 |                                         
> (getSlice(v13.clone(), Some(0_i32), Some((8_i32) - 1_i32))),
> │ 2812 |                                         
> string("-"),
> │ 2813 ~                                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:281
> 4:37
> │      |
> │ 2814 | ...                   (getSlice(v13.clone(), 
> Some(8_i32), Some((12_i32) - 1_i32))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2814 -                                     
> (getSlice(v13.clone(), Some(8_i32), Some((12_i32) - 1_i32))),
> │ 2814 +                                     
> getSlice(v13.clone(), Some(8_i32), Some((12_i32) - 1_i32)),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:281
> 1:41
> │      |
> │ 2811 | ...                   (getSlice(v13.clone(), 
> Some(0_i32), Some((8_i32) - 1_i32))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 2811 -                                         
> (getSlice(v13.clone(), Some(0_i32), Some((8_i32) - 1_i32))),
> │ 2811 +                                         
> getSlice(v13.clone(), Some(0_i32), Some((8_i32) - 1_i32)),
> │      |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:371
> 7:31
> │      |
> │ 3717 |             break '_method126 (if 
> v3(File_system::method79(v4.get().clone(), v0.get().clone())) {
> │      |                               ^
> │ ...
> │ 3758 |             });
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3717 ~             break '_method126 if 
> v3(File_system::method79(v4.get().clone(), v0.get().clone())) {
> │ 3718 |                 
> File_system::US17::US17_0(v4.get().clone())
> │  ...
> │ 3757 |                 }
> │ 3758 ~             };
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:374
> 2:25
> │      |
> │ 3742 |                         (concat(new_array(&[
> │      |                         ^
> │ ...
> │ 3749 |                         ]))),
> │      |                            ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3742 ~                         concat(new_array(&[
> │ 3743 |                             
> string("file_system.find_parent / No parent for "),
> │  ...
> │ 3748 |                             },
> │ 3749 ~                         ])),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:378
> 6:21
> │      |
> │ 3786 |                     (concat(new_array(&[
> │      |                     ^
> │ ...
> │ 3789 |                     ]))),
> │      |                        ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3786 ~                     concat(new_array(&[
> │ 3787 |                         
> string("file_system.find_parent / No parent for "),
> │ 3788 |                         if v2 { string("file") } 
> else { string("dir") },
> │ 3789 ~                     ])),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:387
> 0:13
> │      |
> │ 3870 |             (append(
> │      |             ^
> │ ...
> │ 3882 |             )),
> │      |              ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3870 ~             append(
> │ 3871 |                 (append(
> │  ...
> │ 3881 |                 string(" / "),
> │ 3882 ~             ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:388
> 3:13
> │      |
> │ 3883 |             (v177),
> │      |             ^    ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3883 -             (v177),
> │ 3883 +             v177,
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:387
> 1:17
> │      |
> │ 3871 |                 (append(
> │      |                 ^
> │ ...
> │ 3880 |                 )),
> │      |                  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3871 ~                 append(
> │ 3872 |                     (append(
> │  ...
> │ 3879 |                     
> string("file_system.get_workspace_root"),
> │ 3880 ~                 ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:387
> 2:21
> │      |
> │ 3872 |                     (append(
> │      |                     ^
> │ ...
> │ 3878 |                     )),
> │      |                      ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3872 ~                     append(
> │ 3873 |                         (append(
> │  ...
> │ 3877 |                         string(" "),
> │ 3878 ~                     ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:387
> 3:25
> │      |
> │ 3873 |                         (append(
> │      |                         ^
> │ ...
> │ 3876 |                         )),
> │      |                          ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3873 ~                         append(
> │ 3874 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 3875 |                             
> (toString(v0.l0.get().clone())),
> │ 3876 ~                         ),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:387
> 4:29
> │      |
> │ 3874 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3874 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 3874 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:387
> 5:29
> │      |
> │ 3875 | ...                   
> (toString(v0.l0.get().clone())),
> │      |                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3875 -                             
> (toString(v0.l0.get().clone())),
> │ 3875 +                             
> toString(v0.l0.get().clone()),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:387
> 4:37
> │      |
> │ 3874 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                               ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3874 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 3874 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:387
> 4:45
> │      |
> │ 3874 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                       ^
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3874 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 3874 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:387
> 4:74
> │      |
> │ 3874 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |
> ^  ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3874 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 3874 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │     --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:387
> 4:53
> │      |
> │ 3874 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │      |                                               ^  
> ^
> │      |
> │ help: remove these parentheses
> │      |
> │ 3874 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 3874 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │      |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │   --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:94:70
> │    |
> │ 94 |             (Sm::method0(v0_1, v1_1.clone(), (v2_1)
> + 1_i32))(append((v3_1), (v1_1)))
> │    |
> ^    ^
> │    |
> │ help: remove these parentheses
> │    |
> │ 94 -             (Sm::method0(v0_1, v1_1.clone(), (v2_1)
> + 1_i32))(append((v3_1), (v1_1)))
> │ 94 +             (Sm::method0(v0_1, v1_1.clone(), (v2_1)
> + 1_i32))(append(v3_1, (v1_1)))
> │    |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │   --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:94:78
> │    |
> │ 94 |             (Sm::method0(v0_1, v1_1.clone(), (v2_1)
> + 1_i32))(append((v3_1), (v1_1)))
> │    |
> ^    ^
> │    |
> │ help: remove these parentheses
> │    |
> │ 94 -             (Sm::method0(v0_1, v1_1.clone(), (v2_1)
> + 1_i32))(append((v3_1), (v1_1)))
> │ 94 +             (Sm::method0(v0_1, v1_1.clone(), (v2_1)
> + 1_i32))(append((v3_1), v1_1))
> │    |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:108:13
> │     |
> │ 108 |             ((Sm::method0((v0_1) - 
> (length(v2_1.clone())), v5_1, 0_i32))(string(""))),
> │     |             ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 108 -             ((Sm::method0((v0_1) - 
> (length(v2_1.clone())), v5_1, 0_i32))(string(""))),
> │ 108 +             (Sm::method0((v0_1) - 
> (length(v2_1.clone())), v5_1, 0_i32))(string("")),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:109:13
> │     |
> │ 109 |             (v2_1),
> │     |             ^    ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 109 -             (v2_1),
> │ 109 +             v2_1,
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:128:13
> │     |
> │ 128 |             (v2_1.clone()),
> │     |             ^            ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 128 -             (v2_1.clone()),
> │ 128 +             v2_1.clone(),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:129:13
> │     |
> │ 129 |             ((Sm::method0((v0_1) - (length(v2_1)),
> v5_1, 0_i32))(string(""))),
> │     |             ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 129 -             ((Sm::method0((v0_1) - (length(v2_1)),
> v5_1, 0_i32))(string(""))),
> │ 129 +             (Sm::method0((v0_1) - (length(v2_1)), 
> v5_1, 0_i32))(string("")),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:345:17
> │     |
> │ 345 |                 (getSlice(v1_1, Some(0_i32), 
> Some((v0_1) - 1_i32))),
> │     |                 ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 345 -                 (getSlice(v1_1, Some(0_i32), 
> Some((v0_1) - 1_i32))),
> │ 345 +                 getSlice(v1_1, Some(0_i32), 
> Some((v0_1) - 1_i32)),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:410:24
> │     |
> │ 410 |                 
> append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue));
> │     |                        ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 410 -                 
> append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue));
> │ 410 +                 
> append(append((v1_1[v9_1].clone()), (matchValue_1)), (matchValue));
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:410:72
> │     |
> │ 410 |                 
> append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue));
> │     |
> ^          ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 410 -                 
> append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue));
> │ 410 +                 
> append((append((v1_1[v9_1].clone()), (matchValue_1))), matchValue);
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:410:32
> │     |
> │ 410 |                 
> append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue));
> │     |                                ^                  
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 410 -                 
> append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue));
> │ 410 +                 append((append(v1_1[v9_1].clone(),
> (matchValue_1))), (matchValue));
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:410:54
> │     |
> │ 410 |                 
> append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue));
> │     |
> ^            ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 410 -                 
> append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue));
> │ 410 +                 
> append((append((v1_1[v9_1].clone()), matchValue_1)), (matchValue));
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:759:33
> │     |
> │ 759 |         let v4: string = 
> append((v0_1.l0.get().clone()), (v1_1));
> │     |                                 ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 759 -         let v4: string = 
> append((v0_1.l0.get().clone()), (v1_1));
> │ 759 +         let v4: string = 
> append(v0_1.l0.get().clone(), (v1_1));
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:759:58
> │     |
> │ 759 |         let v4: string = 
> append((v0_1.l0.get().clone()), (v1_1));
> │     |
> ^    ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 759 -         let v4: string = 
> append((v0_1.l0.get().clone()), (v1_1));
> │ 759 +         let v4: string = 
> append((v0_1.l0.get().clone()), v1_1);
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:858:13
> │     |
> │ 858 |             (append(
> │     |             ^
> │ ...
> │ 870 |             )),
> │     |              ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 858 ~             append(
> │ 859 |                 (append(
> │ ...
> │ 869 |                 string(" / "),
> │ 870 ~             ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:871:13
> │     |
> │ 871 |             (v254),
> │     |             ^    ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 871 -             (v254),
> │ 871 +             v254,
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:859:17
> │     |
> │ 859 |                 (append(
> │     |                 ^
> │ ...
> │ 868 |                 )),
> │     |                  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 859 ~                 append(
> │ 860 |                     (append(
> │ ...
> │ 867 |                     
> string("crypto.hash_to_port"),
> │ 868 ~                 ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:860:21
> │     |
> │ 860 |                     (append(
> │     |                     ^
> │ ...
> │ 866 |                     )),
> │     |                      ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 860 ~                     append(
> │ 861 |                         (append(
> │ ...
> │ 865 |                         string(" "),
> │ 866 ~                     ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:861:25
> │     |
> │ 861 |                         (append(
> │     |                         ^
> │ ...
> │ 864 |                         )),
> │     |                          ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 861 ~                         append(
> │ 862 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 863 |                             
> (toString(v0_1.l0.get().clone())),
> │ 864 ~                         ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:862:29
> │     |
> │ 862 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 862 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 862 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:863:29
> │     |
> │ 863 | ...                   
> (toString(v0_1.l0.get().clone())),
> │     |                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 863 -                             
> (toString(v0_1.l0.get().clone())),
> │ 863 +                             
> toString(v0_1.l0.get().clone()),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:862:37
> │     |
> │ 862 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                               ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 862 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 862 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:862:45
> │     |
> │ 862 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 862 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 862 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:862:74
> │     |
> │ 862 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |
> ^  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 862 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 862 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:862:53
> │     |
> │ 862 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                                               ^  
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 862 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 862 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:690:33
> │     |
> │ 690 |         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │     |                                 ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 690 -         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │ 690 +         let v4: string = 
> append(v0.l0.get().clone(), (v1));
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:690:56
> │     |
> │ 690 |         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │     |
> ^  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 690 -         let v4: string = 
> append((v0.l0.get().clone()), (v1));
> │ 690 +         let v4: string = 
> append((v0.l0.get().clone()), v1);
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:777:13
> │     |
> │ 777 |             (append(
> │     |             ^
> │ ...
> │ 789 |             )),
> │     |              ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 777 ~             append(
> │ 778 |                 (append(
> │ ...
> │ 788 |                 string(" / "),
> │ 789 ~             ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:790:13
> │     |
> │ 790 |             (v219),
> │     |             ^    ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 790 -             (v219),
> │ 790 +             v219,
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:778:17
> │     |
> │ 778 |                 (append(
> │     |                 ^
> │ ...
> │ 787 |                 )),
> │     |                  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 778 ~                 append(
> │ 779 |                     (append(
> │ ...
> │ 786 |                     string("common.retry_fn"),
> │ 787 ~                 ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:779:21
> │     |
> │ 779 |                     (append(
> │     |                     ^
> │ ...
> │ 785 |                     )),
> │     |                      ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 779 ~                     append(
> │ 780 |                         (append(
> │ ...
> │ 784 |                         string(" "),
> │ 785 ~                     ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:780:25
> │     |
> │ 780 |                         (append(
> │     |                         ^
> │ ...
> │ 783 |                         )),
> │     |                          ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 780 ~                         append(
> │ 781 |                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 782 |                             
> (toString(v0.l0.get().clone())),
> │ 783 ~                         ),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:781:29
> │     |
> │ 781 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 781 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 781 +                             
> append((append((append((v6), string(" "))), (v7))), string(" #")),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:782:29
> │     |
> │ 782 | ...                   
> (toString(v0.l0.get().clone())),
> │     |                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 782 -                             
> (toString(v0.l0.get().clone())),
> │ 782 +                             
> toString(v0.l0.get().clone()),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:781:37
> │     |
> │ 781 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                               ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 781 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 781 +                             
> (append(append((append((v6), string(" "))), (v7)), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:781:45
> │     |
> │ 781 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                                       ^
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 781 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 781 +                             
> (append((append(append((v6), string(" ")), (v7))), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:781:74
> │     |
> │ 781 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |
> ^  ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 781 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 781 +                             
> (append((append((append((v6), string(" "))), v7)), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around function 
> argument
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:781:53
> │     |
> │ 781 | ...                   
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │     |                                               ^  
> ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 781 -                             
> (append((append((append((v6), string(" "))), (v7))), string(" #"))),
> │ 781 +                             
> (append((append((append(v6, string(" "))), (v7))), string(" #"))),
> │     |
> │ 
> │ warning: unnecessary parentheses around `break` value
> │    --> 
> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:874:29
> │     |
> │ 874 |             break '_method8 ({
> │     |                             ^
> │ ...
> │ 911 |             });
> │     |              ^
> │     |
> │ help: remove these parentheses
> │     |
> │ 874 ~             break '_method8 {
> │ 875 |                 let result: 
> LrcPtr<MutCell<Common::US7>> = refCell(Common::US7::US7_1);
> │ ...
> │ 910 |                 }
> │ 911 ~             };
> │     |
> │ 
> │ warning: `plot` (lib) generated 379 warnings (run `cargo
> fix --lib -p plot` to apply 379 suggestions)
> │     Finished `release` profile [optimized] target(s) in 
> 25.77s
> │ 
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> { pwsh ../apps/perf/build.ps1 } | Invoke-Block
> 
> ── [ 1.38m - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:00 d #1 spiral.main / { args = 
> Array(MutCell(["dib", "--path", "Perf.dib", "--retries", "3"])) }
> │ 00:00:00 d #2 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", 
> "c:/home/git/polyglot/apps/perf/Perf.dib", "--output-path", 
> "c:/home/git/polyglot/apps/perf/Perf.dib.ipynb"]; options = { command = dotnet 
> repl --exit-after-run --run "c:/home/git/polyglot/apps/perf/Perf.dib" 
> --output-path "c:/home/git/polyglot/apps/perf/Perf.dib.ipynb"; 
> cancellation_token = None; environment_variables = 
> Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = 
> None; stdin = None; trace = false; working_directory = None } }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ # Perf (Polyglot)
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > open testing
> │ > open benchmark
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > #if !INTERACTIVE
> │ > open Lib
> │ > #endif
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## TestCaseResult
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > type TestCaseResult =
> │ >     {
> │ >         Input: string
> │ >         Expected: string
> │ >         Result: string
> │ >         TimeList: int64 list
> │ >     }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## run
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let run count (solutions: (string * ('TInput -> 
> 'TExpected)) list) (input, 
> │ > expected) =
> │ >     let inputStr =
> │ >         match box input with
> │ >         | :? System.Collections.ICollection as input ->
> │ >             System.Linq.Enumerable.Cast<obj> input
> │ >             |> Seq.map string
> │ >             |> SpiralSm.concat ","
> │ >         | _ -> input.ToString ()
> │ > 
> │ >     printfn ""
> │ >     printfn $"Solution: {inputStr}  "
> │ > 
> │ >     let performanceInvoke (fn: unit -> 'T) =
> │ >         GC.Collect ()
> │ >         let stopwatch = System.Diagnostics.Stopwatch ()
> │ >         stopwatch.Start ()
> │ >         let time1 = stopwatch.ElapsedMilliseconds
> │ > 
> │ >         let result =
> │ >             [[| 0 .. count |]]
> │ >             |> Array.Parallel.map (fun _ ->
> │ >                 fn ()
> │ >             )
> │ >             |> Array.last
> │ > 
> │ >         let time2 = stopwatch.ElapsedMilliseconds - time1
> │ > 
> │ >         result, time2
> │ > 
> │ >     let resultsWithTime =
> │ >         solutions
> │ >         |> List.mapi (fun i (testName, solution) ->
> │ >             let result, time = performanceInvoke (fun () ->
> solution input)
> │ >             printfn $"Test case %d{i + 1}. %s{testName}. 
> Time: %A{time}  "
> │ >             result, time
> │ >         )
> │ > 
> │ > 
> │ >     match resultsWithTime |> List.map fst with
> │ >     | ([[]] | [[ _ ]]) -> ()
> │ >     | (head :: tail) when tail |> List.forall ((=) head) ->
> ()
> │ >     | results -> failwithf $"Challenge error: %A{results}"
> │ > 
> │ >     {
> │ >         Input = inputStr
> │ >         Expected = expected.ToString ()
> │ >         Result = resultsWithTime |> Seq.map fst |> Seq.head
> |> _.ToString()
> │ >         TimeList = resultsWithTime |> List.map snd
> │ >     }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## runAll
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let runAll testName count (solutions: (string * ('TInput ->
> 'TExpected)) list) 
> │ > testCases =
> │ >     printfn ""
> │ >     printfn ""
> │ >     printfn $"Test: {testName}"
> │ >     testCases
> │ >     |> Seq.map (run count solutions)
> │ >     |> Seq.toList
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## sortResultList
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let sortResultList resultList =
> │ >     let table =
> │ >         let rows =
> │ >             resultList
> │ >             |> List.map (fun result ->
> │ >                 let best =
> │ >                     result.TimeList
> │ >                     |> List.mapi (fun i time ->
> │ >                         i + 1, time
> │ >                     )
> │ >                     |> List.sortBy snd
> │ >                     |> List.head
> │ >                     |> _.ToString()
> │ >                 let row =
> │ >                     [[
> │ >                         result.Input
> │ >                         result.Expected
> │ >                         result.Result
> │ >                         best
> │ >                     ]]
> │ >                 let color =
> │ >                     match result.Expected = result.Result 
> with
> │ >                     | true -> Some ConsoleColor.DarkGreen
> │ >                     | false -> Some ConsoleColor.DarkRed
> │ >                 row, color
> │ >             )
> │ >         let header =
> │ >             [[
> │ >                 [[
> │ >                     "Input"
> │ >                     "Expected"
> │ >                     "Result"
> │ >                     "Best"
> │ >                 ]]
> │ >                 [[
> │ >                     "---"
> │ >                     "---"
> │ >                     "---"
> │ >                     "---"
> │ >                 ]]
> │ >             ]]
> │ >             |> List.map (fun row -> row, None)
> │ >         header @ rows
> │ > 
> │ >     let formattedTable =
> │ >         let lengthMap =
> │ >             table
> │ >             |> List.map fst
> │ >             |> List.transpose
> │ >             |> List.map (fun column ->
> │ >                 column
> │ >                 |> List.map String.length
> │ >                 |> List.sortDescending
> │ >                 |> List.tryHead
> │ >                 |> Option.defaultValue 0
> │ >             )
> │ >             |> List.indexed
> │ >             |> Map.ofList
> │ >         table
> │ >         |> List.map (fun (row, color) ->
> │ >             let newRow =
> │ >                 row
> │ >                 |> List.mapi (fun i cell ->
> │ >                     cell.PadRight lengthMap.[[i]]
> │ >                 )
> │ >             newRow, color
> │ >         )
> │ > 
> │ >     printfn ""
> │ >     formattedTable
> │ >     |> List.iter (fun (row, color) ->
> │ >         match color with
> │ >         | Some color -> Console.ForegroundColor <- color
> │ >         | None -> Console.ResetColor ()
> │ > 
> │ >         printfn "%s" (String.Join ("\t| ", row))
> │ > 
> │ >         Console.ResetColor ()
> │ >     )
> │ > 
> │ >     let averages =
> │ >         resultList
> │ >         |> List.map (fun result -> result.TimeList |> 
> List.map float)
> │ >         |> List.transpose
> │ >         |> List.map List.average
> │ >         |> List.map int64
> │ >         |> List.indexed
> │ > 
> │ >     printfn ""
> │ >     printfn "Average Ranking  "
> │ >     averages
> │ >     |> List.sortBy snd
> │ >     |> List.iter (fun (i, avg) ->
> │ >         printfn $"Test case %d{i + 1}. Average Time: 
> %A{avg}  "
> │ >     )
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let mutable _count =
> │ >     if ("CI" |> System.Environment.GetEnvironmentVariable 
> |> fun x -> $"%A{x}") 
> │ > <> "<null>"
> │ >     then 2000000
> │ >     else 2000
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl is_fast () =
> │ >     false
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## empty3Tests
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ Test: Empty3
> │ > │ 
> │ > │ Solution: (a, a)
> │ > │ Test case 1. A. Time: 91L
> │ > │ 
> │ > │ Solution: (a, a)
> │ > │ Test case 1. A. Time: 56L
> │ > │ 
> │ > │ Input  | Expected      | Result | Best
> │ > │ ---    | ---           | ---    | ---
> │ > │ (a, a) | a             | a      | (1, 
> 91)
> │ > │ (a, a) | a             | a      | (1, 
> 56)
> │ > │ 
> │ > │ Averages
> │ > │ Test case 1. Average Time: 73L
> │ > │ 
> │ > │ Ranking
> │ > │ Test case 1. Average Time: 73L
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let solutions = [[
> │ >     "A",
> │ >     fun (a, _b) ->
> │ >         a
> │ > ]]
> │ > let testCases = seq {
> │ >     ("a", "a"), "a"
> │ >     ("a", "a"), "a"
> │ > }
> │ > let rec empty3Tests = runAll (nameof empty3Tests) _count 
> solutions testCases
> │ > empty3Tests
> │ > |> sortResultList
> │ > 
> │ > ── [ 381.73ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 
> │ > │ 
> │ > │ Test: empty3Tests
> │ > │ 
> │ > │ Solution: (a, a)  
> │ > │ Test case 1. A. Time: 1L  
> │ > │ 
> │ > │ Solution: (a, a)  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ 
> │ > │ Input 	| Expected	| Result	| Best  
> │ > │ ---   	| ---     	| ---   	| ---   
> │ > │ (a, a)	| a       	| a     	| (1, 1)
> │ > │ (a, a)	| a       	| a     	| (1, 0)
> │ > │ 
> │ > │ Average Ranking  
> │ > │ Test case 1. Average Time: 0L  
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## empty2Tests
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ Test: Empty2
> │ > │ 
> │ > │ Solution: (a, a)
> │ > │ Test case 1. A. Time: 59L
> │ > │ 
> │ > │ Solution: (a, a)
> │ > │ Test case 1. A. Time: 53L
> │ > │ 
> │ > │ Input   | Expected        | Result  | 
> Best
> │ > │ ---     | ---             | ---     | 
> ---
> │ > │ (a, a)  | a               | a       | 
> (1, 59)
> │ > │ (a, a)  | a               | a       | 
> (1, 53)
> │ > │ 
> │ > │ Averages
> │ > │ Test case 1. Average Time: 56L
> │ > │ 
> │ > │ Ranking
> │ > │ Test case 1. Average Time: 56L
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let solutions = [[
> │ >     "A",
> │ >     fun (a, _b) ->
> │ >         a
> │ > ]]
> │ > let testCases = seq {
> │ >     ("a", "a"), "a"
> │ >     ("a", "a"), "a"
> │ > }
> │ > let rec empty2Tests = runAll (nameof empty2Tests) _count 
> solutions testCases
> │ > empty2Tests
> │ > |> sortResultList
> │ > 
> │ > ── [ 278.71ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 
> │ > │ 
> │ > │ Test: empty2Tests
> │ > │ 
> │ > │ Solution: (a, a)  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ 
> │ > │ Solution: (a, a)  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ 
> │ > │ Input 	| Expected	| Result	| Best  
> │ > │ ---   	| ---     	| ---   	| ---   
> │ > │ (a, a)	| a       	| a     	| (1, 0)
> │ > │ (a, a)	| a       	| a     	| (1, 0)
> │ > │ 
> │ > │ Average Ranking  
> │ > │ Test case 1. Average Time: 0L  
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## emptyTests
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ Test: Empty
> │ > │ 
> │ > │ Solution: 0
> │ > │ Test case 1. A. Time: 61L
> │ > │ 
> │ > │ Solution: 2
> │ > │ Test case 1. A. Time: 62L
> │ > │ 
> │ > │ Solution: 5
> │ > │ Test case 1. A. Time: 70L
> │ > │ 
> │ > │ Input   | Expected        | Result  | 
> Best
> │ > │ ---     | ---             | ---     | 
> ---
> │ > │ 0       | 0               | 0       | 
> (1, 61)
> │ > │ 2       | 2               | 2       | 
> (1, 62)
> │ > │ 5       | 5               | 5       | 
> (1, 70)
> │ > │ 
> │ > │ Averages
> │ > │ Test case 1. Average Time: 64L
> │ > │ 
> │ > │ Ranking
> │ > │ Test case 1. Average Time: 64L
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let solutions = [[
> │ >     "A",
> │ >     fun n ->
> │ >         n + 0
> │ > ]]
> │ > let testCases = seq {
> │ >     0, 0
> │ >     2, 2
> │ >     5, 5
> │ > }
> │ > let rec emptyTests = runAll (nameof emptyTests) _count 
> solutions testCases
> │ > emptyTests
> │ > |> sortResultList
> │ > 
> │ > ── [ 445.01ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 
> │ > │ 
> │ > │ Test: emptyTests
> │ > │ 
> │ > │ Solution: 0  
> │ > │ Test case 1. A. Time: 1L  
> │ > │ 
> │ > │ Solution: 2  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ 
> │ > │ Solution: 5  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ 
> │ > │ Input	| Expected	| Result	| Best  
> │ > │ ---  	| ---     	| ---   	| ---   
> │ > │ 0    	| 0       	| 0     	| (1, 1)
> │ > │ 2    	| 2       	| 2     	| (1, 0)
> │ > │ 5    	| 5       	| 5     	| (1, 0)
> │ > │ 
> │ > │ Average Ranking  
> │ > │ Test case 1. Average Time: 0L  
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## uniqueLettersTests
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ Test: UniqueLetters
> │ > │ 
> │ > │ Solution: abc
> │ > │ Test case 1. A. Time: 1512L
> │ > │ Test case 2. B. Time: 1947L
> │ > │ Test case 3. C. Time: 2023L
> │ > │ Test case 4. D. Time: 1358L
> │ > │ Test case 5. E. Time: 1321L
> │ > │ Test case 6. F. Time: 1346L
> │ > │ Test case 7. G. Time: 1304L
> │ > │ Test case 8. H. Time: 1383L
> │ > │ Test case 9. I. Time: 1495L
> │ > │ Test case 10. J. Time: 1245L
> │ > │ Test case 11. K. Time: 1219L
> │ > │ 
> │ > │ Solution: accabb
> │ > │ Test case 1. A. Time: 1648L
> │ > │ Test case 2. B. Time: 2061L
> │ > │ Test case 3. C. Time: 2413L
> │ > │ Test case 4. D. Time: 1561L
> │ > │ Test case 5. E. Time: 1593L
> │ > │ Test case 6. F. Time: 1518L
> │ > │ Test case 7. G. Time: 1415L
> │ > │ Test case 8. H. Time: 1510L
> │ > │ Test case 9. I. Time: 1445L
> │ > │ Test case 10. J. Time: 1636L
> │ > │ Test case 11. K. Time: 1317L
> │ > │ 
> │ > │ Solution: pprrqqpp
> │ > │ Test case 1. A. Time: 2255L
> │ > │ Test case 2. B. Time: 2408L
> │ > │ Test case 3. C. Time: 2393L
> │ > │ Test case 4. D. Time: 1675L
> │ > │ Test case 5. E. Time: 1911L
> │ > │ Test case 6. F. Time: 2126L
> │ > │ Test case 7. G. Time: 1504L
> │ > │ Test case 8. H. Time: 1715L
> │ > │ Test case 9. I. Time: 1537L
> │ > │ Test case 10. J. Time: 1522L
> │ > │ Test case 11. K. Time: 1322L
> │ > │ 
> │ > │ Solution: 
> │ > 
> aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb
> │ > │ Test case 1. A. Time: 13073L
> │ > │ Test case 2. B. Time: 11519L
> │ > │ Test case 3. C. Time: 8373L
> │ > │ Test case 4. D. Time: 5860L
> │ > │ Test case 5. E. Time: 6490L
> │ > │ Test case 6. F. Time: 6325L
> │ > │ Test case 7. G. Time: 5799L
> │ > │ Test case 8. H. Time: 7099L
> │ > │ Test case 9. I. Time: 6133L
> │ > │ Test case 10. J. Time: 5993L
> │ > │ Test case 11. K. Time: 2040L
> │ > │ 
> │ > │ Input
> │ > | Expected        | Result  | Best
> │ > │ ---
> │ > | ---             | ---     | ---
> │ > │ abc
> │ > | abc             | abc     | (11, 1219)
> │ > │ accabb
> │ > | acb             | acb     | (11, 1317)
> │ > │ pprrqqpp
> │ > | prq             | prq     | (11, 1322)
> │ > │ 
> │ > 
> aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb 
> │ > | acb             | acb     | (11, 2040)
> │ > │ 
> │ > │ Averages
> │ > │ Test case 1. Average Time: 4622L
> │ > │ Test case 2. Average Time: 4483L
> │ > │ Test case 3. Average Time: 3800L
> │ > │ Test case 4. Average Time: 2613L
> │ > │ Test case 5. Average Time: 2828L
> │ > │ Test case 6. Average Time: 2828L
> │ > │ Test case 7. Average Time: 2505L
> │ > │ Test case 8. Average Time: 2926L
> │ > │ Test case 9. Average Time: 2652L
> │ > │ Test case 10. Average Time: 2599L
> │ > │ Test case 11. Average Time: 1474L
> │ > │ 
> │ > │ Ranking
> │ > │ Test case 1. Average Time: 4622L
> │ > │ Test case 2. Average Time: 4483L
> │ > │ Test case 3. Average Time: 3800L
> │ > │ Test case 8. Average Time: 2926L
> │ > │ Test case 5. Average Time: 2828L
> │ > │ Test case 6. Average Time: 2828L
> │ > │ Test case 9. Average Time: 2652L
> │ > │ Test case 4. Average Time: 2613L
> │ > │ Test case 10. Average Time: 2599L
> │ > │ Test case 7. Average Time: 2505L
> │ > │ Test case 11. Average Time: 1474L
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let solutions = [[
> │ >     "A",
> │ >     fun input ->
> │ >         input
> │ >         |> Seq.toList
> │ >         |> List.fold (fun acc x -> if List.contains x acc 
> then acc else acc @ [[
> │ > x ]]) [[]]
> │ >         |> Seq.toArray
> │ >         |> String
> │ > 
> │ >     "B",
> │ >     fun input ->
> │ >         input
> │ >         |> Seq.rev
> │ >         |> fun list -> Seq.foldBack (fun x acc -> if 
> List.contains x acc then 
> │ > acc else x :: acc) list [[]]
> │ >         |> Seq.rev
> │ >         |> Seq.toArray
> │ >         |> String
> │ > 
> │ >     "C",
> │ >     fun input ->
> │ >         input
> │ >         |> Seq.rev
> │ >         |> fun list -> Seq.foldBack (fun x (set, acc) -> if
> Set.contains x set 
> │ > then set, acc else set.Add x, x :: acc) list (Set.empty, 
> [[]])
> │ >         |> snd
> │ >         |> Seq.rev
> │ >         |> Seq.toArray
> │ >         |> String
> │ > 
> │ >     "D",
> │ >     fun input ->
> │ >         input
> │ >         |> Seq.fold (fun (set, acc) x -> if Set.contains x 
> set then set, acc 
> │ > else set.Add x, Array.append acc [[| x |]]) (Set.empty, 
> [[||]])
> │ >         |> snd
> │ >         |> String
> │ > 
> │ >     "E",
> │ >     fun input ->
> │ >         input
> │ >         |> Seq.fold (fun (set, acc) x -> if Set.contains x 
> set then set, acc 
> │ > else set.Add x, x :: acc) (Set.empty, [[]])
> │ >         |> snd
> │ >         |> List.rev
> │ >         |> List.toArray
> │ >         |> String
> │ > 
> │ >     "F",
> │ >     fun input ->
> │ >         input
> │ >         |> Seq.fold (fun (set, acc) x -> if Set.contains x 
> set then set, acc 
> │ > else set.Add x, acc @ [[ x ]]) (Set.empty, [[]])
> │ >         |> snd
> │ >         |> List.toArray
> │ >         |> String
> │ > 
> │ >     "G",
> │ >     fun input ->
> │ >         input
> │ >         |> Seq.fold (fun (set, acc) x -> if Set.contains x 
> set then set, acc 
> │ > else set.Add x, x :: acc) (Set.empty, [[]])
> │ >         |> snd
> │ >         |> List.toArray
> │ >         |> Array.rev
> │ >         |> String
> │ > 
> │ >     "H",
> │ >     fun input ->
> │ >         input
> │ >         |> Seq.toList
> │ >         |> fun list ->
> │ >             let rec loop set = function
> │ >                 | head :: tail when Set.contains head set 
> -> loop set tail
> │ >                 | head :: tail -> (loop (set.Add head) 
> tail) @ [[ head ]]
> │ >                 | [[]] -> [[]]
> │ >             loop Set.empty list
> │ >             |> List.rev
> │ >         |> List.toArray
> │ >         |> String
> │ > 
> │ >     "I",
> │ >     fun input ->
> │ >         input
> │ >         |> Seq.toList
> │ >         |> fun list ->
> │ >             let rec loop set = function
> │ >                 | head :: tail when Set.contains head set 
> -> loop set tail
> │ >                 | head :: tail -> loop (set.Add head) tail 
> |> Array.append [[| 
> │ > head |]]
> │ >                 | [[]] -> [[||]]
> │ >             loop Set.empty list
> │ >         |> String
> │ > 
> │ >     "J",
> │ >     fun input ->
> │ >         input
> │ >         |> Seq.toList
> │ >         |> fun list ->
> │ >             let rec loop set = function
> │ >                 | head :: tail when Set.contains head set 
> -> loop set tail
> │ >                 | head :: tail -> head :: loop (set.Add 
> head) tail
> │ >                 | [[]] -> [[]]
> │ >             loop Set.empty list
> │ >         |> List.toArray
> │ >         |> String
> │ > 
> │ >     "K",
> │ >     fun input ->
> │ >         input
> │ >         |> Seq.distinct
> │ >         |> Seq.toArray
> │ >         |> String
> │ > ]]
> │ > let testCases = seq {
> │ >     "abc", "abc"
> │ >     "accabb", "acb"
> │ >     "pprrqqpp", "prq"
> │ >     
> │ > 
> "aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb
> │ > ", "acb"
> │ > }
> │ > let rec uniqueLettersTests = runAll (nameof 
> uniqueLettersTests) _count solutions
> │ > testCases
> │ > uniqueLettersTests
> │ > |> sortResultList
> │ > 
> │ > ── [ 6.01s - stdout ] 
> ──────────────────────────────────────────────────────────
> │ > │ 
> │ > │ 
> │ > │ Test: uniqueLettersTests
> │ > │ 
> │ > │ Solution: abc  
> │ > │ Test case 1. A. Time: 2L  
> │ > │ Test case 2. B. Time: 3L  
> │ > │ Test case 3. C. Time: 5L  
> │ > │ Test case 4. D. Time: 1L  
> │ > │ Test case 5. E. Time: 1L  
> │ > │ Test case 6. F. Time: 1L  
> │ > │ Test case 7. G. Time: 1L  
> │ > │ Test case 8. H. Time: 1L  
> │ > │ Test case 9. I. Time: 1L  
> │ > │ Test case 10. J. Time: 1L  
> │ > │ Test case 11. K. Time: 2L  
> │ > │ 
> │ > │ Solution: accabb  
> │ > │ Test case 1. A. Time: 1L  
> │ > │ Test case 2. B. Time: 1L  
> │ > │ Test case 3. C. Time: 1L  
> │ > │ Test case 4. D. Time: 0L  
> │ > │ Test case 5. E. Time: 0L  
> │ > │ Test case 6. F. Time: 1L  
> │ > │ Test case 7. G. Time: 0L  
> │ > │ Test case 8. H. Time: 0L  
> │ > │ Test case 9. I. Time: 0L  
> │ > │ Test case 10. J. Time: 0L  
> │ > │ Test case 11. K. Time: 0L  
> │ > │ 
> │ > │ Solution: pprrqqpp  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ Test case 2. B. Time: 1L  
> │ > │ Test case 3. C. Time: 2L  
> │ > │ Test case 4. D. Time: 0L  
> │ > │ Test case 5. E. Time: 0L  
> │ > │ Test case 6. F. Time: 0L  
> │ > │ Test case 7. G. Time: 0L  
> │ > │ Test case 8. H. Time: 0L  
> │ > │ Test case 9. I. Time: 0L  
> │ > │ Test case 10. J. Time: 0L  
> │ > │ Test case 11. K. Time: 0L  
> │ > │ 
> │ > │ Solution: 
> │ > 
> aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb[3
> 8;2;38;140;38m│ Test case 1. A. Time: 4L  
> │ > │ Test case 2. B. Time: 6L  
> │ > │ Test case 3. C. Time: 7L  
> │ > │ Test case 4. D. Time: 4L  
> │ > │ Test case 5. E. Time: 4L  
> │ > │ Test case 6. F. Time: 5L  
> │ > │ Test case 7. G. Time: 4L  
> │ > │ Test case 8. H. Time: 3L  
> │ > │ Test case 9. I. Time: 3L  
> │ > │ Test case 10. J. Time: 4L  
> │ > │ Test case 11. K. Time: 3L  
> │ > │ 
> │ > │ Input
> │ > | Expected	| Result	| Best  
> │ > │ ---
> │ > | ---     	| ---   	| ---   
> │ > │ abc
> │ > | abc     	| abc   	| (4, 1)
> │ > │ accabb
> │ > | acb     	| acb   	| (4, 0)
> │ > │ pprrqqpp
> │ > | prq     	| prq   	| (1, 0)
> │ > │ 
> │ > 
> aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb	| 
> │ > acb     	| acb   	| (8, 3)
> │ > │ 
> │ > │ Average Ranking  
> │ > │ Test case 1. Average Time: 1L  
> │ > │ Test case 4. Average Time: 1L  
> │ > │ Test case 5. Average Time: 1L  
> │ > │ Test case 6. Average Time: 1L  
> │ > │ Test case 7. Average Time: 1L  
> │ > │ Test case 8. Average Time: 1L  
> │ > │ Test case 9. Average Time: 1L  
> │ > │ Test case 10. Average Time: 1L  
> │ > │ Test case 11. Average Time: 1L  
> │ > │ Test case 2. Average Time: 2L  
> │ > │ Test case 3. Average Time: 3L  
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## rotateStringsTests
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ 
> https://www.hackerrank.com/challenges/rotate-string/forum
> │ > │ 
> │ > │ Test: RotateStrings
> │ > │ 
> │ > │ Solution: abc
> │ > │ Test case 1. A. Time: 1842L
> │ > │ Test case 2. B. Time: 1846L
> │ > │ Test case 3. C. Time: 1936L
> │ > │ Test case 4. CA. Time: 2224L
> │ > │ Test case 5. CB. Time: 2329L
> │ > │ Test case 6. D. Time: 2474L
> │ > │ Test case 7. E. Time: 1664L
> │ > │ Test case 8. F. Time: 1517L
> │ > │ Test case 9. FA. Time: 1651L
> │ > │ Test case 10. FB. Time: 3764L
> │ > │ Test case 11. FC. Time: 5415L
> │ > │ 
> │ > │ Solution: abcde
> │ > │ Test case 1. A. Time: 3356L
> │ > │ Test case 2. B. Time: 2592L
> │ > │ Test case 3. C. Time: 2346L
> │ > │ Test case 4. CA. Time: 2997L
> │ > │ Test case 5. CB. Time: 3061L
> │ > │ Test case 6. D. Time: 4051L
> │ > │ Test case 7. E. Time: 1905L
> │ > │ Test case 8. F. Time: 1771L
> │ > │ Test case 9. FA. Time: 2175L
> │ > │ Test case 10. FB. Time: 3275L
> │ > │ Test case 11. FC. Time: 5266L
> │ > │ 
> │ > │ Solution: abcdefghi
> │ > │ Test case 1. A. Time: 4492L
> │ > │ Test case 2. B. Time: 3526L
> │ > │ Test case 3. C. Time: 3583L
> │ > │ Test case 4. CA. Time: 3711L
> │ > │ Test case 5. CB. Time: 4783L
> │ > │ Test case 6. D. Time: 7557L
> │ > │ Test case 7. E. Time: 3452L
> │ > │ Test case 8. F. Time: 3050L
> │ > │ Test case 9. FA. Time: 3275L
> │ > │ Test case 10. FB. Time: 4635L
> │ > │ Test case 11. FC. Time: 5616L
> │ > │ 
> │ > │ Solution: abab
> │ > │ Test case 1. A. Time: 2093L
> │ > │ Test case 2. B. Time: 1843L
> │ > │ Test case 3. C. Time: 1746L
> │ > │ Test case 4. CA. Time: 2085L
> │ > │ Test case 5. CB. Time: 2139L
> │ > │ Test case 6. D. Time: 2095L
> │ > │ Test case 7. E. Time: 1723L
> │ > │ Test case 8. F. Time: 1558L
> │ > │ Test case 9. FA. Time: 1620L
> │ > │ Test case 10. FB. Time: 2319L
> │ > │ Test case 11. FC. Time: 3918L
> │ > │ 
> │ > │ Solution: aa
> │ > │ Test case 1. A. Time: 1107L
> │ > │ Test case 2. B. Time: 1241L
> │ > │ Test case 3. C. Time: 1183L
> │ > │ Test case 4. CA. Time: 1563L
> │ > │ Test case 5. CB. Time: 1525L
> │ > │ Test case 6. D. Time: 1591L
> │ > │ Test case 7. E. Time: 1327L
> │ > │ Test case 8. F. Time: 1151L
> │ > │ Test case 9. FA. Time: 1180L
> │ > │ Test case 10. FB. Time: 1733L
> │ > │ Test case 11. FC. Time: 2817L
> │ > │ 
> │ > │ Solution: z
> │ > │ Test case 1. A. Time: 816L
> │ > │ Test case 2. B. Time: 745L
> │ > │ Test case 3. C. Time: 928L
> │ > │ Test case 4. CA. Time: 1375L
> │ > │ Test case 5. CB. Time: 1029L
> │ > │ Test case 6. D. Time: 852L
> │ > │ Test case 7. E. Time: 712L
> │ > │ Test case 8. F. Time: 263L
> │ > │ Test case 9. FA. Time: 232L
> │ > │ Test case 10. FB. Time: 773L
> │ > │ Test case 11. FC. Time: 1789L
> │ > │ 
> │ > │ Input           | Expected
> │ >
>                                                                                 │ > | Result
> │ >
>                                                                                 │ > | Best
> │ > │ ---             | ---
> │ >
>                                                                                 │ > | ---
> │ >
>                                                                                 │ > | ---
> │ > │ abc             | bca cab abc
> │ >
>                                                                                 │ > | bca cab abc
> │ >
>                                                                                 │ > | (8, 1517)
> │ > │ abcde           | bcdea cdeab deabc 
> eabcd abcde
> │ > | bcdea cdeab deabc eabcd abcde
> │ > | (8, 1771)
> │ > │ abcdefghi       | bcdefghia cdefghiab 
> defghiabc efghiabcd 
> │ > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi       | 
> bcdefghia cdefghiab 
> │ > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh
> abcdefghi       | 
> │ > (8, 3050)
> │ > │ abab            | baba abab baba abab
> │ > | baba abab baba abab
> │ > | (8, 1558)
> │ > │ aa              | aa aa
> │ >
>                                                                                 │ > | aa aa
> │ >
>                                                                                 │ > | (1, 1107)
> │ > │ z               | z
> │ >
>                                                                                 │ > | z
> │ >
>                                                                                 │ > | (9, 232)
> │ > │ 
> │ > │ Averages
> │ > │ Test case 1. Average Time: 2284L
> │ > │ Test case 2. Average Time: 1965L
> │ > │ Test case 3. Average Time: 1953L
> │ > │ Test case 4. Average Time: 2325L
> │ > │ Test case 5. Average Time: 2477L
> │ > │ Test case 6. Average Time: 3103L
> │ > │ Test case 7. Average Time: 1797L
> │ > │ Test case 8. Average Time: 1551L
> │ > │ Test case 9. Average Time: 1688L
> │ > │ Test case 10. Average Time: 2749L
> │ > │ Test case 11. Average Time: 4136L
> │ > │ 
> │ > │ Ranking
> │ > │ Test case 11. Average Time: 4136L
> │ > │ Test case 6. Average Time: 3103L
> │ > │ Test case 10. Average Time: 2749L
> │ > │ Test case 5. Average Time: 2477L
> │ > │ Test case 4. Average Time: 2325L
> │ > │ Test case 1. Average Time: 2284L
> │ > │ Test case 2. Average Time: 1965L
> │ > │ Test case 3. Average Time: 1953L
> │ > │ Test case 7. Average Time: 1797L
> │ > │ Test case 9. Average Time: 1688L
> │ > │ Test case 8. Average Time: 1551L
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let solutions = [[
> │ >     "A",
> │ >     fun (input: string) ->
> │ >         let resultList =
> │ >             List.fold (fun acc x ->
> │ >                 let rotate (text: string) (letter: string) 
> = (text |> 
> │ > SpiralSm.slice 1 (input.Length - 1)) + letter
> │ >                 [[ rotate (if acc.IsEmpty then input else 
> acc.Head) (string x) 
> │ > ]] @ acc
> │ >             ) [[]] (Seq.toList input)
> │ > 
> │ >         (resultList, "")
> │ >         ||> List.foldBack (fun acc x -> x + acc + " ")
> │ >         |> _.TrimEnd()
> │ > 
> │ >     "B",
> │ >     fun input ->
> │ >         input
> │ >         |> Seq.toList
> │ >         |> List.fold (fun (acc: string list) letter ->
> │ >             let last =
> │ >                 if acc.IsEmpty
> │ >                 then input
> │ >                 else acc.Head
> │ > 
> │ >             let item = last.[[1 .. input.Length - 1]] + 
> string letter
> │ > 
> │ >             item :: acc
> │ >         ) [[]]
> │ >         |> List.rev
> │ >         |> SpiralSm.concat " "
> │ > 
> │ >     "C",
> │ >     fun input ->
> │ >         input
> │ >         |> Seq.toList
> │ >         |> List.fold (fun (acc: string list) letter -> 
> acc.Head.[[ 1 .. 
> │ > input.Length - 1 ]] + string letter :: acc) [[ input ]]
> │ >         |> List.rev
> │ >         |> List.skip 1
> │ >         |> SpiralSm.concat " "
> │ > 
> │ >     "CA",
> │ >     fun input ->
> │ >         input
> │ >         |> Seq.fold (fun (acc: string list) letter -> 
> acc.Head.[[ 1 .. 
> │ > input.Length - 1 ]] + string letter :: acc) [[ input ]]
> │ >         |> Seq.rev
> │ >         |> Seq.skip 1
> │ >         |> SpiralSm.concat " "
> │ > 
> │ >     "CB",
> │ >     fun input ->
> │ >         input
> │ >         |> Seq.toArray
> │ >         |> Array.fold (fun (acc: string[[]]) letter -> acc 
> |> Array.append [[| 
> │ > acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter |]]) 
> [[| input |]]
> │ >         |> Array.rev
> │ >         |> Array.skip 1
> │ >         |> SpiralSm.concat " "
> │ > 
> │ >     "D",
> │ >     fun input ->
> │ >         input
> │ >         |> Seq.toList
> │ >         |> fun list ->
> │ >             let rec loop (acc: char list list) = function
> │ >                 | _ when acc.Length = list.Length -> acc
> │ >                 | head :: tail ->
> │ >                     let item = tail @ [[ head ]]
> │ >                     loop (item :: acc) item
> │ >                 | [[]] -> [[]]
> │ >             loop [[]] list
> │ >         |> List.rev
> │ >         |> List.map (List.toArray >> String)
> │ >         |> SpiralSm.concat " "
> │ > 
> │ >     "E",
> │ >     fun input ->
> │ >         input
> │ >         |> Seq.toList
> │ >         |> fun list ->
> │ >             let rec loop (last: string) = function
> │ >                 | head :: tail ->
> │ >                     let item = last.[[1 .. input.Length - 
> 1]] + string head
> │ >                     item :: loop item tail
> │ >                 | [[]] -> [[]]
> │ >             loop input list
> │ >         |> SpiralSm.concat " "
> │ > 
> │ >     "F",
> │ >     fun input ->
> │ >         Array.singleton 0
> │ >         |> Array.append [[| 1 .. input.Length - 1 |]]
> │ >         |> Array.map (fun i -> input.[[ i .. ]] + input.[[ 
> .. i - 1 ]])
> │ >         |> SpiralSm.concat " "
> │ > 
> │ >     "FA",
> │ >     fun input ->
> │ >         List.singleton 0
> │ >         |> List.append [[ 1 .. input.Length - 1 ]]
> │ >         |> List.map (fun i -> input.[[ i .. ]] + input.[[ 
> .. i - 1 ]])
> │ >         |> SpiralSm.concat " "
> │ > 
> │ >     "FB",
> │ >     fun input ->
> │ >         Seq.singleton 0
> │ >         |> Seq.append (seq { 1 .. input.Length - 1 })
> │ >         |> Seq.map (fun i -> input.[[ i .. ]] + input.[[ ..
> i - 1 ]])
> │ >         |> SpiralSm.concat " "
> │ > 
> │ >     "FC",
> │ >     fun input ->
> │ >         Array.singleton 0
> │ >         |> Array.append [[| 1 .. input.Length - 1 |]]
> │ >         |> Array.Parallel.map (fun i -> input.[[ i .. ]] + 
> input.[[ .. i - 1 ]])
> │ >         |> SpiralSm.concat " "
> │ > ]]
> │ > let testCases = seq {
> │ >     "abc", "bca cab abc"
> │ >     "abcde", "bcdea cdeab deabc eabcd abcde"
> │ >     "abcdefghi", "bcdefghia cdefghiab defghiabc efghiabcd 
> fghiabcde ghiabcdef 
> │ > hiabcdefg iabcdefgh abcdefghi"
> │ >     "abab", "baba abab baba abab"
> │ >     "aa", "aa aa"
> │ >     "z", "z"
> │ > }
> │ > let rec rotateStringsTests = runAll (nameof 
> rotateStringsTests) _count solutions
> │ > testCases
> │ > rotateStringsTests
> │ > |> sortResultList
> │ > 
> │ > ── [ 9.12s - stdout ] 
> ──────────────────────────────────────────────────────────
> │ > │ 
> │ > │ 
> │ > │ Test: rotateStringsTests
> │ > │ 
> │ > │ Solution: abc  
> │ > │ Test case 1. A. Time: 2L  
> │ > │ Test case 2. B. Time: 1L  
> │ > │ Test case 3. C. Time: 1L  
> │ > │ Test case 4. CA. Time: 3L  
> │ > │ Test case 5. CB. Time: 2L  
> │ > │ Test case 6. D. Time: 2L  
> │ > │ Test case 7. E. Time: 1L  
> │ > │ Test case 8. F. Time: 1L  
> │ > │ Test case 9. FA. Time: 2L  
> │ > │ Test case 10. FB. Time: 7L  
> │ > │ Test case 11. FC. Time: 3L  
> │ > │ 
> │ > │ Solution: abcde  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ Test case 2. B. Time: 0L  
> │ > │ Test case 3. C. Time: 0L  
> │ > │ Test case 4. CA. Time: 1L  
> │ > │ Test case 5. CB. Time: 0L  
> │ > │ Test case 6. D. Time: 3L  
> │ > │ Test case 7. E. Time: 0L  
> │ > │ Test case 8. F. Time: 0L  
> │ > │ Test case 9. FA. Time: 0L  
> │ > │ Test case 10. FB. Time: 1L  
> │ > │ Test case 11. FC. Time: 2L  
> │ > │ 
> │ > │ Solution: abcdefghi  
> │ > │ Test case 1. A. Time: 3L  
> │ > │ Test case 2. B. Time: 0L  
> │ > │ Test case 3. C. Time: 0L  
> │ > │ Test case 4. CA. Time: 1L  
> │ > │ Test case 5. CB. Time: 1L  
> │ > │ Test case 6. D. Time: 3L  
> │ > │ Test case 7. E. Time: 0L  
> │ > │ Test case 8. F. Time: 0L  
> │ > │ Test case 9. FA. Time: 0L  
> │ > │ Test case 10. FB. Time: 1L  
> │ > │ Test case 11. FC. Time: 2L  
> │ > │ 
> │ > │ Solution: abab  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ Test case 2. B. Time: 0L  
> │ > │ Test case 3. C. Time: 0L  
> │ > │ Test case 4. CA. Time: 0L  
> │ > │ Test case 5. CB. Time: 0L  
> │ > │ Test case 6. D. Time: 1L  
> │ > │ Test case 7. E. Time: 0L  
> │ > │ Test case 8. F. Time: 0L  
> │ > │ Test case 9. FA. Time: 0L  
> │ > │ Test case 10. FB. Time: 1L  
> │ > │ Test case 11. FC. Time: 2L  
> │ > │ 
> │ > │ Solution: aa  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ Test case 2. B. Time: 0L  
> │ > │ Test case 3. C. Time: 0L  
> │ > │ Test case 4. CA. Time: 0L  
> │ > │ Test case 5. CB. Time: 0L  
> │ > │ Test case 6. D. Time: 0L  
> │ > │ Test case 7. E. Time: 0L  
> │ > │ Test case 8. F. Time: 0L  
> │ > │ Test case 9. FA. Time: 0L  
> │ > │ Test case 10. FB. Time: 0L  
> │ > │ Test case 11. FC. Time: 1L  
> │ > │ 
> │ > │ Solution: z  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ Test case 2. B. Time: 0L  
> │ > │ Test case 3. C. Time: 0L  
> │ > │ Test case 4. CA. Time: 0L  
> │ > │ Test case 5. CB. Time: 0L  
> │ > │ Test case 6. D. Time: 0L  
> │ > │ Test case 7. E. Time: 0L  
> │ > │ Test case 8. F. Time: 0L  
> │ > │ Test case 9. FA. Time: 0L  
> │ > │ Test case 10. FB. Time: 0L  
> │ > │ Test case 11. FC. Time: 3L  
> │ > │ 
> │ > │ Input    	| Expected
> │ > | Result
> │ >
>                                                                                 │ > | Best  
> │ > │ ---      	| ---
> │ >
>                                                                                 │ > | ---
> │ >
>                                                                                 │ > | ---   
> │ > │ abc      	| bca cab abc
> │ > | bca cab abc
> │ > | (2, 1)
> │ > │ abcde    	| bcdea cdeab deabc eabcd abcde
> │ > | bcdea cdeab deabc eabcd abcde
> │ > | (1, 0)
> │ > │ abcdefghi	| bcdefghia cdefghiab defghiabc 
> efghiabcd fghiabcde 
> │ > ghiabcdef hiabcdefg iabcdefgh abcdefghi	| bcdefghia cdefghiab
> defghiabc efghiabcd 
> │ > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi	| (2, 0)
> │ > │ abab     	| baba abab baba abab
> │ > | baba abab baba abab
> │ > | (1, 0)
> │ > │ aa       	| aa aa
> │ >
>                                                                                 │ > | aa aa
> │ >
>                                                                                 │ > | (1, 0)
> │ > │ z        	| z
> │ >
>                                                                                 │ > | z
> │ >
>                                                                                 │ > | (1, 0)
> │ > │ 
> │ > │ Average Ranking  
> │ > │ Test case 1. Average Time: 0L  
> │ > │ Test case 2. Average Time: 0L  
> │ > │ Test case 3. Average Time: 0L  
> │ > │ Test case 4. Average Time: 0L  
> │ > │ Test case 5. Average Time: 0L  
> │ > │ Test case 7. Average Time: 0L  
> │ > │ Test case 8. Average Time: 0L  
> │ > │ Test case 9. Average Time: 0L  
> │ > │ Test case 6. Average Time: 1L  
> │ > │ Test case 10. Average Time: 1L  
> │ > │ Test case 11. Average Time: 2L  
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## rotate_strings_tests
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ```
> │ > │ 02:21:12 verbose #1 
> benchmark.run_all / {count = 
> │ > 2000000; test_name = rotate_strings_tests}
> │ > │ 
> │ > │ 02:21:12 verbose #2 benchmark.run
> / {input_str = 
> │ > "abc"}
> │ > │ 02:21:13 verbose #3 benchmark.run
> / solutions.map / {i
> │ > = 1; test_name = F; time = 638}
> │ > │ 02:21:14 verbose #4 benchmark.run
> / solutions.map / {i
> │ > = 2; test_name = FA; time = 779}
> │ > │ 
> │ > │ 02:21:14 verbose #5 benchmark.run
> / {input_str = 
> │ > "abcde"}
> │ > │ 02:21:15 verbose #6 benchmark.run
> / solutions.map / {i
> │ > = 1; test_name = F; time = 745}
> │ > │ 02:21:16 verbose #7 benchmark.run
> / solutions.map / {i
> │ > = 2; test_name = FA; time = 809}
> │ > │ 
> │ > │ 02:21:16 verbose #8 benchmark.run
> / {input_str = 
> │ > "abcdefghi"}
> │ > │ 02:21:17 verbose #9 benchmark.run
> / solutions.map / {i
> │ > = 1; test_name = F; time = 1092}
> │ > │ 02:21:18 verbose #10 
> benchmark.run / solutions.map / 
> │ > {i = 2; test_name = FA; time = 1304}
> │ > │ 
> │ > │ 02:21:18 verbose #11 
> benchmark.run / {input_str = 
> │ > "abab"}
> │ > │ 02:21:19 verbose #12 
> benchmark.run / solutions.map / 
> │ > {i = 1; test_name = F; time = 536}
> │ > │ 02:21:20 verbose #13 
> benchmark.run / solutions.map / 
> │ > {i = 2; test_name = FA; time = 620}
> │ > │ 
> │ > │ 02:21:20 verbose #14 
> benchmark.run / {input_str = 
> │ > "aa"}
> │ > │ 02:21:21 verbose #15 
> benchmark.run / solutions.map / 
> │ > {i = 1; test_name = F; time = 365}
> │ > │ 02:21:21 verbose #16 
> benchmark.run / solutions.map / 
> │ > {i = 2; test_name = FA; time = 396}
> │ > │ 
> │ > │ 02:21:21 verbose #17 
> benchmark.run / {input_str = "z"}
> │ > │ 02:21:22 verbose #18 
> benchmark.run / solutions.map / 
> │ > {i = 1; test_name = F; time = 158}
> │ > │ 02:21:22 verbose #19 
> benchmark.run / solutions.map / 
> │ > {i = 2; test_name = FA; time = 143}
> │ > │ ```
> │ > │ input      	| expected
> │ >
>                                                                                 │ > | result
> │ >
>                                                                                 │ > | best   
> │ > │ ---        	| ---
> │ >
>                                                                                 │ > | ---
> │ >
>                                                                                 │ > | ---    
> │ > │ "abc"      	| "bca cab abc"
> │ > | "bca cab abc"
> │ > | 1, 638 
> │ > │ "abcde"    	| "bcdea cdeab deabc eabcd 
> abcde"
> │ > | "bcdea cdeab deabc eabcd abcde"
> │ > | 1, 745 
> │ > │ "abcdefghi"	| "bcdefghia cdefghiab 
> defghiabc efghiabcd 
> │ > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi"	| 
> "bcdefghia cdefghiab 
> │ > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh
> abcdefghi"	| 1, 1092
> │ > │ "abab"     	| "baba abab baba abab"
> │ > | "baba abab baba abab"
> │ > | 1, 536 
> │ > │ "aa"       	| "aa aa"
> │ >
>                                                                                 │ > | "aa aa"
> │ >
>                                                                                 │ > | 1, 365 
> │ > │ "z"        	| "z"
> │ >
>                                                                                 │ > | "z"
> │ >
>                                                                                 │ > | 2, 143 
> │ > │ ```
> │ > │ 02:21:22 verbose #20 
> benchmark.sort_result_list / 
> │ > averages.iter / {avg = 589; i = 1}
> │ > │ 02:21:22 verbose #21 
> benchmark.sort_result_list / 
> │ > averages.iter / {avg = 675; i = 2}
> │ > │ ```
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > //// timeout=60000
> │ > 
> │ > inl get_solutions () =
> │ >     [[
> │ >         // "A",
> │ >         // fun (input : string) =>
> │ >         //     let resultList =
> │ >         //         List.fold (fun acc x =>
> │ >         //             let rotate (text : string) (letter :
> string) = 
> │ > text.Substring (1, input.Length - 1) + letter
> │ >         //             [[ rotate (if acc.IsEmpty then input
> else acc.Head) 
> │ > (string x) ]] ++ acc
> │ >         //         ) [[]] (Seq.toList input)
> │ > 
> │ >         //     List.foldBack (fun acc x => x + acc + " ") 
> resultList ""
> │ >         //     |> fun x => x.TrimEnd ()
> │ > 
> │ >         // "B",
> │ >         // fun input =>
> │ >         //     input
> │ >         //     |> Seq.toList
> │ >         //     |> List.fold (fun (acc : string list) letter
> =>
> │ >         //         let last =
> │ >         //             if acc.IsEmpty
> │ >         //             then input
> │ >         //             else acc.Head
> │ > 
> │ >         //         let item = last.[[1 .. input.Length - 
> 1]] + string letter
> │ > 
> │ >         //         item :: acc
> │ >         //     ) [[]]
> │ >         //     |> List.rev
> │ >         //     |> SpiralSm.concat " "
> │ > 
> │ >         // "C",
> │ >         // fun input =>
> │ >         //     input
> │ >         //     |> Seq.toList
> │ >         //     |> List.fold (fun (acc : list string) letter
> => acc.Head.[[ 1 .. 
> │ > input.Length - 1 ]] + string letter :: acc) [[ input ]]
> │ >         //     |> List.rev
> │ >         //     |> List.skip 1
> │ >         //     |> SpiralSm.concat " "
> │ > 
> │ >         // "CA",
> │ >         // fun input =>
> │ >         //     input
> │ >         //     |> Seq.fold (fun (acc : list string) letter 
> => acc.Head.[[ 1 .. 
> │ > input.Length - 1 ]] + string letter :: acc) [[ input ]]
> │ >         //     |> Seq.rev
> │ >         //     |> Seq.skip 1
> │ >         //     |> SpiralSm.concat " "
> │ > 
> │ >         // "CB",
> │ >         // fun input =>
> │ >         //     input
> │ >         //     |> Seq.toArray
> │ >         //     |> Array.fold (fun (acc : a _ string) letter
> => acc |> 
> │ > Array.append (a ;[[ acc.[[0]].[[ 1 .. input.Length - 1 ]] +
> string letter ]])) 
> │ > (a ;[[ input ]])
> │ >         //     |> Array.rev
> │ >         //     |> Array.skip 1
> │ >         //     |> SpiralSm.concat " "
> │ > 
> │ >         // "D",
> │ >         // fun input =>
> │ >         //     input
> │ >         //     |> Seq.toList
> │ >         //     |> fun list =>
> │ >         //         let rec loop (acc : list (list char)) = 
> function
> │ >         //             | _ when acc.Length = list.Length =>
> acc
> │ >         //             | head :: tail =>
> │ >         //                 let item = tail ++ [[ head ]]
> │ >         //                 loop (item :: acc) item
> │ >         //             | [[]] => [[]]
> │ >         //         loop [[]] list
> │ >         //     |> List.rev
> │ >         //     |> List.map (List.toArray >> String)
> │ >         //     |> SpiralSm.concat " "
> │ > 
> │ >         // "E",
> │ >         // fun input =>
> │ >         //     input
> │ >         //     |> Seq.toList
> │ >         //     |> fun list =>
> │ >         //         let rec loop (last : string) = function
> │ >         //             | head :: tail =>
> │ >         //                 let item = last.[[1 .. 
> input.Length - 1]] + string 
> │ > head
> │ >         //                 item :: loop item tail
> │ >         //             | [[]] => [[]]
> │ >         //         loop input list
> │ >         //     |> SpiralSm.concat " "
> │ > 
> │ >         "F",
> │ >         fun input =>
> │ >         // Array.singleton 0
> │ >         // |> Array.append [[| 1 .. input.Length - 1 |]]
> │ >         // |> Array.map (fun i -> input.[[ i .. ]] + 
> input.[[ .. i - 1 ]])
> │ >         // |> SpiralSm.concat " "
> │ >             inl input_length = input |> sm.length
> │ >             am.singleton 0i32
> │ >             |> am.append (am'.init_series 1 (input_length -
> 1) 1 |> fun x => a x
> │ > : _ int _)
> │ >             |> fun (a x) => x
> │ >             |> am'.map_base fun i =>
> │ >                 inl a = input |> sm'.slice i (input_length 
> - 1)
> │ >                 inl b = input |> sm'.slice 0 (i - 1)
> │ >                 a +. b
> │ >             |> fun x => a x : _ int _
> │ >             |> seq.of_array
> │ >             |> sm'.concat " "
> │ > 
> │ >         "FA",
> │ >         fun input =>
> │ >         //     List.singleton 0
> │ >         //     |> List.append [[ 1 .. input.Length - 1 ]]
> │ >         //   //  |> List.map (fun i => input.[[ i .. ]] + 
> input.[[ .. i - 1 ]])
> │ >         //     |> SpiralSm.concat " "
> │ >             inl input_length = input |> sm.length
> │ >             listm.singleton 0i32
> │ >             |> listm.append (listm'.init_series 1 
> (input_length - 1) 1)
> │ >             |> listm.map (fun i =>
> │ >                 inl a = input |> sm'.slice i (input_length 
> - 1)
> │ >                 inl b = if i = 0 then "" else input |> 
> sm'.slice 0 (i - 1)
> │ >                 a +. b
> │ >             )
> │ >             |> listm'.box
> │ >             |> listm'.to_array'
> │ >             |> fun x => a x : _ int _
> │ >             |> seq.of_array
> │ >             |> sm'.concat " "
> │ > 
> │ >         // "FB",
> │ >         // fun input =>
> │ >         //     Seq.singleton 0
> │ >         //   //  |> Seq.append (seq { 1 .. input.Length - 1
> })
> │ >         //   //  |> Seq.map (fun i => input.[[ i .. ]] + 
> input.[[ .. i - 1 ]])
> │ >         //     |> SpiralSm.concat " "
> │ > 
> │ >         // "FC",
> │ >         // fun input =>
> │ >         //     Array.singleton 0
> │ >         //     |> Array.append (a ;[[ 1 .. input.Length - 1
> ]])
> │ >         ////    |> Array.Parallel.map (fun i => input.[[ i 
> .. ]] + input.[[ .. i
> │ > - 1 ]])
> │ >         //     |> SpiralSm.concat " "
> │ >     ]]
> │ > 
> │ > inl rec rotate_strings_tests () =
> │ >     inl test_cases = [[
> │ >         "abc", "bca cab abc"
> │ >         "abcde", "bcdea cdeab deabc eabcd abcde"
> │ >         "abcdefghi", "bcdefghia cdefghiab defghiabc 
> efghiabcd fghiabcde 
> │ > ghiabcdef hiabcdefg iabcdefgh abcdefghi"
> │ >         "abab", "baba abab baba abab"
> │ >         "aa", "aa aa"
> │ >         "z", "z"
> │ >     ]]
> │ > 
> │ >     inl solutions = get_solutions ()
> │ > 
> │ >     // inl is_fast () = true
> │ > 
> │ >     inl count =
> │ >         if is_fast ()
> │ >         then 1000i32
> │ >         else 2000000i32
> │ > 
> │ >     run_all (reflection.nameof { rotate_strings_tests }) 
> count solutions 
> │ > test_cases
> │ >     |> sort_result_list
> │ > 
> │ > rotate_strings_tests ()
> │ > 
> │ > ── [ 10.70s - stdout ] 
> ─────────────────────────────────────────────────────────
> │ > │ 
> │ > │ ```
> │ > │ 00:00:00 v #1 benchmark.run_all / {
> test_name = 
> │ > rotate_strings_tests; count = 2000000 }
> │ > │ 
> │ > │ 00:00:00 v #2 benchmark.run / { 
> input_str = "abc" }
> │ > │ 00:00:00 v #3 benchmark.run / 
> solutions.map / { i = 1; 
> │ > test_name = F; time = 464 }
> │ > │ 00:00:01 v #4 benchmark.run / 
> solutions.map / { i = 2; 
> │ > test_name = FA; time = 537 }
> │ > │ 
> │ > │ 00:00:01 v #5 benchmark.run / { 
> input_str = "abcde" }
> │ > │ 00:00:02 v #6 benchmark.run / 
> solutions.map / { i = 1; 
> │ > test_name = F; time = 452 }
> │ > │ 00:00:03 v #7 benchmark.run / 
> solutions.map / { i = 2; 
> │ > test_name = FA; time = 819 }
> │ > │ 
> │ > │ 00:00:03 v #8 benchmark.run / { 
> input_str = "abcdefghi" 
> │ > }
> │ > │ 00:00:04 v #9 benchmark.run / 
> solutions.map / { i = 1; 
> │ > test_name = F; time = 816 }
> │ > │ 00:00:05 v #10 benchmark.run / 
> solutions.map / { i = 2; 
> │ > test_name = FA; time = 1278 }
> │ > │ 
> │ > │ 00:00:05 v #11 benchmark.run / { 
> input_str = "abab" }
> │ > │ 00:00:06 v #12 benchmark.run / 
> solutions.map / { i = 1; 
> │ > test_name = F; time = 470 }
> │ > │ 00:00:07 v #13 benchmark.run / 
> solutions.map / { i = 2; 
> │ > test_name = FA; time = 738 }
> │ > │ 
> │ > │ 00:00:07 v #14 benchmark.run / { 
> input_str = "aa" }
> │ > │ 00:00:07 v #15 benchmark.run / 
> solutions.map / { i = 1; 
> │ > test_name = F; time = 296 }
> │ > │ 00:00:08 v #16 benchmark.run / 
> solutions.map / { i = 2; 
> │ > test_name = FA; time = 419 }
> │ > │ 
> │ > │ 00:00:08 v #17 benchmark.run / { 
> input_str = "z" }
> │ > │ 00:00:08 v #18 benchmark.run / 
> solutions.map / { i = 1; 
> │ > test_name = F; time = 124 }
> │ > │ 00:00:09 v #19 benchmark.run / 
> solutions.map / { i = 2; 
> │ > test_name = FA; time = 156 }
> │ > │ ```
> │ > │ input      	| expected
> │ >
>                                                                                 │ > | result
> │ >
>                                                                                 │ > | best  
> │ > │ ---        	| ---
> │ >
>                                                                                 │ > | ---
> │ >
>                                                                                 │ > | ---   
> │ > │ "abc"      	| "bca cab abc"
> │ > | "bca cab abc"
> │ > | 1, 464
> │ > │ "abcde"    	| "bcdea cdeab deabc eabcd 
> abcde"
> │ > | "bcdea cdeab deabc eabcd abcde"
> │ > | 1, 452
> │ > │ "abcdefghi"	| "bcdefghia cdefghiab 
> defghiabc efghiabcd 
> │ > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi"	| 
> "bcdefghia cdefghiab 
> │ > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh
> abcdefghi"	| 1, 816
> │ > │ "abab"     	| "baba abab baba abab"
> │ > | "baba abab baba abab"
> │ > | 1, 470
> │ > │ "aa"       	| "aa aa"
> │ >
>                                                                                 │ > | "aa aa"
> │ >
>                                                                                 │ > | 1, 296
> │ > │ "z"        	| "z"
> │ >
>                                                                                 │ > | "z"
> │ >
>                                                                                 │ > | 1, 124
> │ > │ ```
> │ > │ 00:00:09 v #20 
> benchmark.sort_result_list / 
> │ > averages.iter / { i = 1; avg = 437 }
> │ > │ 00:00:09 v #21 
> benchmark.sort_result_list / 
> │ > averages.iter / { i = 2; avg = 657 }
> │ > │ ```
> │ > │ 
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > // rotate_strings_tests ()
> │ > ()
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## binary_search_tests
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ```
> │ > │ 02:19:29 verbose #1 
> benchmark.run_all / {count = 
> │ > 10000000; test_name = binary_search_tests}
> │ > │ 
> │ > │ 02:19:29 verbose #2 benchmark.run
> / {input_str = 
> │ > struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)}
> │ > │ 02:19:30 verbose #3 benchmark.run
> / solutions.map / {i
> │ > = 1; test_name = semi_open_1; time = 662}
> │ > │ 02:19:30 verbose #4 benchmark.run
> / solutions.map / {i
> │ > = 2; test_name = closed_1; time = 619}
> │ > │ 02:19:31 verbose #5 benchmark.run
> / solutions.map / {i
> │ > = 3; test_name = semi_open_2; time = 644}
> │ > │ 02:19:32 verbose #6 benchmark.run
> / solutions.map / {i
> │ > = 4; test_name = closed_2; time = 610}
> │ > │ 
> │ > │ 02:19:32 verbose #7 benchmark.run
> / {input_str = 
> │ > struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)}
> │ > │ 02:19:33 verbose #8 benchmark.run
> / solutions.map / {i
> │ > = 1; test_name = semi_open_1; time = 607}
> │ > │ 02:19:33 verbose #9 benchmark.run
> / solutions.map / {i
> │ > = 2; test_name = closed_1; time = 559}
> │ > │ 02:19:34 verbose #10 
> benchmark.run / solutions.map / 
> │ > {i = 3; test_name = semi_open_2; time = 612}
> │ > │ 02:19:35 verbose #11 
> benchmark.run / solutions.map / 
> │ > {i = 4; test_name = closed_2; time = 577}
> │ > │ 
> │ > │ 02:19:35 verbose #12 
> benchmark.run / {input_str = 
> │ > struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)}
> │ > │ 02:19:35 verbose #13 
> benchmark.run / solutions.map / 
> │ > {i = 1; test_name = semi_open_1; time = 550}
> │ > │ 02:19:36 verbose #14 
> benchmark.run / solutions.map / 
> │ > {i = 2; test_name = closed_1; time = 580}
> │ > │ 02:19:37 verbose #15 
> benchmark.run / solutions.map / 
> │ > {i = 3; test_name = semi_open_2; time = 624}
> │ > │ 02:19:37 verbose #16 
> benchmark.run / solutions.map / 
> │ > {i = 4; test_name = closed_2; time = 590}
> │ > │ 
> │ > │ 02:19:37 verbose #17 
> benchmark.run / {input_str = 
> │ > struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)}
> │ > │ 02:19:38 verbose #18 
> benchmark.run / solutions.map / 
> │ > {i = 1; test_name = semi_open_1; time = 574}
> │ > │ 02:19:39 verbose #19 
> benchmark.run / solutions.map / 
> │ > {i = 2; test_name = closed_1; time = 577}
> │ > │ 02:19:39 verbose #20 
> benchmark.run / solutions.map / 
> │ > {i = 3; test_name = semi_open_2; time = 582}
> │ > │ 02:19:40 verbose #21 
> benchmark.run / solutions.map / 
> │ > {i = 4; test_name = closed_2; time = 585}
> │ > │ 
> │ > │ 02:19:40 verbose #22 
> benchmark.run / {input_str = 
> │ > struct ([|1; 2; 3; 4...00; ...|], 60, 1000)}
> │ > │ 02:19:41 verbose #23 
> benchmark.run / solutions.map / 
> │ > {i = 1; test_name = semi_open_1; time = 610}
> │ > │ 02:19:42 verbose #24 
> benchmark.run / solutions.map / 
> │ > {i = 2; test_name = closed_1; time = 672}
> │ > │ 02:19:42 verbose #25 
> benchmark.run / solutions.map / 
> │ > {i = 3; test_name = semi_open_2; time = 636}
> │ > │ 02:19:43 verbose #26 
> benchmark.run / solutions.map / 
> │ > {i = 4; test_name = closed_2; time = 629}
> │ > │ 
> │ > │ 02:19:43 verbose #27 
> benchmark.run / {input_str = 
> │ > struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)}
> │ > │ 02:19:44 verbose #28 
> benchmark.run / solutions.map / 
> │ > {i = 1; test_name = semi_open_1; time = 599}
> │ > │ 02:19:44 verbose #29 
> benchmark.run / solutions.map / 
> │ > {i = 2; test_name = closed_1; time = 561}
> │ > │ 02:19:45 verbose #30 
> benchmark.run / solutions.map / 
> │ > {i = 3; test_name = semi_open_2; time = 604}
> │ > │ 02:19:46 verbose #31 
> benchmark.run / solutions.map / 
> │ > {i = 4; test_name = closed_2; time = 573}
> │ > │ 
> │ > │ 02:19:46 verbose #32 
> benchmark.run / {input_str = 
> │ > struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)}
> │ > │ 02:19:47 verbose #33 
> benchmark.run / solutions.map / 
> │ > {i = 1; test_name = semi_open_1; time = 635}
> │ > │ 02:19:47 verbose #34 
> benchmark.run / solutions.map / 
> │ > {i = 2; test_name = closed_1; time = 603}
> │ > │ 02:19:48 verbose #35 
> benchmark.run / solutions.map / 
> │ > {i = 3; test_name = semi_open_2; time = 644}
> │ > │ 02:19:49 verbose #36 
> benchmark.run / solutions.map / 
> │ > {i = 4; test_name = closed_2; time = 628}
> │ > │ 
> │ > │ 02:19:49 verbose #37 
> benchmark.run / {input_str = 
> │ > struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)}
> │ > │ 02:19:49 verbose #38 
> benchmark.run / solutions.map / 
> │ > {i = 1; test_name = semi_open_1; time = 643}
> │ > │ 02:19:50 verbose #39 
> benchmark.run / solutions.map / 
> │ > {i = 2; test_name = closed_1; time = 606}
> │ > │ 02:19:51 verbose #40 
> benchmark.run / solutions.map / 
> │ > {i = 3; test_name = semi_open_2; time = 636}
> │ > │ 02:19:52 verbose #41 
> benchmark.run / solutions.map / 
> │ > {i = 4; test_name = closed_2; time = 624}
> │ > │ 
> │ > │ 02:19:52 verbose #42 
> benchmark.run / {input_str = 
> │ > struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)}
> │ > │ 02:19:52 verbose #43 
> benchmark.run / solutions.map / 
> │ > {i = 1; test_name = semi_open_1; time = 689}
> │ > │ 02:19:53 verbose #44 
> benchmark.run / solutions.map / 
> │ > {i = 2; test_name = closed_1; time = 613}
> │ > │ 02:19:54 verbose #45 
> benchmark.run / solutions.map / 
> │ > {i = 3; test_name = semi_open_2; time = 623}
> │ > │ 02:19:55 verbose #46 
> benchmark.run / solutions.map / 
> │ > {i = 4; test_name = closed_2; time = 613}
> │ > │ 
> │ > │ 02:19:55 verbose #47 
> benchmark.run / {input_str = 
> │ > struct ([|1; 2; 3; 4...100; ...|], 60, 100)}
> │ > │ 02:19:55 verbose #48 
> benchmark.run / solutions.map / 
> │ > {i = 1; test_name = semi_open_1; time = 630}
> │ > │ 02:19:56 verbose #49 
> benchmark.run / solutions.map / 
> │ > {i = 2; test_name = closed_1; time = 633}
> │ > │ 02:19:57 verbose #50 
> benchmark.run / solutions.map / 
> │ > {i = 3; test_name = semi_open_2; time = 653}
> │ > │ 02:19:58 verbose #51 
> benchmark.run / solutions.map / 
> │ > {i = 4; test_name = closed_2; time = 646}
> │ > │ ```
> │ > │ input
> | expected	| result  	|
> │ > best  
> │ > │ ---
> | ---     	| ---     	|
> │ > ---   
> │ > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7)
> | US4_0 3 	| US4_0 3 	|
> │ > 4, 610
> │ > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7)
> | US4_0 0 	| US4_0 0 	|
> │ > 2, 559
> │ > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7)
> | US4_0 6 	| US4_0 6 	|
> │ > 1, 550
> │ > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7)
> | US4_1   	| US4_1   	|
> │ > 1, 574
> │ > │ struct ([1; 2; 3; 4...00; ...], 60, 
> 1000)	| US4_0 59	| US4_0 59	|
> │ > 1, 610
> │ > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7)
> | US4_0 3 	| US4_0 3 	|
> │ > 2, 561
> │ > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7)
> | US4_0 0 	| US4_0 0 	|
> │ > 2, 603
> │ > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7)
> | US4_0 6 	| US4_0 6 	|
> │ > 2, 606
> │ > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7)
> | US4_1   	| US4_1   	|
> │ > 2, 613
> │ > │ struct ([1; 2; 3; 4...100; ...], 60, 
> 100)	| US4_0 59	| US4_0 59	|
> │ > 1, 630
> │ > │ ```
> │ > │ 02:19:58 verbose #52 
> benchmark.sort_result_list / 
> │ > averages.iter / {avg = 602; i = 2}
> │ > │ 02:19:58 verbose #53 
> benchmark.sort_result_list / 
> │ > averages.iter / {avg = 607; i = 4}
> │ > │ 02:19:58 verbose #54 
> benchmark.sort_result_list / 
> │ > averages.iter / {avg = 619; i = 1}
> │ > │ 02:19:58 verbose #55 
> benchmark.sort_result_list / 
> │ > averages.iter / {avg = 625; i = 3}
> │ > │ ```
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > //// timeout=90000
> │ > 
> │ > inl binary_search_semi_open_1 arr target left right =
> │ >     inl rec body left right =
> │ >         if left >= right
> │ >         then None
> │ >         else
> │ >             inl mid = (left + right) / 2
> │ >             inl item = index arr mid
> │ >             if item = target
> │ >             then Some mid
> │ >             elif item < target
> │ >             then loop (mid + 1) right
> │ >             else loop left mid
> │ >     and inl loop left right =
> │ >         if var_is right |> not
> │ >         then body left right
> │ >         else
> │ >             inl left = dyn left
> │ >             join body left right
> │ >     loop left right
> │ > 
> │ > inl binary_search_closed_1 arr target left right =
> │ >     inl rec body left right =
> │ >         if left > right
> │ >         then None
> │ >         else
> │ >             inl mid = (left + right) / 2
> │ >             inl item = index arr mid
> │ >             if item = target
> │ >             then Some mid
> │ >             elif item < target
> │ >             then loop (mid + 1) right
> │ >             else loop left (mid - 1)
> │ >     and inl loop left right =
> │ >         if var_is right |> not
> │ >         then body left right
> │ >         else
> │ >             inl left = dyn left
> │ >             join body left right
> │ >     loop left right
> │ > 
> │ > inl binary_search_semi_open_2 arr target left right =
> │ >     let rec body left right =
> │ >         if left >= right
> │ >         then None
> │ >         else
> │ >             inl mid = (left + right) / 2
> │ >             inl item = index arr mid
> │ >             if item = target
> │ >             then Some mid
> │ >             elif item < target
> │ >             then loop (mid + 1) right
> │ >             else loop left mid
> │ >     and inl loop left right = body left right
> │ >     loop left right
> │ > 
> │ > inl binary_search_closed_2 arr target left right =
> │ >     let rec body left right =
> │ >         if left > right
> │ >         then None
> │ >         else
> │ >             inl mid = (left + right) / 2
> │ >             inl item = index arr mid
> │ >             if item = target
> │ >             then Some mid
> │ >             elif item < target
> │ >             then loop (mid + 1) right
> │ >             else loop left (mid - 1)
> │ >     and inl loop left right = body left right
> │ >     loop left right
> │ > 
> │ > inl get_solutions () =
> │ >     [[
> │ >         "semi_open_1",
> │ >         fun (arr, (target, len)) =>
> │ >             binary_search_semi_open_1 arr target 0 len
> │ > 
> │ >         "closed_1",
> │ >         fun (arr, (target, len)) =>
> │ >             binary_search_closed_1 arr target 0 (len - 1)
> │ > 
> │ >         "semi_open_2",
> │ >         fun (arr, (target, len)) =>
> │ >             binary_search_semi_open_2 arr target 0 len
> │ > 
> │ >         "closed_2",
> │ >         fun (arr, (target, len)) =>
> │ >             binary_search_closed_2 arr target 0 (len - 1)
> │ >     ]]
> │ > 
> │ > inl rec binary_search_tests () =
> │ >     inl arr_with_len target len arr =
> │ >         arr, (target, (len |> optionm'.default_with fun () 
> => length arr))
> │ > 
> │ >     inl test_cases = [[
> │ >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6
> None), (Some 3i32)
> │ >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1
> None), (Some 0i32)
> │ >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 
> 11 None), (Some 6i32)
> │ >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 
> 12 None), None
> │ >         ((am'.init_series 1i32 1000 1 |> fun x => a x : _ 
> int _) |> arr_with_len
> │ > 60 None), (Some 59)
> │ > 
> │ >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6
> (Some 7)), (Some 
> │ > 3i32)
> │ >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1
> (Some 7)), (Some 
> │ > 0i32)
> │ >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 
> 11 (Some 7)), (Some 
> │ > 6i32)
> │ >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 
> 12 (Some 7)), None
> │ >         ((am'.init_series 1i32 1000 1 |> fun x => a x : _ 
> int _) |> arr_with_len
> │ > 60 (Some 100)), (Some 59)
> │ >     ]]
> │ > 
> │ >     inl solutions = get_solutions ()
> │ > 
> │ >     // inl is_fast () = true
> │ > 
> │ >     inl count =
> │ >         if is_fast ()
> │ >         then 1000i32
> │ >         else 10000000i32
> │ > 
> │ >     run_all (reflection.nameof { binary_search_tests }) 
> count solutions 
> │ > test_cases
> │ >     |> sort_result_list
> │ > 
> │ > 
> │ > let main () =
> │ >     binary_search_tests ()
> │ > 
> │ > ── [ 27.83s - stdout ] 
> ─────────────────────────────────────────────────────────
> │ > │ 
> │ > │ ```
> │ > │ 00:00:00 v #1 benchmark.run_all / {
> test_name = 
> │ > binary_search_tests; count = 10000000 }
> │ > │ 
> │ > │ 00:00:00 v #2 benchmark.run / { 
> input_str = struct ([|1;
> │ > 3; 4; 6; 8; 9; 11|], 6, 7) }
> │ > │ 00:00:00 v #3 benchmark.run / 
> solutions.map / { i = 1; 
> │ > test_name = semi_open_1; time = 556 }
> │ > │ 00:00:01 v #4 benchmark.run / 
> solutions.map / { i = 2; 
> │ > test_name = closed_1; time = 518 }
> │ > │ 00:00:02 v #5 benchmark.run / 
> solutions.map / { i = 3; 
> │ > test_name = semi_open_2; time = 571 }
> │ > │ 00:00:02 v #6 benchmark.run / 
> solutions.map / { i = 4; 
> │ > test_name = closed_2; time = 573 }
> │ > │ 
> │ > │ 00:00:02 v #7 benchmark.run / { 
> input_str = struct ([|1;
> │ > 3; 4; 6; 8; 9; 11|], 1, 7) }
> │ > │ 00:00:03 v #8 benchmark.run / 
> solutions.map / { i = 1; 
> │ > test_name = semi_open_1; time = 595 }
> │ > │ 00:00:04 v #9 benchmark.run / 
> solutions.map / { i = 2; 
> │ > test_name = closed_1; time = 589 }
> │ > │ 00:00:05 v #10 benchmark.run / 
> solutions.map / { i = 3; 
> │ > test_name = semi_open_2; time = 637 }
> │ > │ 00:00:05 v #11 benchmark.run / 
> solutions.map / { i = 4; 
> │ > test_name = closed_2; time = 636 }
> │ > │ 
> │ > │ 00:00:05 v #12 benchmark.run / { 
> input_str = struct 
> │ > ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) }
> │ > │ 00:00:06 v #13 benchmark.run / 
> solutions.map / { i = 1; 
> │ > test_name = semi_open_1; time = 589 }
> │ > │ 00:00:07 v #14 benchmark.run / 
> solutions.map / { i = 2; 
> │ > test_name = closed_1; time = 592 }
> │ > │ 00:00:08 v #15 benchmark.run / 
> solutions.map / { i = 3; 
> │ > test_name = semi_open_2; time = 581 }
> │ > │ 00:00:08 v #16 benchmark.run / 
> solutions.map / { i = 4; 
> │ > test_name = closed_2; time = 633 }
> │ > │ 
> │ > │ 00:00:08 v #17 benchmark.run / { 
> input_str = struct 
> │ > ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) }
> │ > │ 00:00:09 v #18 benchmark.run / 
> solutions.map / { i = 1; 
> │ > test_name = semi_open_1; time = 517 }
> │ > │ 00:00:10 v #19 benchmark.run / 
> solutions.map / { i = 2; 
> │ > test_name = closed_1; time = 645 }
> │ > │ 00:00:10 v #20 benchmark.run / 
> solutions.map / { i = 3; 
> │ > test_name = semi_open_2; time = 518 }
> │ > │ 00:00:11 v #21 benchmark.run / 
> solutions.map / { i = 4; 
> │ > test_name = closed_2; time = 469 }
> │ > │ 
> │ > │ 00:00:11 v #22 benchmark.run / { 
> input_str = struct 
> │ > ([|1; 2; 3; 4...00; ...|], 60, 1000) }
> │ > │ 00:00:12 v #23 benchmark.run / 
> solutions.map / { i = 1; 
> │ > test_name = semi_open_1; time = 500 }
> │ > │ 00:00:12 v #24 benchmark.run / 
> solutions.map / { i = 2; 
> │ > test_name = closed_1; time = 507 }
> │ > │ 00:00:13 v #25 benchmark.run / 
> solutions.map / { i = 3; 
> │ > test_name = semi_open_2; time = 495 }
> │ > │ 00:00:14 v #26 benchmark.run / 
> solutions.map / { i = 4; 
> │ > test_name = closed_2; time = 507 }
> │ > │ 
> │ > │ 00:00:14 v #27 benchmark.run / { 
> input_str = struct 
> │ > ([|1; 3; 4; 6; 8; 9; 11|], 6, 7) }
> │ > │ 00:00:14 v #28 benchmark.run / 
> solutions.map / { i = 1; 
> │ > test_name = semi_open_1; time = 451 }
> │ > │ 00:00:15 v #29 benchmark.run / 
> solutions.map / { i = 2; 
> │ > test_name = closed_1; time = 439 }
> │ > │ 00:00:15 v #30 benchmark.run / 
> solutions.map / { i = 3; 
> │ > test_name = semi_open_2; time = 435 }
> │ > │ 00:00:16 v #31 benchmark.run / 
> solutions.map / { i = 4; 
> │ > test_name = closed_2; time = 459 }
> │ > │ 
> │ > │ 00:00:16 v #32 benchmark.run / { 
> input_str = struct 
> │ > ([|1; 3; 4; 6; 8; 9; 11|], 1, 7) }
> │ > │ 00:00:17 v #33 benchmark.run / 
> solutions.map / { i = 1; 
> │ > test_name = semi_open_1; time = 442 }
> │ > │ 00:00:17 v #34 benchmark.run / 
> solutions.map / { i = 2; 
> │ > test_name = closed_1; time = 479 }
> │ > │ 00:00:18 v #35 benchmark.run / 
> solutions.map / { i = 3; 
> │ > test_name = semi_open_2; time = 446 }
> │ > │ 00:00:18 v #36 benchmark.run / 
> solutions.map / { i = 4; 
> │ > test_name = closed_2; time = 480 }
> │ > │ 
> │ > │ 00:00:18 v #37 benchmark.run / { 
> input_str = struct 
> │ > ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) }
> │ > │ 00:00:19 v #38 benchmark.run / 
> solutions.map / { i = 1; 
> │ > test_name = semi_open_1; time = 482 }
> │ > │ 00:00:20 v #39 benchmark.run / 
> solutions.map / { i = 2; 
> │ > test_name = closed_1; time = 458 }
> │ > │ 00:00:20 v #40 benchmark.run / 
> solutions.map / { i = 3; 
> │ > test_name = semi_open_2; time = 481 }
> │ > │ 00:00:21 v #41 benchmark.run / 
> solutions.map / { i = 4; 
> │ > test_name = closed_2; time = 471 }
> │ > │ 
> │ > │ 00:00:21 v #42 benchmark.run / { 
> input_str = struct 
> │ > ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) }
> │ > │ 00:00:22 v #43 benchmark.run / 
> solutions.map / { i = 1; 
> │ > test_name = semi_open_1; time = 485 }
> │ > │ 00:00:22 v #44 benchmark.run / 
> solutions.map / { i = 2; 
> │ > test_name = closed_1; time = 461 }
> │ > │ 00:00:23 v #45 benchmark.run / 
> solutions.map / { i = 3; 
> │ > test_name = semi_open_2; time = 441 }
> │ > │ 00:00:23 v #46 benchmark.run / 
> solutions.map / { i = 4; 
> │ > test_name = closed_2; time = 447 }
> │ > │ 
> │ > │ 00:00:23 v #47 benchmark.run / { 
> input_str = struct 
> │ > ([|1; 2; 3; 4...100; ...|], 60, 100) }
> │ > │ 00:00:24 v #48 benchmark.run / 
> solutions.map / { i = 1; 
> │ > test_name = semi_open_1; time = 507 }
> │ > │ 00:00:25 v #49 benchmark.run / 
> solutions.map / { i = 2; 
> │ > test_name = closed_1; time = 470 }
> │ > │ 00:00:25 v #50 benchmark.run / 
> solutions.map / { i = 3; 
> │ > test_name = semi_open_2; time = 492 }
> │ > │ 00:00:26 v #51 benchmark.run / 
> solutions.map / { i = 4; 
> │ > test_name = closed_2; time = 482 }
> │ > │ ```
> │ > │ input                                    	
> | expected	| result  	| 
> │ > best  
> │ > │ ---                                      	
> | ---     	| ---     	| 
> │ > ---   
> │ > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7)    	
> | US6_0 3 	| US6_0 3 	| 
> │ > 2, 518
> │ > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7)    	
> | US6_0 0 	| US6_0 0 	| 
> │ > 2, 589
> │ > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7)   	
> | US6_0 6 	| US6_0 6 	| 
> │ > 3, 581
> │ > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7)   	
> | US6_1   	| US6_1   	| 
> │ > 4, 469
> │ > │ struct ([1; 2; 3; 4...00; ...], 60, 
> 1000)	| US6_0 59	| US6_0 59	| 
> │ > 3, 495
> │ > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7)    	
> | US6_0 3 	| US6_0 3 	| 
> │ > 3, 435
> │ > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7)    	
> | US6_0 0 	| US6_0 0 	| 
> │ > 1, 442
> │ > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7)   	
> | US6_0 6 	| US6_0 6 	| 
> │ > 2, 458
> │ > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7)   	
> | US6_1   	| US6_1   	| 
> │ > 3, 441
> │ > │ struct ([1; 2; 3; 4...100; ...], 60, 
> 100)	| US6_0 59	| US6_0 59	| 
> │ > 2, 470
> │ > │ ```
> │ > │ 00:00:26 v #52 
> benchmark.sort_result_list / 
> │ > averages.iter / { i = 3; avg = 509 }
> │ > │ 00:00:26 v #53 
> benchmark.sort_result_list / 
> │ > averages.iter / { i = 1; avg = 512 }
> │ > │ 00:00:26 v #54 
> benchmark.sort_result_list / 
> │ > averages.iter / { i = 2; avg = 515 }
> │ > │ 00:00:26 v #55 
> benchmark.sort_result_list / 
> │ > averages.iter / { i = 4; avg = 515 }
> │ > │ ```
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## returnLettersWithOddCountTests
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ Test: ReturnLettersWithOddCount
> │ > │ 
> │ > │ Solution: 1
> │ > │ Test case 1. A. Time: 645L
> │ > │ 
> │ > │ Solution: 2
> │ > │ Test case 1. A. Time: 663L
> │ > │ 
> │ > │ Solution: 3
> │ > │ Test case 1. A. Time: 680L
> │ > │ 
> │ > │ Solution: 9
> │ > │ Test case 1. A. Time: 730L
> │ > │ 
> │ > │ Solution: 10
> │ > │ Test case 1. A. Time: 815L
> │ > │ 
> │ > │ Input   | Expected        | Result
> | Best
> │ > │ ---     | ---             | ---
> | ---
> │ > │ 1       | a               | a
> | (1, 645)
> │ > │ 2       | ba              | ba
> | (1, 663)
> │ > │ 3       | aaa             | aaa
> | (1, 680)
> │ > │ 9       | aaaaaaaaa       | aaaaaaaaa
> | (1, 730)
> │ > │ 10      | baaaaaaaaa      | baaaaaaaaa
> | (1, 815)
> │ > │ 
> │ > │ Averages
> │ > │ Test case 1. Average Time: 706L
> │ > │ 
> │ > │ Ranking
> │ > │ Test case 1. Average Time: 706L
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let solutions = [[
> │ >     "A",
> │ >     fun n ->
> │ >         let mutable _builder = StringBuilder (new 
> string('a', n))
> │ >         if n % 2 = 0 then
> │ >             _builder.[[0]] <- 'b'
> │ > 
> │ >         _builder.ToString ()
> │ > ]]
> │ > let testCases = seq {
> │ >     1, "a"
> │ >     2, "ba"
> │ >     3, "aaa"
> │ >     9, "aaaaaaaaa"
> │ >     10, "baaaaaaaaa"
> │ > }
> │ > let rec returnLettersWithOddCountTests =
> │ >     runAll (nameof returnLettersWithOddCountTests) _count 
> solutions testCases
> │ > returnLettersWithOddCountTests
> │ > |> sortResultList
> │ > 
> │ > ── [ 826.61ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 
> │ > │ 
> │ > │ Test: returnLettersWithOddCountTests
> │ > │ 
> │ > │ Solution: 1  
> │ > │ Test case 1. A. Time: 19L  
> │ > │ 
> │ > │ Solution: 2  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ 
> │ > │ Solution: 3  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ 
> │ > │ Solution: 9  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ 
> │ > │ Solution: 10  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ 
> │ > │ Input	| Expected  	| Result    	| Best   
> │ > │ ---  	| ---       	| ---       	| ---    
> │ > │ 1    	| a         	| a         	| (1, 19)
> │ > │ 2    	| ba        	| ba        	| (1, 0) 
> │ > │ 3    	| aaa       	| aaa       	| (1, 0) 
> │ > │ 9    	| aaaaaaaaa 	| aaaaaaaaa 	| (1, 0) 
> │ > │ 10   	| baaaaaaaaa	| baaaaaaaaa	| (1, 0) 
> │ > │ 
> │ > │ Average Ranking  
> │ > │ Test case 1. Average Time: 3L  
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## hasAnyPairCloseToEachotherTests
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ Test: HasAnyPairCloseToEachother
> │ > │ 
> │ > │ Solution: 0
> │ > │ Test case 1. A. Time: 137L
> │ > │ 
> │ > │ Solution: 1,2
> │ > │ Test case 1. A. Time: 186L
> │ > │ 
> │ > │ Solution: 3,5
> │ > │ Test case 1. A. Time: 206L
> │ > │ 
> │ > │ Solution: 3,4,6
> │ > │ Test case 1. A. Time: 149L
> │ > │ 
> │ > │ Solution: 2,4,6
> │ > │ Test case 1. A. Time: 150L
> │ > │ 
> │ > │ Input   | Expected        | Result  | 
> Best
> │ > │ ---     | ---             | ---     | 
> ---
> │ > │ 0       | False           | False   | 
> (1, 137)
> │ > │ 1,2     | True            | True    | 
> (1, 186)
> │ > │ 3,5     | False           | False   | 
> (1, 206)
> │ > │ 3,4,6   | True            | True    | 
> (1, 149)
> │ > │ 2,4,6   | False           | False   | 
> (1, 150)
> │ > │ 
> │ > │ Averages
> │ > │ Test case 1. Average Time: 165L
> │ > │ 
> │ > │ Ranking
> │ > │ Test case 1. Average Time: 165L
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let solutions = [[
> │ >     "A",
> │ >     fun (a: int[[]]) ->
> │ >         let indices = System.Linq.Enumerable.Range(0, 
> a.Length) |> 
> │ > System.Linq.Enumerable.ToArray
> │ >         System.Array.Sort (a, indices)
> │ > 
> │ >         indices
> │ >         |> Array.take (a.Length - 1)
> │ >         |> Array.exists (fun i -> a.[[i + 1]] - a.[[i]] = 
> 1)
> │ > ]]
> │ > let testCases = seq {
> │ >     [[| 0 |]], false
> │ >     [[| 1; 2 |]], true
> │ >     [[| 3; 5 |]], false
> │ >     [[| 3; 4; 6 |]], true
> │ >     [[| 2; 4; 6 |]], false
> │ > }
> │ > let rec hasAnyPairCloseToEachotherTests =
> │ >     runAll (nameof hasAnyPairCloseToEachotherTests) _count 
> solutions testCases
> │ > hasAnyPairCloseToEachotherTests
> │ > |> sortResultList
> │ > 
> │ > ── [ 735.62ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 
> │ > │ 
> │ > │ Test: hasAnyPairCloseToEachotherTests
> │ > │ 
> │ > │ Solution: 0  
> │ > │ Test case 1. A. Time: 1L  
> │ > │ 
> │ > │ Solution: 1,2  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ 
> │ > │ Solution: 3,5  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ 
> │ > │ Solution: 3,4,6  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ 
> │ > │ Solution: 2,4,6  
> │ > │ Test case 1. A. Time: 0L  
> │ > │ 
> │ > │ Input	| Expected	| Result	| Best  
> │ > │ ---  	| ---     	| ---   	| ---   
> │ > │ 0    	| False   	| False 	| (1, 1)
> │ > │ 1,2  	| True    	| True  	| (1, 0)
> │ > │ 3,5  	| False   	| False 	| (1, 0)
> │ > │ 3,4,6	| True    	| True  	| (1, 0)
> │ > │ 2,4,6	| False   	| False 	| (1, 0)
> │ > │ 
> │ > │ Average Ranking  
> │ > │ Test case 1. Average Time: 0L  
> │ > │ 
> │ 00:01:18 v #3 runtime.execute_with_options / result / {
> exit_code = 0; std_trace_length = 84670 }
> │ 00:01:18 d #4 runtime.execute_with_options / { 
> file_name = jupyter; arguments = ["nbconvert", 
> "c:/home/git/polyglot/apps/perf/Perf.dib.ipynb", "--to", "html", 
> "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert 
> "c:/home/git/polyglot/apps/perf/Perf.dib.ipynb" --to html 
> --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:01:19 v #5 ! [NbConvertApp] Converting notebook 
> c:/home/git/polyglot/apps/perf/Perf.dib.ipynb to html
> │ 00:01:19 v #6 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.
> py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a 
> hard error in future nbformat versions. You may want to use `normalize()` on 
> your notebooks before validations (available since nbformat 5.1.4). Previous 
> versions of nbformat are fixing this issue transparently, and will stop doing so
> in the future.
> │ 00:01:19 v #7 !   validate(nb)
> │ 00:01:20 v #8 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\
> highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python
> 3
> │ 00:01:20 v #9 !   return _pygments_highlight(
> │ 00:01:21 v #10 ! [NbConvertApp] Writing 458064 bytes to
> c:\home\git\polyglot\apps\perf\Perf.dib.html
> │ 00:01:21 v #11 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 848 }
> │ 00:01:21 d #12 spiral.run / dib / jupyter nbconvert / {
> exit_code = 0; jupyter_result_length = 848 }
> │ 00:01:21 d #13 runtime.execute_with_options / { 
> file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/perf/Perf.dib.html'; (Get-Content $path -Raw) 
> -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } 
> | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/perf/Perf.dib.html'; (Get-Content $path -Raw) 
> -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | 
> Set-Content $path"; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:01:21 v #14 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 0 }
> │ 00:01:21 d #15 spiral.run / dib / html cell ids / { 
> exit_code = 0; pwsh_replace_html_result_length = 0 }
> │ 00:01:21 d #16 spiral.run / dib / { exit_code = 0; 
> result_length = 85577 }
> │ 00:00:00 d #1 writeDibCode / output: Fs / path: Perf.dib
> │ 00:00:00 d #2 parseDibCode / output: Fs / file: Perf.dib
> │ 
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> { pwsh ../apps/dir-tree-html/build.ps1 } | Invoke-Block
> 
> ── [ 54.73s - stdout ] ─────────────────────────────────────────────────────────
> │ 00:00:00 d #1 spiral.main / { args = 
> Array(MutCell(["dib", "--path", "DirTreeHtml.dib"])) }
> │ 00:00:00 d #2 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", 
> "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib", "--output-path", 
> "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb"]; options = { 
> command = dotnet repl --exit-after-run --run 
> "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib" --output-path 
> "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb"; 
> cancellation_token = None; environment_variables = 
> Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = 
> None; stdin = None; trace = false; working_directory = None } }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ # DirTreeHtml (Polyglot)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
> │ > dard2.1/FSharp.Control.AsyncSeq.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
> │ > 0/System.Reactive.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
> │ > netstandard2.0/System.Reactive.Linq.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll"
> │ > #r 
> │ > 
> @"../../../../../../../.nuget/packages/falco.markup/1.1.1/lib/netstandard2.0/Fal
> │ > co.Markup.dll"
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > #if !INTERACTIVE
> │ > open Lib
> │ > #endif
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > open SpiralFileSystem.Operators
> │ > open Falco.Markup
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > type FileSystemNode =
> │ >     | File of string * string * int64
> │ >     | Folder of string * string * FileSystemNode list
> │ >     | Root of FileSystemNode list
> │ > 
> │ > let rec scanDirectory isRoot (basePath : string) (path : 
> string) =
> │ >     let relativePath =
> │ >         path
> │ >         |> SpiralSm.replace basePath ""
> │ >         |> SpiralSm.replace "\\" "/"
> │ >         |> SpiralSm.replace "//" "/"
> │ >         |> SpiralSm.trim_start [[| '/' |]]
> │ > 
> │ >     let directories =
> │ >         path
> │ >         |> System.IO.Directory.GetDirectories
> │ >         |> Array.toList
> │ >         |> List.sort
> │ >         |> List.map (scanDirectory false basePath)
> │ >     let files =
> │ >         path
> │ >         |> System.IO.Directory.GetFiles
> │ >         |> Array.toList
> │ >         |> List.sort
> │ >         |> List.map (fun f -> File 
> (System.IO.Path.GetFileName f, relativePath, 
> │ > System.IO.FileInfo(f).Length))
> │ > 
> │ >     let children = directories @ files
> │ >     if isRoot
> │ >     then Root children
> │ >     else Folder (path |> System.IO.Path.GetFileName, 
> relativePath, children)
> │ > 
> │ > let rec generateHtml fsNode =
> │ >     let sizeLabel size =
> │ >         match float size with
> │ >         | size when size > 1024.0 * 1024.0 -> $"%.2f{size /
> 1024.0 / 1024.0} MB"
> │ >         | size when size > 1024.0 -> $"%.2f{size / 1024.0} 
> KB"
> │ >         | size -> $"%.2f{size} B"
> │ >     match fsNode with
> │ >     | File (fileName, relativePath, size) ->
> │ >         Elem.div [[]] [[
> │ >             Text.raw "&#128196; "
> │ >             Elem.a [[
> │ >                 Attr.href $"""{relativePath}{if 
> relativePath = "" then "" else 
> │ > "/"}{fileName}"""
> │ >             ]] [[
> │ >                 Text.raw fileName
> │ >             ]]
> │ >             Elem.span [[]] [[
> │ >                 Text.raw $" ({size |> sizeLabel})"
> │ >             ]]
> │ >         ]]
> │ >     | Folder (folderName, relativePath, children) ->
> │ >         let size =
> │ >             let rec loop children =
> │ >                 children
> │ >                 |> List.sumBy (function
> │ >                     | File (_, _, size) -> size
> │ >                     | Folder (_, _, children)
> │ >                     | Root children -> loop children
> │ >                 )
> │ >             loop children
> │ >         Elem.details [[
> │ >             Attr.open' "true"
> │ >         ]] [[
> │ >             Elem.summary [[]] [[
> │ >                 Text.raw "&#128194; "
> │ >                 Elem.a [[
> │ >                     Attr.href relativePath
> │ >                 ]] [[
> │ >                     Text.raw folderName
> │ >                 ]]
> │ >                 Elem.span [[]] [[
> │ >                     Text.raw $" ({size |> sizeLabel})"
> │ >                 ]]
> │ >             ]]
> │ >             Elem.div [[]] [[
> │ >                 yield! children |> List.map generateHtml
> │ >             ]]
> │ >         ]]
> │ >     | Root children ->
> │ >         Elem.div [[]] [[
> │ >             yield! children |> List.map generateHtml
> │ >         ]]
> │ > 
> │ > let generateHtmlForFileSystem root =
> │ >     $"""<!DOCTYPE html>
> │ > <html lang="en">
> │ > <head>
> │ >   <meta charset="UTF-8">
> │ >   <style>
> │ > body {{
> │ >     background-color: #222;
> │ >     color: #ccc;
> │ > }}
> │ > a {{
> │ >   color: #777;
> │ >   font-size: 15px;
> │ > }}
> │ > span {{
> │ >   font-size: 11px;
> │ > }}
> │ > div > div {{
> │ >   padding-left: 10px;
> │ > }}
> │ > details > div {{
> │ >   padding-left: 19px;
> │ > }}
> │ >   </style>
> │ > </head>
> │ > <body>
> │ >   {root |> generateHtml |> renderNode}
> │ > </body>
> │ > </html>
> │ > """
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let expected = """<!DOCTYPE html>
> │ > <html lang="en">
> │ > <head>
> │ >   <meta charset="UTF-8">
> │ >   <style>
> │ > body {
> │ >     background-color: #222;
> │ >     color: #ccc;
> │ > }
> │ > a {
> │ >   color: #777;
> │ >   font-size: 15px;
> │ > }
> │ > span {
> │ >   font-size: 11px;
> │ > }
> │ > div > div {
> │ >   padding-left: 10px;
> │ > }
> │ > details > div {
> │ >   padding-left: 19px;
> │ > }
> │ >   </style>
> │ > </head>
> │ > <body>
> │ >   <div><details open="true"><summary>&#128194; <a 
> href="_.root">_.root</a><span>
> │ > (10.00 B)</span></summary><div><details 
> open="true"><summary>&#128194; <a 
> │ > href="_.root/3">3</a><span> (6.00 
> B)</span></summary><div><details 
> │ > open="true"><summary>&#128194; <a 
> href="_.root/3/2">2</a><span> (3.00 
> │ > B)</span></summary><div><details 
> open="true"><summary>&#128194; <a 
> │ > href="_.root/3/2/1">1</a><span> (1.00 
> B)</span></summary><div><div>&#128196; <a 
> │ > href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00 
> │ > B)</span></div></div></details><div>&#128196; <a 
> │ > href="_.root/3/2/file.txt">file.txt</a><span> (2.00 
> │ > B)</span></div></div></details><div>&#128196; <a 
> │ > href="_.root/3/file.txt">file.txt</a><span> (3.00 
> │ > B)</span></div></div></details><div>&#128196; <a 
> │ > href="_.root/file.txt">file.txt</a><span> (4.00 
> │ > B)</span></div></div></details></div>
> │ > </body>
> │ > </html>
> │ > """
> │ > 
> │ > let struct (tempFolder, disposable) = expected |> 
> SpiralCrypto.hash_text |> 
> │ > SpiralFileSystem.create_temp_dir'
> │ > let rec loop d n = async {
> │ >     if n >= 0 then
> │ >         tempFolder </> d |> 
> System.IO.Directory.CreateDirectory |> ignore
> │ >         do!
> │ >             n
> │ >             |> string
> │ >             |> String.replicate (n + 1)
> │ >             |> SpiralFileSystem.write_all_text_async 
> (tempFolder </> d </> 
> │ > $"file.txt")
> │ >         do! loop $"{d}/{n}" (n - 1)
> │ > }
> │ > loop "_.root" 3
> │ > |> Async.RunSynchronously
> │ > 
> │ > let html =
> │ >     scanDirectory true tempFolder tempFolder
> │ >     |> generateHtmlForFileSystem
> │ > 
> │ > html
> │ > |> _assertEqual expected
> │ > 
> │ > disposable.Dispose ()
> │ > 
> │ > html |> 
> Microsoft.DotNet.Interactive.Formatting.Html.ToHtmlContent
> │ > 
> │ > ── [ 152.27ms - return value ] 
> ─────────────────────────────────────────────────
> │ > │ <!DOCTYPE html>
> │ > │ <html lang="en">
> │ > │ <head>
> │ > │   <meta charset="UTF-8">
> │ > │   <style>
> │ > │ body {
> │ > │     background-color: #222;
> │ > │     color: #ccc;
> │ > │ }
> │ > │ a {
> │ > │   color: #777;
> │ > │   font-size: 15px;
> │ > │ }
> │ > │ span {
> │ > │   font-size: 11px;
> │ > │ }
> │ > │ div > div {
> │ > │   padding-left: 10px;
> │ > │ }
> │ > │ details > div {
> │ > │   padding-left: 19px;
> │ > │ }
> │ > │   </style>
> │ > │ </head>
> │ > │ <body>
> │ > │   <div><details 
> open="true"><summary>&#128194; <a 
> │ > href="_.root">_.root</a><span> (10.00 
> B)</span></summary><div><details 
> │ > open="true"><summary>&#128194; <a 
> href="_.root/3">3</a><span> (6.00 
> │ > B)</span></summary><div><details 
> open="true"><summary>&#128194; <a 
> │ > href="_.root/3/2">2</a><span> (3.00 
> B)</span></summary><div><details 
> │ > open="true"><summary>&#128194; <a 
> href="_.root/3/2/1">1</a><span> (1.00 
> │ > B)</span></summary><div><div>&#128196; <a 
> │ > href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00 
> │ > B)</span></div></div></details><div>&#128196; <a 
> │ > href="_.root/3/2/file.txt">file.txt</a><span> (2.00 
> │ > B)</span></div></div></details><div>&#128196; <a 
> │ > href="_.root/3/file.txt">file.txt</a><span> (3.00 
> │ > B)</span></div></div></details><div>&#128196; <a 
> │ > href="_.root/file.txt">file.txt</a><span> (4.00 
> │ > B)</span></div></div></details></div>
> │ > │ </body>
> │ > │ </html>
> │ > │ 
> │ > 
> │ > ── [ 156.28ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ "<!DOCTYPE html>
> │ > │ <html lang="en">
> │ > │ <head>
> │ > │   <meta charset="UTF-8">
> │ > │   <style>
> │ > │ body {
> │ > │     background-color: #222;
> │ > │     color: #ccc;
> │ > │ }
> │ > │ a {
> │ > │   color: #777;
> │ > │   font-size: 15px;
> │ > │ }
> │ > │ span {
> │ > │   font-size: 11px;
> │ > │ }
> │ > │ div > div {
> │ > │   padding-left: 10px;
> │ > │ }
> │ > │ details > div {
> │ > │   padding-left: 19px;
> │ > │ }
> │ > │   </style>
> │ > │ </head>
> │ > │ <body>
> │ > │   <div><details 
> open="true"><summary>&#128194; <a 
> │ > href="_.root">_.root</a><span> (10.00 
> B)</span></summary><div><details 
> │ > open="true"><summary>&#128194; <a 
> href="_.root/3">3</a><span> (6.00 
> │ > B)</span></summary><div><details 
> open="true"><summary>&#128194; <a 
> │ > href="_.root/3/2">2</a><span> (3.00 
> B)</span></summary><div><details 
> │ > open="true"><summary>&#128194; <a 
> href="_.root/3/2/1">1</a><span> (1.00 
> │ > B)</span></summary><div><div>&#128196; <a 
> │ > href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00 
> │ > B)</span></div></div></details><div>&#128196; <a 
> │ > href="_.root/3/2/file.txt">file.txt</a><span> (2.00 
> │ > B)</span></div></div></details><div>&#128196; <a 
> │ > href="_.root/3/file.txt">file.txt</a><span> (3.00 
> │ > B)</span></div></div></details><div>&#128196; <a 
> │ > href="_.root/file.txt">file.txt</a><span> (4.00 
> │ > B)</span></div></div></details></div>
> │ > │ </body>
> │ > │ </html>
> │ > │ "
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## Arguments
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > [[<RequireQualifiedAccess>]]
> │ > type Arguments =
> │ >     | [[<Argu.ArguAttributes.ExactlyOnce>]] Dir of string
> │ >     | [[<Argu.ArguAttributes.ExactlyOnce>]] Html of string
> │ > 
> │ >     interface Argu.IArgParserTemplate with
> │ >         member s.Usage =
> │ >             match s with
> │ >             | Dir _ -> nameof Dir
> │ >             | Html _ -> nameof Html
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
> │ > 
> │ > ── [ 83.68ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ "USAGE: dotnet-repl [--help] --dir 
> <string> --html <string>
> │ > │ 
> │ > │ OPTIONS:
> │ > │ 
> │ > │     --dir <string>        Dir
> │ > │     --html <string>       Html
> │ > │     --help                display this 
> list of options.
> │ > │ "
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## main
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let main args =
> │ >     let argsMap = args |> Runtime.parseArgsMap<Arguments>
> │ > 
> │ >     let dir =
> │ >         match argsMap.[[nameof Arguments.Dir]] with
> │ >         | [[ Arguments.Dir dir ]] -> Some dir
> │ >         | _ -> None
> │ >         |> Option.get
> │ > 
> │ >     let htmlPath =
> │ >         match argsMap.[[nameof Arguments.Html]] with
> │ >         | [[ Arguments.Html html ]] -> Some html
> │ >         | _ -> None
> │ >         |> Option.get
> │ > 
> │ >     let fileSystem = scanDirectory true dir dir
> │ >     let html = generateHtmlForFileSystem fileSystem
> │ > 
> │ >     html |> SpiralFileSystem.write_all_text_async htmlPath
> │ >     |> Async.runWithTimeout 30000
> │ >     |> function
> │ >         | Some () -> 0
> │ >         | None -> 1
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let args =
> │ >     System.Environment.GetEnvironmentVariable "ARGS"
> │ >     |> SpiralRuntime.split_args
> │ >     |> Result.toArray
> │ >     |> Array.collect id
> │ > 
> │ > match args with
> │ > | [[||]] -> 0
> │ > | args -> if main args = 0 then 0 else failwith "main 
> failed"
> │ > 
> │ > ── [ 73.09ms - return value ] 
> ──────────────────────────────────────────────────
> │ > │ <div class="dni-plaintext"><pre>0
> │ > │ </pre></div><style>
> │ > │ .dni-code-hint {
> │ > │     font-style: italic;
> │ > │     overflow: hidden;
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview {
> │ > │     white-space: nowrap;
> │ > │ }
> │ > │ .dni-treeview td {
> │ > │     vertical-align: top;
> │ > │     text-align: start;
> │ > │ }
> │ > │ details.dni-treeview {
> │ > │     padding-left: 1em;
> │ > │ }
> │ > │ table td {
> │ > │     text-align: start;
> │ > │ }
> │ > │ table tr { 
> │ > │     vertical-align: top; 
> │ > │     margin: 0em 0px;
> │ > │ }
> │ > │ table tr td pre 
> │ > │ { 
> │ > │     vertical-align: top !important; 
> │ > │     margin: 0em 0px !important;
> │ > │ } 
> │ > │ table th {
> │ > │     text-align: start;
> │ > │ }
> │ > │ </style>
> │ 00:00:20 v #3 runtime.execute_with_options / result / {
> exit_code = 0; std_trace_length = 13688 }
> │ 00:00:20 d #4 runtime.execute_with_options / { 
> file_name = jupyter; arguments = ["nbconvert", 
> "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb", "--to", "html",
> "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert 
> "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb" --to html 
> --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:00:21 v #5 ! [NbConvertApp] Converting notebook 
> c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb to html
> │ 00:00:21 v #6 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.
> py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a 
> hard error in future nbformat versions. You may want to use `normalize()` on 
> your notebooks before validations (available since nbformat 5.1.4). Previous 
> versions of nbformat are fixing this issue transparently, and will stop doing so
> in the future.
> │ 00:00:21 v #7 !   validate(nb)
> │ 00:00:21 v #8 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\
> highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python
> 3
> │ 00:00:21 v #9 !   return _pygments_highlight(
> │ 00:00:22 v #10 ! [NbConvertApp] Writing 310059 bytes to
> c:\home\git\polyglot\apps\dir-tree-html\DirTreeHtml.dib.html
> │ 00:00:22 v #11 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 880 }
> │ 00:00:22 d #12 spiral.run / dib / jupyter nbconvert / {
> exit_code = 0; jupyter_result_length = 880 }
> │ 00:00:22 d #13 runtime.execute_with_options / { 
> file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.html'; (Get-Content 
> $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + 
> $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1;
> $path = 'c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.html'; 
> (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { 
> $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = 
> None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; 
> trace = true; working_directory = None } }
> │ 00:00:22 v #14 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 0 }
> │ 00:00:22 d #15 spiral.run / dib / html cell ids / { 
> exit_code = 0; pwsh_replace_html_result_length = 0 }
> │ 00:00:22 d #16 spiral.run / dib / { exit_code = 0; 
> result_length = 14627 }
> │ 00:00:00 d #1 writeDibCode / output: Fs / path: 
> DirTreeHtml.dib
> │ 00:00:00 d #2 parseDibCode / output: Fs / file: 
> DirTreeHtml.dib
> │ 00:00:00 d #1 persistCodeProject / packages: [Argu; 
> Falco.Markup; FSharp.Control.AsyncSeq; ... ] / modules: 
> [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; 
> deps/spiral/lib/spiral/crypto.fsx; ... ] / name: DirTreeHtml / hash:  / 
> code.Length: 4638
> │ 00:00:00 d #2 buildProject / fullPath: 
> c:\home\git\polyglot\target\Builder\DirTreeHtml\DirTreeHtml.fsproj
> │ 00:00:00 d #1 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   "publish 
> "c:/home/git\polyglot\target/Builder\DirTreeHtml\DirTreeHtml.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" 
> --runtime linux-x64"; options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\DirTreeHtml\DirTreeHtml.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" 
> --runtime linux-x64; cancellation_token = None; environment_variables = [||]; 
> on_line = None; stdin = None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\DirTreeHtml" } }
> │ 00:00:01 v #2 >   Determining projects to restore...
> │ 00:00:01 v #3 >   Paket version 
> 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ 00:00:01 v #4 >   The last full restore is still up to 
> date. Nothing left to do.
> │ 00:00:01 v #5 >   Total time taken: 0 milliseconds
> │ 00:00:02 v #6 >   Restored 
> c:\home\git\polyglot\target\Builder\DirTreeHtml\DirTreeHtml.fsproj (in 302 ms).
> │ 00:00:14 v #7 >   DirTreeHtml -> 
> c:\home\git\polyglot\target\Builder\DirTreeHtml\bin\Release\net9.0\linux-x64\Dir
> TreeHtml.dll
> │ 00:00:16 v #8 >   DirTreeHtml -> 
> C:\home\git\polyglot\apps\dir-tree-html\dist\
> │ 00:00:16 d #9 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 463; options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\DirTreeHtml\DirTreeHtml.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" 
> --runtime linux-x64; cancellation_token = None; environment_variables = [||]; 
> on_line = None; stdin = None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\DirTreeHtml" } }
> │ 00:00:16 d #10 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   "publish 
> "c:/home/git\polyglot\target/Builder\DirTreeHtml\DirTreeHtml.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" 
> --runtime win-x64"; options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\DirTreeHtml\DirTreeHtml.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" 
> --runtime win-x64; cancellation_token = None; environment_variables = [||]; 
> on_line = None; stdin = None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\DirTreeHtml" } }
> │ 00:00:16 v #11 >   Determining projects to restore...
> │ 00:00:17 v #12 >   Paket version 
> 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ 00:00:17 v #13 >   The last full restore is still up to 
> date. Nothing left to do.
> │ 00:00:17 v #14 >   Total time taken: 0 milliseconds
> │ 00:00:17 v #15 >   Restored 
> c:\home\git\polyglot\target\Builder\DirTreeHtml\DirTreeHtml.fsproj (in 306 ms).
> │ 00:00:29 v #16 >   DirTreeHtml -> 
> c:\home\git\polyglot\target\Builder\DirTreeHtml\bin\Release\net9.0\win-x64\DirTr
> eeHtml.dll
> │ 00:00:30 v #17 >   DirTreeHtml -> 
> C:\home\git\polyglot\apps\dir-tree-html\dist\
> │ 00:00:31 d #18 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 461; options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\DirTreeHtml\DirTreeHtml.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" 
> --runtime win-x64; cancellation_token = None; environment_variables = [||]; 
> on_line = None; stdin = None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\DirTreeHtml" } }
> │ polyglot/apps/dir-tree-html/build.ps1 / $env:CI:''
> │ 
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> { pwsh ../apps/scheduler/build.ps1 } | Invoke-Block
> 
> ── [ 4.73m - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:00 d #1 spiral.main / { args = 
> Array(MutCell(["dib", "--path", "Tasks.dib", "--retries", "3"])) }
> │ 00:00:00 d #2 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", 
> "c:/home/git/polyglot/apps/scheduler/Tasks.dib", "--output-path", 
> "c:/home/git/polyglot/apps/scheduler/Tasks.dib.ipynb"]; options = { command = 
> dotnet repl --exit-after-run --run 
> "c:/home/git/polyglot/apps/scheduler/Tasks.dib" --output-path 
> "c:/home/git/polyglot/apps/scheduler/Tasks.dib.ipynb"; cancellation_token = 
> None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), 
> ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; 
> working_directory = None } }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## Tasks (Polyglot)
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > open testing
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## task_name
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > nominal task_name = string
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## manual_scheduling
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > union manual_scheduling =
> │ >     | WithSuggestion
> │ >     | WithoutSuggestion
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## recurrency_offset
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > union recurrency_offset =
> │ >     | Days : i32
> │ >     | Weeks : i32
> │ >     | Months : i32
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## day_of_week
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > union day_of_week =
> │ >     | Sunday
> │ >     | Monday
> │ >     | Tuesday
> │ >     | Wednesday
> │ >     | Thursday
> │ >     | Friday
> │ >     | Saturday
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## month
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > union month =
> │ >     | January
> │ >     | February
> │ >     | March
> │ >     | April
> │ >     | May
> │ >     | June
> │ >     | July
> │ >     | August
> │ >     | September
> │ >     | October
> │ >     | November
> │ >     | December
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## day
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > nominal day = i32
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## year
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > nominal year = i32
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## fixed_recurrency
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > union fixed_recurrency =
> │ >     | Weekly : day_of_week
> │ >     | Monthly : day
> │ >     | Yearly : day * month
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## recurrency
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > union recurrency =
> │ >     | Offset : recurrency_offset
> │ >     | Fixed : list fixed_recurrency
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## scheduling
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > union scheduling =
> │ >     | Manual : manual_scheduling
> │ >     | Recurrent : recurrency
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## task
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > type task =
> │ >     {
> │ >         name : task_name
> │ >         scheduling : scheduling
> │ >     }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## date
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > type date =
> │ >     {
> │ >         year : year
> │ >         month : month
> │ >         day : day
> │ >     }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## status
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > union status =
> │ >     | Postponed : option ()
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## event
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > type event =
> │ >     {
> │ >         date : date
> │ >         status : status
> │ >     }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## task_template
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > type task_template =
> │ >     {
> │ >         task : task
> │ >         events : list event
> │ >     }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## get_tasks (test)
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > inl get_tasks () : list task_template =
> │ >     [[
> │ >         {
> │ >             task =
> │ >                 {
> │ >                     name = task_name "01"
> │ >                     scheduling = Manual WithSuggestion
> │ >                 }
> │ >             events = [[]]
> │ >         }
> │ >         {
> │ >             task =
> │ >                 {
> │ >                     name = task_name "02"
> │ >                     scheduling = Manual WithSuggestion
> │ >                 }
> │ >             events = [[]]
> │ >         }
> │ >         {
> │ >             task =
> │ >                 {
> │ >                     name = task_name "03"
> │ >                     scheduling = Manual WithSuggestion
> │ >                 }
> │ >             events = [[]]
> │ >         }
> │ >     ]]
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! fsharp
> │ > ///! cuda
> │ > ///! rust
> │ > ///! typescript
> │ > ///! python
> │ > 
> │ > get_tasks ()
> │ > |> sm'.format_debug
> │ > |> _assert sm'.contains "01"
> │ > 
> │ > ── [ 2.73m - return value ] 
> ────────────────────────────────────────────────────
> │ > │ .py output (Cuda):
> │ > │ { name = __assert; actual = 01; expected
> = UH2_1(v0='01', 
> │ > v1=US1_0(v0=US0_0()), v2=UH1_0(), v3=UH2_1(v0='02', 
> v1=US1_0(v0=US0_0()), 
> │ > v2=UH1_0(), v3=UH2_1(v0='03', v1=US1_0(v0=US0_0()), 
> v2=UH1_0(), v3=UH2_0()))) }
> │ > │ 
> │ > │ .rs output:
> │ > │ { name = __assert; actual = 01; expected
> = UH2_1("01", 
> │ > US1_0(US0_0), UH1_0, UH2_1("02", US1_0(US0_0), UH1_0, 
> UH2_1("03", US1_0(US0_0), 
> │ > UH1_0, UH2_0))) }
> │ > │ 
> │ > │ .ts output:
> │ > │ { name = __assert; actual = 01; expected
> = UH2_1 (01, US1_0 
> │ > US0_0, UH1_0, UH2_1 (02, US1_0 US0_0, UH1_0, UH2_1 (03, 
> US1_0 US0_0, UH1_0, 
> │ > UH2_0))) }
> │ > │ 
> │ > │ .py output:
> │ > │ { name = __assert; actual = 01; expected
> = UH2_1 ("01", US1_0
> │ > US0_0, UH1_0, UH2_1 ("02", US1_0 US0_0, UH1_0, UH2_1 ("03",
> US1_0 US0_0, UH1_0, 
> │ > UH2_0))) }
> │ > │ 
> │ > │ 
> │ > 
> │ > ── [ 2.73m - stdout ] 
> ──────────────────────────────────────────────────────────
> │ > │ .fsx output:
> │ > │ { name = __assert; actual = 01; expected
> = UH2_1
> │ > │   ("01", US1_0 US0_0, UH1_0,
> │ > │    UH2_1 ("02", US1_0 US0_0, UH1_0, 
> UH2_1 ("03", US1_0 US0_0,
> │ > UH1_0, UH2_0))) }
> │ > │ 
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! fsharp
> │ > ///! cuda
> │ > ///! rust
> │ > ///! typescript
> │ > ///! python
> │ > 
> │ > get_tasks ()
> │ > |> listm'.try_item 0i32
> │ > |> fun (Some task) => task.task.name
> │ > |> _assert_eq (task_name "01")
> │ > 
> │ > ── [ 1.73m - return value ] 
> ────────────────────────────────────────────────────
> │ > │ .py output (Cuda):
> │ > │ { name = __assert_eq; actual = 01; 
> expected = 01 }
> │ > │ 
> │ > │ .rs output:
> │ > │ { name = __assert_eq; actual = "01"; 
> expected = "01" }
> │ > │ 
> │ > │ .ts output:
> │ > │ { name = __assert_eq; actual = 01; 
> expected = 01 }
> │ > │ 
> │ > │ .py output:
> │ > │ { name = __assert_eq; actual = 01; 
> expected = 01 }
> │ > │ 
> │ > │ 
> │ > 
> │ > ── [ 1.73m - stdout ] 
> ──────────────────────────────────────────────────────────
> │ > │ .fsx output:
> │ > │ { name = __assert_eq; actual = "01"; 
> expected = "01" }
> │ > │ 
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! fsharp
> │ > ////! cuda
> │ > ////! typescript
> │ > ////! python
> │ > ///// print_code
> │ > 
> │ > inl print padding cols =
> │ >     ({ lines = [[]]; last_lines = [[]]; max_acc = 0i32 }, 
> cols)
> │ >     ||> listm.fold fun { last_lines max_acc } lines =>
> │ >         inl { count max } =
> │ >             (lines, { count = 0i32; max = 0i32 })
> │ >             ||> listm.foldBack fun line { count max } => {
> │ >                 count = count + 1
> │ >                 max =
> │ >                     inl len = line |> sm'.length
> │ >                     if len > max
> │ >                     then len
> │ >                     else max
> │ >             }
> │ >         inl { lines } =
> │ >             (lines, { lines = [[]]; i = 0i32 })
> │ >             ||> listm.foldBack fun line { lines i } => {
> │ >                 lines =
> │ >                     inl last_line =
> │ >                         last_lines
> │ >                         |> listm'.try_item (count - i - 1)
> │ >                         |> optionm'.default_with fun () =>
> │ >                             " " |> sm'.replicate max_acc
> │ >                     inl line =
> │ >                         if padding = 0
> │ >                         then line
> │ >                         else
> │ >                             inl padding = " " |> 
> sm'.replicate padding
> │ >                             $'$"{!line}{!padding}"'
> │ >                     inl line = line |> sm'.pad_right (max +
> padding) ' '
> │ >                     $'$"{!last_line}{!line}"' :: lines
> │ >                 i = i + 1
> │ >             }
> │ >         {
> │ >             lines
> │ >             last_lines = lines
> │ >             max_acc = max_acc + max + padding
> │ >         }
> │ >     |> fun x => x.lines
> │ >     |> listm'.box
> │ >     |> seq.of_list'
> │ >     |> sm'.concat "\n"
> │ > 
> │ > inl col () =
> │ >     [[ "Task" ]]
> │ >     ++ (
> │ >         get_tasks ()
> │ >         |> listm.map fun task =>
> │ >             inl (task_name name) = task.task.name
> │ >             name
> │ >     )
> │ > 
> │ > inl cols () =
> │ >     [[
> │ >         col ()
> │ >         col ()
> │ >         [[ "a"; "b"; "c"; "d"; "e" ]]
> │ >     ]]
> │ > 
> │ > inl main () =
> │ >     cols ()
> │ >     |> print 1i32
> │ >     |> console.write_line
> │ > 
> │ > ── [ 359.65ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ Task Task a 
> │ > │ 01   01   b 
> │ > │ 02   02   c 
> │ > │ 03   03   d 
> │ > │           e 
> │ > │ 
> │ 00:04:40 v #3 runtime.execute_with_options / result / {
> exit_code = 0; std_trace_length = 10383 }
> │ 00:04:40 d #4 runtime.execute_with_options / { 
> file_name = jupyter; arguments = ["nbconvert", 
> "c:/home/git/polyglot/apps/scheduler/Tasks.dib.ipynb", "--to", "html", 
> "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert 
> "c:/home/git/polyglot/apps/scheduler/Tasks.dib.ipynb" --to html 
> --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:04:41 v #5 ! [NbConvertApp] Converting notebook 
> c:/home/git/polyglot/apps/scheduler/Tasks.dib.ipynb to html
> │ 00:04:41 v #6 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.
> py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a 
> hard error in future nbformat versions. You may want to use `normalize()` on 
> your notebooks before validations (available since nbformat 5.1.4). Previous 
> versions of nbformat are fixing this issue transparently, and will stop doing so
> in the future.
> │ 00:04:41 v #7 !   validate(nb)
> │ 00:04:42 v #8 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\
> highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python
> 3
> │ 00:04:42 v #9 !   return _pygments_highlight(
> │ 00:04:42 v #10 ! [NbConvertApp] Writing 310021 bytes to
> c:\home\git\polyglot\apps\scheduler\Tasks.dib.html
> │ 00:04:42 v #11 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 860 }
> │ 00:04:42 d #12 spiral.run / dib / jupyter nbconvert / {
> exit_code = 0; jupyter_result_length = 860 }
> │ 00:04:42 d #13 runtime.execute_with_options / { 
> file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/scheduler/Tasks.dib.html'; (Get-Content $path -Raw) 
> -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } 
> | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/scheduler/Tasks.dib.html'; (Get-Content $path -Raw) 
> -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | 
> Set-Content $path"; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:04:42 v #14 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 0 }
> │ 00:04:42 d #15 spiral.run / dib / html cell ids / { 
> exit_code = 0; pwsh_replace_html_result_length = 0 }
> │ 00:04:42 d #16 spiral.run / dib / { exit_code = 0; 
> result_length = 11302 }
> │ 00:00:00 d #1 writeDibCode / output: Spi / path: 
> Tasks.dib
> │ 00:00:00 d #2 parseDibCode / output: Spi / file: 
> Tasks.dib
> │ 
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> { pwsh ../apps/chat/build.ps1 } | Invoke-Block
> 
> ── [ 22.17m - stdout ] ─────────────────────────────────────────────────────────
> │ 00:00:00 d #1 spiral.main / { args = 
> Array(MutCell(["dib", "--path", "chat_contract.dib", "--retries", "1"])) }
> │ 00:00:00 d #2 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", 
> "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib", "--output-path", 
> "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.ipynb"]; options = { 
> command = dotnet repl --exit-after-run --run 
> "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib" --output-path 
> "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.ipynb"; 
> cancellation_token = None; environment_variables = 
> Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = 
> None; stdin = None; trace = false; working_directory = None } }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ # chat_contract
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > open rust
> │ > open rust.rust_operators
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > open testing
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## chat_contract
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### state
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > type state =
> │ >     {
> │ >         version : u32
> │ >         account_set : near.iterable_set near.account_id
> │ >         alias_set : near.iterable_set sm'.std_string
> │ >         account_map : near.lookup_map near.account_id 
> sm'.std_string
> │ >         alias_map : near.lookup_map sm'.std_string 
> (mapm.hash_map 
> │ > near.account_id (u64 * u32))
> │ >     }
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -c
> │ > 
> │ > ()
> │ > 
> │ > ── [ 54.66s - return value ] 
> ───────────────────────────────────────────────────
> │ > │ Installed near-sandbox into 
> │ > 
> /mnt/c/home/git/spiral/workspace/target/release/build/near-sandbox-utils-cdf556a
> │ > 
> 7364ec456/out/.near/near-sandbox-1.40.0_7dd0b5993577f592be15eb102e5a3da37be66271
> │ > /near-sandbox
> │ > │  
> │ > │ 00:00:15 i #2 
> near_workspaces.print_usd / { retry = 1; 
> │ > total_gas_burnt_usd = +0.000957; total_gas_burnt = 
> 1432554003351 }
> │ > │ 00:00:15 i #3 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000206; 
> tokens_burnt_usd = +0.000206; 
> │ > gas_burnt = 308081859340; tokens_burnt = 
> 30808185934000000000 }
> │ > │ 00:00:15 i #4 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000602; 
> tokens_burnt_usd = +0.000602; 
> │ > gas_burnt = 901289581511; tokens_burnt = 
> 90128958151100000000 }
> │ > │ 00:00:15 i #5 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000149; 
> tokens_burnt_usd = +0.000000; 
> │ > gas_burnt = 223182562500; tokens_burnt = 0 }
> │ > │ 
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -c
> │ > 
> │ > trace Verbose (fun () => "") id
> │ > 
> │ > ── [ 30.61s - return value ] 
> ───────────────────────────────────────────────────
> │ > │  
> │ > │ 00:00:09 i #2 
> near_workspaces.print_usd / { retry = 1; 
> │ > total_gas_burnt_usd = +0.000884; total_gas_burnt = 
> 1323849918887 }
> │ > │ 00:00:09 i #3 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000206; 
> tokens_burnt_usd = +0.000206; 
> │ > gas_burnt = 308081859340; tokens_burnt = 
> 30808185934000000000 }
> │ > │ 00:00:09 i #4 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000679; 
> tokens_burnt_usd = +0.000679; 
> │ > gas_burnt = 1015768059547; tokens_burnt = 
> 101576805954700000000 }
> │ > │ 00:00:09 w #5 spiral_wasm.run / 
> Error error / { retry =
> │ > 1; error = "{ receipt_outcomes_len = 1; retry = 1; 
> receipt_failures = [] }" }
> │ > │ 
> │ > │ 
> │ > │  
> │ > │ 00:00:16 i #8 
> near_workspaces.print_usd / { retry = 2; 
> │ > total_gas_burnt_usd = +0.001033; total_gas_burnt = 
> 1547032481387 }
> │ > │ 00:00:16 i #9 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000206; 
> tokens_burnt_usd = +0.000206; 
> │ > gas_burnt = 308081859340; tokens_burnt = 
> 30808185934000000000 }
> │ > │ 00:00:16 i #10 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000679; 
> tokens_burnt_usd = +0.000679; 
> │ > gas_burnt = 1015768059547; tokens_burnt = 
> 101576805954700000000 }
> │ > │ 00:00:16 i #11 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000149; 
> tokens_burnt_usd = +0.000000; 
> │ > gas_burnt = 223182562500; tokens_burnt = 0 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### new
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl new () : state =
> │ >     {
> │ >         version = 2
> │ >         account_set = "account_set" |> sm'.byte_slice |> 
> near.new_iterable_set
> │ >         alias_set = "alias_set" |> sm'.byte_slice |> 
> near.new_iterable_set
> │ >         account_map = "account_map" |> sm'.byte_slice |> 
> near.new_lookup_map
> │ >         alias_map = "alias_map" |> sm'.byte_slice |> 
> near.new_lookup_map
> │ >     }
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -c
> │ > 
> │ > inl state = new ()
> │ > trace Verbose (fun () => "chat_contract") fun () => { state
> = state |> 
> │ > sm'.format_debug }
> │ > trace Verbose (fun () => "") id
> │ > 
> │ > ── [ 25.96s - return value ] 
> ───────────────────────────────────────────────────
> │ > │ 00:00:00 v #1 chat_contract / { 
> state = (2, IterableSet
> │ > { elements: Vector { len: 0, prefix: [97, 99, 99, 111, 117,
> 110, 116, 95, 115, 
> │ > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 
> 111, 117, 110, 116, 
> │ > 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector
> { len: 0, prefix: 
> │ > [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: 
> LookupMap { prefix: 
> │ > [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, 
> LookupMap { prefix: [97, 
> │ > 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, LookupMap 
> { prefix: [97, 108, 
> │ > 105, 97, 115, 95, 109, 97, 112] }) }
> │ > │  
> │ > │ 00:00:07 i #2 
> near_workspaces.print_usd / { retry = 1; 
> │ > total_gas_burnt_usd = +0.001560; total_gas_burnt = 
> 2335604125612 }
> │ > │ 00:00:07 i #3 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000206; 
> tokens_burnt_usd = +0.000206; 
> │ > gas_burnt = 308081859340; tokens_burnt = 
> 30808185934000000000 }
> │ > │ 00:00:07 i #4 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.001205; 
> tokens_burnt_usd = +0.001205; 
> │ > gas_burnt = 1804339703772; tokens_burnt = 
> 180433970377200000000 }
> │ > │ 00:00:07 i #5 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000149; 
> tokens_burnt_usd = +0.000000; 
> │ > gas_burnt = 223182562500; tokens_burnt = 0 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### is_valid_alias
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl is_valid_alias (alias : sm'.std_string) : bool =
> │ >     inl alias' = alias |> sm'.from_std_string
> │ >     inl alias_len = alias' |> sm'.length
> │ > 
> │ >     alias_len > 0i32
> │ >         && alias_len < 64
> │ >         && (alias' |> sm'.starts_with "-" |> not)
> │ >         && (alias' |> sm'.ends_with "-" |> not)
> │ >         && (alias' |> sm'.as_str |> sm'.chars |> iter.all 
> (fun c => (c |> 
> │ > sm'.char_is_alphanumeric) || c = '-'))
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -c
> │ > 
> │ > ""
> │ > |> sm'.to_std_string
> │ > |> is_valid_alias
> │ > |> _assert_eq false
> │ > 
> │ > ── [ 28.02s - return value ] 
> ───────────────────────────────────────────────────
> │ > │  
> │ > │ 00:00:06 i #2 
> near_workspaces.print_usd / { retry = 1; 
> │ > total_gas_burnt_usd = +0.000862; total_gas_burnt = 
> 1290977563408 }
> │ > │ 00:00:06 i #3 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000206; 
> tokens_burnt_usd = +0.000206; 
> │ > gas_burnt = 308081859340; tokens_burnt = 
> 30808185934000000000 }
> │ > │ 00:00:06 i #4 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000657; 
> tokens_burnt_usd = +0.000657; 
> │ > gas_burnt = 982895704068; tokens_burnt = 
> 98289570406800000000 }
> │ > │ 00:00:06 w #5 spiral_wasm.run / 
> Error error / { retry =
> │ > 1; error = "{ receipt_outcomes_len = 1; retry = 1; 
> receipt_failures = [] }" }
> │ > │ 
> │ > │ 
> │ > │  
> │ > │ 00:00:13 i #8 
> near_workspaces.print_usd / { retry = 2; 
> │ > total_gas_burnt_usd = +0.001011; total_gas_burnt = 
> 1514160125908 }
> │ > │ 00:00:13 i #9 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000206; 
> tokens_burnt_usd = +0.000206; 
> │ > gas_burnt = 308081859340; tokens_burnt = 
> 30808185934000000000 }
> │ > │ 00:00:13 i #10 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000657; 
> tokens_burnt_usd = +0.000657; 
> │ > gas_burnt = 982895704068; tokens_burnt = 
> 98289570406800000000 }
> │ > │ 00:00:13 i #11 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000149; 
> tokens_burnt_usd = +0.000000; 
> │ > gas_burnt = 223182562500; tokens_burnt = 0 }
> │ > │ 
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -c
> │ > 
> │ > "a-"
> │ > |> sm'.to_std_string
> │ > |> is_valid_alias
> │ > |> _assert_eq false
> │ > 
> │ > ── [ 19.56s - return value ] 
> ───────────────────────────────────────────────────
> │ > │  
> │ > │ 00:00:06 i #2 
> near_workspaces.print_usd / { retry = 1; 
> │ > total_gas_burnt_usd = +0.001013; total_gas_burnt = 
> 1516165112863 }
> │ > │ 00:00:06 i #3 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000206; 
> tokens_burnt_usd = +0.000206; 
> │ > gas_burnt = 308081859340; tokens_burnt = 
> 30808185934000000000 }
> │ > │ 00:00:06 i #4 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000658; 
> tokens_burnt_usd = +0.000658; 
> │ > gas_burnt = 984900691023; tokens_burnt = 
> 98490069102300000000 }
> │ > │ 00:00:06 i #5 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000149; 
> tokens_burnt_usd = +0.000000; 
> │ > gas_burnt = 223182562500; tokens_burnt = 0 }
> │ > │ 
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -c
> │ > 
> │ > "a-a"
> │ > |> sm'.to_std_string
> │ > |> is_valid_alias
> │ > |> _assert_eq true
> │ > 
> │ > ── [ 31.98s - return value ] 
> ───────────────────────────────────────────────────
> │ > │  
> │ > │ 00:00:06 i #2 
> near_workspaces.print_usd / { retry = 1; 
> │ > total_gas_burnt_usd = +0.000865; total_gas_burnt = 
> 1294414493769 }
> │ > │ 00:00:06 i #3 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000206; 
> tokens_burnt_usd = +0.000206; 
> │ > gas_burnt = 308081859340; tokens_burnt = 
> 30808185934000000000 }
> │ > │ 00:00:06 i #4 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000659; 
> tokens_burnt_usd = +0.000659; 
> │ > gas_burnt = 986332634429; tokens_burnt = 
> 98633263442900000000 }
> │ > │ 00:00:06 w #5 spiral_wasm.run / 
> Error error / { retry =
> │ > 1; error = "{ receipt_outcomes_len = 1; retry = 1; 
> receipt_failures = [] }" }
> │ > │ 
> │ > │ 
> │ > │  
> │ > │ 00:00:13 i #8 
> near_workspaces.print_usd / { retry = 2; 
> │ > total_gas_burnt_usd = +0.000865; total_gas_burnt = 
> 1294414493769 }
> │ > │ 00:00:13 i #9 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000206; 
> tokens_burnt_usd = +0.000206; 
> │ > gas_burnt = 308081859340; tokens_burnt = 
> 30808185934000000000 }
> │ > │ 00:00:13 i #10 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000659; 
> tokens_burnt_usd = +0.000659; 
> │ > gas_burnt = 986332634429; tokens_burnt = 
> 98633263442900000000 }
> │ > │ 00:00:13 w #11 spiral_wasm.run / 
> Error error / { retry 
> │ > = 2; error = "{ receipt_outcomes_len = 1; retry = 2; 
> receipt_failures = [] }" }
> │ > │ 
> │ > │ 
> │ > │  
> │ > │ 00:00:19 i #14 
> near_workspaces.print_usd / { retry = 3;
> │ > total_gas_burnt_usd = +0.001014; total_gas_burnt = 
> 1517597056269 }
> │ > │ 00:00:19 i #15 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000206; 
> tokens_burnt_usd = +0.000206; 
> │ > gas_burnt = 308081859340; tokens_burnt = 
> 30808185934000000000 }
> │ > │ 00:00:19 i #16 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000659; 
> tokens_burnt_usd = +0.000659; 
> │ > gas_burnt = 986332634429; tokens_burnt = 
> 98633263442900000000 }
> │ > │ 00:00:19 i #17 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000149; 
> tokens_burnt_usd = +0.000000; 
> │ > gas_burnt = 223182562500; tokens_burnt = 0 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### generate_cid
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl generate_cid (content : am'.vec u8) : sm'.std_string =
> │ >     !\($'"  fn encode_u64(value: u64) -> Vec<u8> { //"') : 
> ()
> │ >     !\($'"    let mut buffer = 
> unsigned_varint::encode::u64_buffer(); //"') : ()
> │ >     !\($'"    unsigned_varint::encode::u64(value, &mut 
> buffer).to_vec() //"') : 
> │ > ()
> │ >     !\($'"  } //"') : ()
> │ > 
> │ >     !\($'"  fn sha256_hash(content: &[[u8]]) -> Vec<u8> { 
> //"') : ()
> │ >     !\($'"    let mut hasher: sha2::Sha256 = 
> sha2::Digest::new(); //"') : ()
> │ >     !\($'"    sha2::Digest::update(&mut hasher, content); 
> //"') : ()
> │ >     !\($'"    sha2::Digest::finalize(hasher).to_vec() //"')
> : ()
> │ >     !\($'"  } //"') : ()
> │ > 
> │ >     !\($'"  let version: u8 = 1; //"') : ()
> │ >     !\($'"  let codec_raw: u64 = 0x55; //"') : ()
> │ > 
> │ >     !\($'"  let codec_bytes = encode_u64(codec_raw); //"') 
> : ()
> │ >     !\($'"  let hash_result = sha256_hash(&!content); //"')
> : ()
> │ >     !\($'"  let multihash = std::iter::once(0x12) //"') : 
> ()
> │ >     !\($'"    .chain(std::iter::once(32)) //"') : ()
> │ >     !\($'"    .chain(hash_result.into_iter()) //"') : ()
> │ >     !\($'"    .collect(); //"') : ()
> │ >     !\($'"  let cid_bytes = [[vec\![[version]], 
> codec_bytes, 
> │ > multihash]].concat(); //"') : ()
> │ >     !\($'"  let result = 
> multibase::encode(multibase::Base::Base32Lower, 
> │ > &cid_bytes); //"') : ()
> │ >     !\($'"result"')
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -c -d multibase sha2 unsigned-varint
> │ > 
> │ > ;[[]]
> │ > |> am'.to_vec
> │ > |> generate_cid
> │ > |> sm'.from_std_string
> │ > |> _assert_eq 
> "bafkreihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku"
> │ > 
> │ > ── [ 26.93s - return value ] 
> ───────────────────────────────────────────────────
> │ > │  
> │ > │ 00:00:06 i #2 
> near_workspaces.print_usd / { retry = 1; 
> │ > total_gas_burnt_usd = +0.001078; total_gas_burnt = 
> 1613196914267 }
> │ > │ 00:00:06 i #3 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000206; 
> tokens_burnt_usd = +0.000206; 
> │ > gas_burnt = 308081859340; tokens_burnt = 
> 30808185934000000000 }
> │ > │ 00:00:06 i #4 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000723; 
> tokens_burnt_usd = +0.000723; 
> │ > gas_burnt = 1081932492427; tokens_burnt = 
> 108193249242700000000 }
> │ > │ 00:00:06 i #5 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000149; 
> tokens_burnt_usd = +0.000000; 
> │ > gas_burnt = 223182562500; tokens_burnt = 0 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### claim_alias
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl claim_alias (state : rust.ref (rust.mut' state)) (alias
> : sm'.std_string) : 
> │ > () =
> │ >     inl account_set : rust.ref (rust.mut' 
> (near.iterable_set near.account_id)) =
> │ >         !\($'$"&mut !state.1"')
> │ > 
> │ >     inl alias_set : rust.ref (rust.mut' (near.iterable_set 
> sm'.std_string)) =
> │ >         !\($'$"&mut !state.2"')
> │ > 
> │ >     inl account_map : rust.ref (rust.mut' (near.lookup_map 
> near.account_id 
> │ > sm'.std_string)) =
> │ >         !\($'$"&mut !state.3"')
> │ > 
> │ >     inl alias_map : rust.ref (rust.mut' (near.lookup_map 
> sm'.std_string 
> │ > (mapm.hash_map near.account_id (u64 * u32)))) =
> │ >         !\($'$"&mut !state.4"')
> │ > 
> │ >     inl signer_account_id = near.signer_account_id ()
> │ >     inl predecessor_account_id = 
> near.predecessor_account_id ()
> │ >     inl block_timestamp = near.block_timestamp ()
> │ > 
> │ >     trace Debug
> │ >         fun () => "chat_contract.claim_alias"
> │ >         fun () => {
> │ >             alias
> │ >             block_timestamp
> │ >             signer_account_id = signer_account_id |> 
> sm'.to_string'
> │ >             predecessor_account_id = predecessor_account_id
> |> sm'.to_string'
> │ >         }
> │ > 
> │ >     if alias |> is_valid_alias |> not
> │ >     then near.panic_str "chat_contract.claim_alias / 
> invalid alias" . true
> │ >     else false
> │ >     |> ignore
> │ >     
> │ >     inl account_alias =
> │ >         account_map
> │ >         |> near.lookup_get signer_account_id
> │ >         |> optionm'.cloned
> │ > 
> │ >     match account_alias |> optionm'.unbox with
> │ >     | Some account_alias when account_alias =. alias =>
> │ >         trace Warning
> │ >             fun () => "chat_contract.claim_alias / alias 
> already claimed"
> │ >             fun () => { account_alias = account_alias |> 
> sm'.format_debug }
> │ >     | account_alias' =>
> │ >         trace Debug
> │ >             fun () => "chat_contract.claim_alias"
> │ >             fun () => { account_alias = account_alias |> 
> sm'.format_debug }
> │ > 
> │ >         match account_alias' with
> │ >         | Some account_alias =>
> │ >             !\($'"    !alias_map //"') : ()
> │ >             !\($'"      .get_mut(&!account_alias) //"') : 
> ()
> │ >             !\($'"      .unwrap() //"') : ()
> │ >             !\\(signer_account_id, $'"      .remove(&$0); 
> //"') : ()
> │ >         | None => ()
> │ > 
> │ >         !\\((signer_account_id, alias), $'"  
> !account_map.insert($0.clone(), 
> │ > $1.clone()); //"') : ()
> │ > 
> │ >         account_set |> near.iterable_set_insert 
> signer_account_id |> ignore
> │ >         alias_set |> near.iterable_set_insert alias |> 
> ignore
> │ > 
> │ >         !\\(alias, $'"  let new_alias_account_map = match 
> !alias_map.get(&$0) { 
> │ > //"') : ()
> │ >         !\($'"    None => { //"') : ()
> │ >         !\($'"      let mut new_map = 
> std::collections::HashMap::new(); //"') : 
> │ > ()
> │ >         !\\((signer_account_id, block_timestamp), $'"      
> new_map.insert($0, 
> │ > ($1, 0u32)); //"') : ()
> │ >         !\($'"      new_map //"') : ()
> │ >         !\($'"    } //"') : ()
> │ >         !\($'"    Some(accounts) => { //"') : ()
> │ >         !\($'"      let mut accounts_vec = 
> accounts.iter().collect::<Vec<_>>(); 
> │ > //"') : ()
> │ >         !\($'"      accounts_vec.sort_unstable_by_key(|(_, 
> (_, index))| index); 
> │ > //"') : ()
> │ >         !\($'"      let mut new_map = accounts_vec //"') : 
> ()
> │ >         !\($'"        .iter() //"') : ()
> │ >         !\($'"        .enumerate() //"') : ()
> │ >         !\($'"        .map(|(i, (signer_account_id, 
> (timestamp, _)))| { //"') : 
> │ > ()
> │ >         !\($'"          ((*signer_account_id).clone(), 
> (*timestamp, i as u32)) 
> │ > //"') : ()
> │ >         !\($'"        }) //"') : ()
> │ >         !\($'"        
> .collect::<std::collections::HashMap<_, _>>(); //"') : ()
> │ >         !\\(signer_account_id, $'"      new_map.insert($0, 
> (!block_timestamp, 
> │ > accounts_vec.len() as u32)); //"') : ()
> │ >         !\($'"      new_map //"') : ()
> │ >         !\($'"    } //"') : ()
> │ >         !\($'"  }; //"') : ()
> │ > 
> │ >         !\\(alias, $'"  !alias_map.insert($0, 
> new_alias_account_map); //"') : ()
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -c
> │ > 
> │ > inl state = new ()
> │ > inl version = state.version
> │ > inl account_set = state.account_set
> │ > inl alias_set = state.alias_set
> │ > inl account_map = state.account_map
> │ > inl alias_map = state.alias_map
> │ > inl version = join version
> │ > inl account_set = join account_set
> │ > inl alias_set = join alias_set
> │ > inl account_map = join account_map
> │ > inl alias_map = join alias_map
> │ > inl state : rust.ref (rust.mut' state) =
> │ >     !\\(
> │ >         version,
> │ >         $'$"&mut ($0, !account_set, !alias_set, 
> !account_map, !alias_map)"'
> │ >     )
> │ > 
> │ > "alias1"
> │ > |> sm'.to_std_string
> │ > |> claim_alias state
> │ > 
> │ > trace Verbose
> │ >     fun () => "chat_contract"
> │ >     fun () => { state = state |> sm'.format_debug }
> │ > 
> │ > trace Debug (fun () => "") id
> │ > 
> │ > ── [ 27.66s - return value ] 
> ───────────────────────────────────────────────────
> │ > │ 00:00:00 d #1 
> chat_contract.claim_alias / { alias = 
> │ > "alias1"; block_timestamp = 1743242761424207030; 
> signer_account_id = 
> │ > "dev-20250329100600-35651397364500"; predecessor_account_id
> = 
> │ > "dev-20250329100600-35651397364500" }
> │ > │ 00:00:00 d #2 
> chat_contract.claim_alias / { 
> │ > account_alias = None }
> │ > │ 00:00:00 v #3 chat_contract / { 
> state = (2, IterableSet
> │ > { elements: Vector { len: 1, prefix: [97, 99, 99, 111, 117,
> 110, 116, 95, 115, 
> │ > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 
> 111, 117, 110, 116, 
> │ > 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector
> { len: 1, prefix: 
> │ > [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: 
> LookupMap { prefix: 
> │ > [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, 
> LookupMap { prefix: [97, 
> │ > 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, LookupMap 
> { prefix: [97, 108, 
> │ > 105, 97, 115, 95, 109, 97, 112] }) }
> │ > │  
> │ > │ 00:00:07 i #2 
> near_workspaces.print_usd / { retry = 1; 
> │ > total_gas_burnt_usd = +0.002873; total_gas_burnt = 
> 4301187134708 }
> │ > │ 00:00:07 i #3 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000206; 
> tokens_burnt_usd = +0.000206; 
> │ > gas_burnt = 308081859340; tokens_burnt = 
> 30808185934000000000 }
> │ > │ 00:00:07 i #4 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.002518; 
> tokens_burnt_usd = +0.002518; 
> │ > gas_burnt = 3769922712868; tokens_burnt = 
> 376992271286800000000 }
> │ > │ 00:00:07 i #5 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000149; 
> tokens_burnt_usd = +0.000000; 
> │ > gas_burnt = 223182562500; tokens_burnt = 0 }
> │ > │ 
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust \"-c=-e=\\\"chat_contract.claim_alias / invalid 
> alias\\\"\"
> │ > 
> │ > ""
> │ > |> sm'.to_std_string
> │ > |> claim_alias (
> │ >     inl state = new ()
> │ >     inl version = state.version
> │ >     inl account_set = state.account_set
> │ >     inl alias_set = state.alias_set
> │ >     inl account_map = state.account_map
> │ >     inl alias_map = state.alias_map
> │ >     !\\(version, $'$"&mut ($0, !account_set, !alias_set, 
> !account_map, 
> │ > !alias_map)"')
> │ > )
> │ > trace Debug (fun () => "") id
> │ > 
> │ > ── [ 27.72s - return value ] 
> ───────────────────────────────────────────────────
> │ > │  
> │ > │ 00:00:07 i #2 
> near_workspaces.print_usd / { retry = 1; 
> │ > total_gas_burnt_usd = +0.001356; total_gas_burnt = 
> 2029436115017 }
> │ > │ 00:00:07 i #3 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000206; 
> tokens_burnt_usd = +0.000206; 
> │ > gas_burnt = 308081859340; tokens_burnt = 
> 30808185934000000000 }
> │ > │ 00:00:07 i #4 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = false; gas_burnt_usd = +0.001001; 
> tokens_burnt_usd = +0.001001; 
> │ > gas_burnt = 1498171693177; tokens_burnt = 
> 149817169317700000000 }
> │ > │ 00:00:07 i #5 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000149; 
> tokens_burnt_usd = +0.000000; 
> │ > gas_burnt = 223182562500; tokens_burnt = 0 }
> │ > │ 00:00:07 c #6 spiral_wasm.run / Ok
> (Some error) / { 
> │ > retry = 1; error = { receipt_outcomes_len = 2; retry = 1; 
> receipt_failures = [
> │ > │     ExecutionOutcome {
> │ > │         transaction_hash: 
> │ > AK92WwW3yMVop4bdMBttA184BpfizBSuch74MPfeHm3r,
> │ > │         block_hash: 
> │ > 5Tefj95jFd9Xfm6x3kL9BjnTMbYacFXwc6i5TdbVn9wa,
> │ > │         logs: [],
> │ > │         receipt_ids: [
> │ > │             
> JAkMZq8P8w7MHiirYucnAJZx53fEVNvy2eQEmf7qq4ym,
> │ > │         ],
> │ > │         gas_burnt: NearGas {
> │ > │             inner: 1498171693177,
> │ > │         },
> │ > │         tokens_burnt: NearToken {
> │ > │             inner: 
> 149817169317700000000,
> │ > │         },
> │ > │         executor_id: AccountId(
> │ > │             
> "dev-20250329100627-50387024011150",
> │ > │         ),
> │ > │         status: 
> Failure(ActionError(ActionError { index: 
> │ > Some(0), kind: FunctionCallError(ExecutionError("Smart 
> contract panicked: 
> │ > chat_contract.claim_alias / invalid alias")) })),
> │ > │     },
> │ > │ ] } }
> │ > │ 
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -cd borsh
> │ > 
> │ > inl state' = new ()
> │ > inl state = state'
> │ > inl version = state.version
> │ > inl account_set = state.account_set
> │ > inl alias_set = state.alias_set
> │ > inl account_map = state.account_map
> │ > inl alias_map = state.alias_map
> │ > inl version = join version
> │ > inl account_set = join account_set
> │ > inl alias_set = join alias_set
> │ > inl account_map = join account_map
> │ > inl alias_map = join alias_map
> │ > 
> │ > inl state =
> │ >     !\\(
> │ >         (version, account_set, alias_set),
> │ >         $'$"&mut ($0, $1, $2, !account_map, !alias_map)"'
> │ >     )
> │ > 
> │ > "alias1"
> │ > |> sm'.to_std_string
> │ > |> claim_alias state
> │ > 
> │ > "alias1"
> │ > |> sm'.to_std_string
> │ > |> claim_alias state
> │ > 
> │ > "alias1"
> │ > |> sm'.to_std_string
> │ > |> claim_alias state
> │ > 
> │ > inl account_set' : rust.ref (near.iterable_set 
> near.account_id) =
> │ >     !\($'$"&!state.1"')
> │ > 
> │ > inl alias_set' : rust.ref (near.iterable_set 
> sm'.std_string) =
> │ >     !\($'$"&!state.2"')
> │ > 
> │ > inl account_set' =
> │ >     account_set'
> │ >     |> iter.iter_ref''
> │ >     |> iter.cloned
> │ >     |> iter_collect
> │ > 
> │ > inl alias_set' =
> │ >     alias_set'
> │ >     |> iter.iter_ref''
> │ >     |> iter.cloned
> │ >     |> iter_collect
> │ >     |> am'.vec_map sm'.from_std_string
> │ > 
> │ > trace Verbose
> │ >     fun () => "chat_contract"
> │ >     fun () => {
> │ >         account_set' = account_set' |> sm'.format_debug
> │ >         alias_set' = alias_set' |> sm'.format_debug
> │ >         state = state |> sm'.format_debug
> │ >     }
> │ > 
> │ > trace Debug (fun () => "") id
> │ > 
> │ > account_set'
> │ > |> am'.vec_len
> │ > |> convert
> │ > |> _assert_eq 1u32
> │ > 
> │ > alias_set'
> │ > |> am'.from_vec_base
> │ > |> _assert_eq' ;[[ "alias1" ]]
> │ > 
> │ > ── [ 29.14s - return value ] 
> ───────────────────────────────────────────────────
> │ > │ 00:00:00 d #1 
> chat_contract.claim_alias / { alias = 
> │ > "alias1"; block_timestamp = 1743242818330690235; 
> signer_account_id = 
> │ > "dev-20250329100657-54259456378233"; predecessor_account_id
> = 
> │ > "dev-20250329100657-54259456378233" }
> │ > │ 00:00:00 d #2 
> chat_contract.claim_alias / { 
> │ > account_alias = None }
> │ > │ 00:00:00 d #3 
> chat_contract.claim_alias / { alias = 
> │ > "alias1"; block_timestamp = 1743242818330690235; 
> signer_account_id = 
> │ > "dev-20250329100657-54259456378233"; predecessor_account_id
> = 
> │ > "dev-20250329100657-54259456378233" }
> │ > │ 00:00:00 d #4 
> chat_contract.claim_alias / { 
> │ > account_alias = Some("alias1") }
> │ > │ 00:00:00 d #5 
> chat_contract.claim_alias / { alias = 
> │ > "alias1"; block_timestamp = 1743242818330690235; 
> signer_account_id = 
> │ > "dev-20250329100657-54259456378233"; predecessor_account_id
> = 
> │ > "dev-20250329100657-54259456378233" }
> │ > │ 00:00:00 d #6 
> chat_contract.claim_alias / { 
> │ > account_alias = Some("alias1") }
> │ > │ 00:00:00 v #7 chat_contract / { 
> account_set' = 
> │ > [AccountId("dev-20250329100657-54259456378233")]; 
> alias_set' = ["alias1"]; state
> │ > = (2, IterableSet { elements: Vector { len: 1, prefix: [97,
> 99, 99, 111, 117, 
> │ > 110, 116, 95, 115, 101, 116, 118] }, index: LookupMap { 
> prefix: [97, 99, 99, 
> │ > 111, 117, 110, 116, 95, 115, 101, 116, 109] } }, 
> IterableSet { elements: Vector 
> │ > { len: 1, prefix: [97, 108, 105, 97, 115, 95, 115, 101, 
> 116, 118] }, index: 
> │ > LookupMap { prefix: [97, 108, 105, 97, 115, 95, 115, 101, 
> 116, 109] } }, 
> │ > LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, 95, 
> 109, 97, 112] }, 
> │ > LookupMap { prefix: [97, 108, 105, 97, 115, 95, 109, 97, 
> 112] }) }
> │ > │  
> │ > │ 00:00:06 i #2 
> near_workspaces.print_usd / { retry = 1; 
> │ > total_gas_burnt_usd = +0.005125; total_gas_burnt = 
> 7671482023133 }
> │ > │ 00:00:06 i #3 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000206; 
> tokens_burnt_usd = +0.000206; 
> │ > gas_burnt = 308081859340; tokens_burnt = 
> 30808185934000000000 }
> │ > │ 00:00:06 i #4 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.004770; 
> tokens_burnt_usd = +0.004770; 
> │ > gas_burnt = 7140217601293; tokens_burnt = 
> 714021760129300000000 }
> │ > │ 00:00:06 i #5 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000149; 
> tokens_burnt_usd = +0.000000; 
> │ > gas_burnt = 223182562500; tokens_burnt = 0 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### get_account_info
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl get_account_info
> │ >     (state : rust.ref state)
> │ >     (account_id : near.account_id)
> │ >     : optionm'.option' (sm'.std_string * (u64 * u32))
> │ >     =
> │ >     inl account_map : rust.ref (near.lookup_map 
> near.account_id sm'.std_string) 
> │ > =
> │ >         !\($'$"&!state.3"')
> │ > 
> │ >     inl alias_map : rust.ref (near.lookup_map 
> sm'.std_string (mapm.hash_map 
> │ > near.account_id (u64 * u32))) =
> │ >         !\($'$"&!state.4"')
> │ > 
> │ >     (!\\(account_id, $'"true; let result = 
> │ > !account_map.get(&$0).and_then(|alias| { //"') : bool) |> 
> ignore
> │ >     (!\($'"true;    !alias_map.get(alias).map(|accounts| { 
> //"') : bool) |> 
> │ > ignore
> │ >     (!\($'"true;        let result = (alias.clone(), 
> │ > *accounts.get(&!account_id).unwrap()); //"') : bool) |> 
> ignore
> │ >     (!\($'"true;        (result.0, result.1.0, result.1.1)
> }) }); //"') : bool)
> │ > |> ignore
> │ > 
> │ >     inl result = !\($'"result"')
> │ > 
> │ >     trace Debug
> │ >         fun () => "chat_contract.get_account_info"
> │ >         fun () => { account_id result }
> │ > 
> │ >     trace Debug (fun () => "") id
> │ > 
> │ >     result
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! rust -cd borsh
> │ > 
> │ > inl state' = new ()
> │ > inl state = state'
> │ > inl version = state.version
> │ > inl account_set = state.account_set
> │ > inl alias_set = state.alias_set
> │ > inl account_map = state.account_map
> │ > inl alias_map = state.alias_map
> │ > inl version = join version
> │ > inl account_set = join account_set
> │ > inl alias_set = join alias_set
> │ > inl account_map = join account_map
> │ > inl alias_map = join alias_map
> │ > 
> │ > inl state_ref_mut =
> │ >     !\\(
> │ >         version,
> │ >         $'$"&mut ($0, !account_set, !alias_set, 
> !account_map, !alias_map)"'
> │ >     )
> │ > 
> │ > inl state_ref = !\($'$"!state_ref_mut"')
> │ > near.predecessor_account_id ()
> │ > |> get_account_info state_ref
> │ > |> _assert_eq' (optionm'.none' ())
> │ > 
> │ > inl state_ref = !\($'$"!state_ref_mut"')
> │ > near.signer_account_id ()
> │ > |> get_account_info state_ref
> │ > |> _assert_eq' (optionm'.none' ())
> │ > 
> │ > "alias1"
> │ > |> sm'.to_std_string
> │ > |> claim_alias state_ref_mut
> │ > 
> │ > inl state_ref = !\($'$"!state_ref_mut"')
> │ > near.predecessor_account_id ()
> │ > |> get_account_info state_ref
> │ > |> optionm'.get'
> │ > |> fun alias, (timestamp, i) =>
> │ >     alias
> │ >     |> sm'.from_std_string
> │ >     |> _assert_eq "alias1"
> │ > 
> │ >     timestamp
> │ >     |> _assert_gt 0
> │ > 
> │ >     i
> │ >     |> _assert_eq 0
> │ > 
> │ > inl state_ref = !\($'$"!state_ref_mut"')
> │ > near.signer_account_id ()
> │ > |> get_account_info state_ref
> │ > |> optionm'.get'
> │ > |> fun alias, (timestamp, i) =>
> │ >     alias
> │ >     |> sm'.from_std_string
> │ >     |> _assert_eq "alias1"
> │ > 
> │ >     timestamp
> │ >     |> _assert_gt 0
> │ > 
> │ >     i
> │ >     |> _assert_eq 0
> │ > 
> │ > ── [ 47.55s - return value ] 
> ───────────────────────────────────────────────────
> │ > │ 00:00:00 d #1 
> chat_contract.get_account_info / { 
> │ > account_id = AccountId(
> │ > │     "dev-20250329100726-86459685069904",
> │ > │ ); result = None }
> │ > │ 00:00:00 d #3 
> chat_contract.get_account_info / { 
> │ > account_id = AccountId(
> │ > │     "dev-20250329100726-86459685069904",
> │ > │ ); result = None }
> │ > │ 00:00:00 d #5 
> chat_contract.claim_alias / { alias = 
> │ > "alias1"; block_timestamp = 1743242847992038042; 
> signer_account_id = 
> │ > "dev-20250329100726-86459685069904"; predecessor_account_id
> = 
> │ > "dev-20250329100726-86459685069904" }
> │ > │ 00:00:00 d #6 
> chat_contract.claim_alias / { 
> │ > account_alias = None }
> │ > │ 00:00:00 d #7 
> chat_contract.get_account_info / { 
> │ > account_id = AccountId(
> │ > │     "dev-20250329100726-86459685069904",
> │ > │ ); result = Some(
> │ > │     (
> │ > │         "alias1",
> │ > │         1743242847992038042,
> │ > │         0,
> │ > │     ),
> │ > │ ) }
> │ > │ 00:00:00 d #9 
> chat_contract.get_account_info / { 
> │ > account_id = AccountId(
> │ > │     "dev-20250329100726-86459685069904",
> │ > │ ); result = Some(
> │ > │     (
> │ > │         "alias1",
> │ > │         1743242847992038042,
> │ > │         0,
> │ > │     ),
> │ > │ ) }
> │ > │  
> │ > │ 00:00:06 i #2 
> near_workspaces.print_usd / { retry = 1; 
> │ > total_gas_burnt_usd = +0.003945; total_gas_burnt = 
> 5905278313046 }
> │ > │ 00:00:06 i #3 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000206; 
> tokens_burnt_usd = +0.000206; 
> │ > gas_burnt = 308081859340; tokens_burnt = 
> 30808185934000000000 }
> │ > │ 00:00:06 i #4 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.003739; 
> tokens_burnt_usd = +0.0...608",
> │ > │ ); result = None }
> │ > │ 00:00:00 d #5 
> chat_contract.claim_alias / { alias = 
> │ > "alias1"; block_timestamp = 1743242866078477838; 
> signer_account_id = 
> │ > "dev-20250329100744-64446844898608"; predecessor_account_id
> = 
> │ > "dev-20250329100744-64446844898608" }
> │ > │ 00:00:00 d #6 
> chat_contract.claim_alias / { 
> │ > account_alias = None }
> │ > │ 00:00:00 d #7 
> chat_contract.get_account_info / { 
> │ > account_id = AccountId(
> │ > │     "dev-20250329100744-64446844898608",
> │ > │ ); result = Some(
> │ > │     (
> │ > │         "alias1",
> │ > │         1743242866078477838,
> │ > │         0,
> │ > │     ),
> │ > │ ) }
> │ > │ 00:00:00 d #9 
> chat_contract.get_account_info / { 
> │ > account_id = AccountId(
> │ > │     "dev-20250329100744-64446844898608",
> │ > │ ); result = Some(
> │ > │     (
> │ > │         "alias1",
> │ > │         1743242866078477838,
> │ > │         0,
> │ > │     ),
> │ > │ ) }
> │ > │  
> │ > │ 00:00:25 i #20 
> near_workspaces.print_usd / { retry = 4;
> │ > total_gas_burnt_usd = +0.004094; total_gas_burnt = 
> 6128460875546 }
> │ > │ 00:00:25 i #21 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000206; 
> tokens_burnt_usd = +0.000206; 
> │ > gas_burnt = 308081859340; tokens_burnt = 
> 30808185934000000000 }
> │ > │ 00:00:25 i #22 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.003739; 
> tokens_burnt_usd = +0.003739; 
> │ > gas_burnt = 5597196453706; tokens_burnt = 
> 559719645370600000000 }
> │ > │ 00:00:25 i #23 
> near_workspaces.print_usd / outcome / { 
> │ > is_success = true; gas_burnt_usd = +0.000149; 
> tokens_burnt_usd = +0.000000; 
> │ > gas_burnt = 223182562500; tokens_burnt = 0 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### main
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > ///! _
> │ > 
> │ > inl main () =
> │ >     !\($'"} //"') : ()
> │ > 
> │ >     !\($'"#[[near_sdk::near_bindgen]] //"') : ()
> │ > 
> │ >     !\($'"#[[derive( //"') : ()
> │ >     !\($'"  near_sdk::PanicOnDefault, //"') : ()
> │ >     !\($'"  borsh::BorshDeserialize, //"') : ()
> │ >     !\($'"  borsh::BorshSerialize, //"') : ()
> │ >     !\($'")]] //"') : ()
> │ > 
> │ >     !\($'"pub struct State ( //"') : ()
> │ > 
> │ >     !\($'"/*"') : ()
> │ >     (null () : rust.type_emit state) |> ignore
> │ >     !\($'"*/ )"') : ()
> │ > 
> │ >     inl new_ () =
> │ >         !\($'"#[[init]] //"') : ()
> │ >         !\($'"pub fn new() -> Self { // 1"') : ()
> │ > 
> │ >         (!\($'"true; /*"') : bool) |> ignore
> │ > 
> │ >         (null () : rust.type_emit ()) |> ignore
> │ > 
> │ >         (!\($'"true; */"') : bool) |> ignore
> │ > 
> │ >         inl result = new ()
> │ > 
> │ >         $'let _result = !result in _result |> (fun x -> 
> │ > Fable.Core.RustInterop.emitRustExpr x $"Self($0) // x") // 
> 2' : ()
> │ > 
> │ >         !\($'"} // 2."') : ()
> │ > 
> │ >         !\($'"} // 1."') : ()
> │ > 
> │ >         2
> │ > 
> │ >     inl is_valid_alias () =
> │ >         !\($'"fn is_valid_alias(alias: String) -> bool { 
> //"') : ()
> │ >         inl alias = !\($'$"alias"')
> │ >         inl result = alias |> is_valid_alias
> │ >         $'let _result = !result in _result |> (fun x -> 
> │ > Fable.Core.RustInterop.emitRustExpr x "$0 }") // 2' : ()
> │ >         !\($'"} //"') : ()
> │ >         1
> │ > 
> │ >     inl generate_cid () =
> │ >         !\($'"pub fn generate_cid( //"') : ()
> │ >         !\($'"  &self, //"') : ()
> │ >         !\($'"  content: Vec<u8>, //"') : ()
> │ >         !\($'") -> String { //"') : ()
> │ >         inl content = !\($'$"content"')
> │ >         inl result = generate_cid content
> │ >         $'let _result = !result in _result |> (fun x -> 
> │ > Fable.Core.RustInterop.emitRustExpr x "$0 }") // 2' : ()
> │ >         !\($'"} //"') : ()
> │ >         2
> │ > 
> │ >     inl generate_cid_borsh () =
> │ >         !\($'"#[[result_serializer(borsh)]] //"') : ()
> │ >         !\($'"pub fn generate_cid_borsh( //"') : ()
> │ >         !\($'"  &self, //"') : ()
> │ >         !\($'"  #[[serializer(borsh)]] content: Vec<u8>, 
> //"') : ()
> │ >         !\($'") -> String { //"') : ()
> │ >         !\($'"  self.generate_cid(content) //"') : ()
> │ >         !\($'"} //"') : ()
> │ >         1
> │ > 
> │ >     inl claim_alias () =
> │ >         !\($'"pub fn claim_alias( //"') : ()
> │ >         !\($'"  &mut self, //"') : ()
> │ >         !\($'"  alias: String, //"') : ()
> │ >         !\($'") { //"') : ()
> │ >         
> │ >         inl state = !\($'$"&mut self.0"')
> │ >         inl alias = !\($'$"alias"')
> │ >         
> │ >         inl result = claim_alias state alias
> │ >         trace Debug (fun () => "") (join id)
> │ > 
> │ >         !\($'"} //"') : ()
> │ > 
> │ >         !\($'"} //"') : ()
> │ > 
> │ >         !\($'"} //"') : ()
> │ > 
> │ >         3
> │ > 
> │ >     inl get_account_info () =
> │ >         !\($'"pub fn get_account_info( //"') : ()
> │ >         !\($'"  &self, //"') : ()
> │ >         !\($'"  account_id: near_sdk::AccountId, //"') : ()
> │ >         !\($'") -> Option<(String, u64, u32)> { //"') : ()
> │ > 
> │ >         inl state = !\($'$"&self.0"')
> │ >         inl account_id : near.account_id = 
> !\($'$"account_id"')
> │ > 
> │ >         inl result = account_id |> get_account_info state
> │ >         $'let _result = !result in _result |> (fun x -> 
> │ > Fable.Core.RustInterop.emitRustExpr x "$0 } // 4") // 3' : 
> ()
> │ > 
> │ >         !\($'"} // 1"') : ()
> │ > 
> │ >         1
> │ > 
> │ >     inl get_alias_map () =
> │ >         !\($'"pub fn get_alias_map( //"') : ()
> │ >         !\($'"  &self, //"') : ()
> │ >         !\($'"  alias: String, //"') : ()
> │ >         !\($'") -> 
> Option<std::collections::HashMap<near_sdk::AccountId, (u64, 
> │ > u32)>> { //"') : ()
> │ > 
> │ >         inl alias_map : rust.ref (near.lookup_map 
> sm'.std_string (mapm.hash_map 
> │ > near.account_id (u64 * u32))) =
> │ >             !\($'$"&self.0.4"')
> │ > 
> │ >         inl alias : sm'.std_string = !\($'$"alias"')
> │ > 
> │ >         trace Debug
> │ >             fun () => "chat_contract.get_alias_map"
> │ >             fun () => { alias }
> │ > 
> │ >         trace Debug (fun () => "") (join id)
> │ > 
> │ >         !\\(alias, $'"  !alias_map.get(&$0).cloned() //"') 
> : ()
> │ >         !\($'"} //"') : ()
> │ > 
> │ >         !\($'"} //"') : ()
> │ > 
> │ >         2
> │ > 
> │ >     inl get_alias_map_borsh () =
> │ >         !\($'"#[[result_serializer(borsh)]] //"') : ()
> │ >         !\($'"pub fn get_alias_map_borsh( //"') : ()
> │ >         !\($'"  &self, //"') : ()
> │ >         !\($'"  #[[serializer(borsh)]] alias: String, //"')
> : ()
> │ >         !\($'") -> 
> Option<std::collections::HashMap<near_sdk::AccountId, (u64, 
> │ > u32)>> { //"') : ()
> │ >         !\($'"  self.get_alias_map(alias) //"') : ()
> │ >         !\($'"} //"') : ()
> │ >         1
> │ > 
> │ >     inl fns =
> │ >         [[
> │ >             new_
> │ >             is_valid_alias
> │ >             generate_cid
> │ >             generate_cid_borsh
> │ >             claim_alias
> │ >             get_account_info
> │ >             get_alias_map
> │ >             get_alias_map_borsh
> │ >         ]]
> │ > 
> │ >     inl rec loop acc fns i =
> │ >         match fns with
> │ >         | [[]] => acc
> │ >         | x :: xs =>
> │ >             !\($'"#[[near_sdk::near_bindgen]] //"') : ()
> │ >             !\($'"impl State { //"') : ()
> │ >             inl n = x ()
> │ >             !\($'"} /* c"') : ()
> │ >             inl rec loop' i' =
> │ >                 if i' <> 1 // <= n
> │ >                 then (!\($'"true; */ // ???? / i: !i / i\':
> !i' / acc: !acc / n:
> │ > !n"') : bool) |> ignore
> │ >                 else
> │ >                     (!\($'"true; // ??? / i: !i / i\': !i' 
> / acc: !acc / n: 
> │ > !n"') : bool) |> ignore
> │ >                     loop' (i' + 1)
> │ >             loop' 1u8
> │ >             loop (acc + n) xs (i + 1)
> │ >     inl n = loop 0u8 fns 1u8
> │ > 
> │ > 
> │ >     // !\($'"/* a"') : ()
> │ > 
> │ >     // !\($'"} // b"') : ()
> │ > 
> │ >     !\($'"fn _main() //"') : ()
> │ >     !\($'"{ { //"') : ()
> │ > 
> │ >     inl rec loop' i' =
> │ >         if i' <= n
> │ >         then
> │ >             (!\($'"true; { (); // ?? / i\': !i' / n: !n"') 
> : bool) |> ignore
> │ >             loop' (i' + 1)
> │ >         else
> │ >             (!\($'"true; { { (); // ? / i\': !i' / n: !n"')
> : bool) |> ignore
> │ >             // (!\($'"true; */ // ?? / i\': !i' / n: !n"') 
> : bool) |> ignore
> │ >     loop' 1u8
> │ > 
> │ > inl main () =
> │ >     $'!main |> ignore' : ()
> │ 00:06:00 v #3 runtime.execute_with_options / result / {
> exit_code = 0; std_trace_length = 42437 }
> │ 00:06:00 d #4 runtime.execute_with_options / { 
> file_name = jupyter; arguments = ["nbconvert", 
> "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.ipynb", "--to", 
> "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert 
> "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.ipynb" --to html 
> --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:06:01 v #5 ! [NbConvertApp] Converting notebook 
> c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.ipynb to html
> │ 00:06:01 v #6 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.
> py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a 
> hard error in future nbformat versions. You may want to use `normalize()` on 
> your notebooks before validations (available since nbformat 5.1.4). Previous 
> versions of nbformat are fixing this issue transparently, and will stop doing so
> in the future.
> │ 00:06:01 v #7 !   validate(nb)
> │ 00:06:01 v #8 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\
> highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python
> 3
> │ 00:06:01 v #9 !   return _pygments_highlight(
> │ 00:06:02 v #10 ! [NbConvertApp] Writing 390515 bytes to
> c:\home\git\polyglot\apps\chat\contract\chat_contract.dib.html
> │ 00:06:02 v #11 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 884 }
> │ 00:06:02 d #12 spiral.run / dib / jupyter nbconvert / {
> exit_code = 0; jupyter_result_length = 884 }
> │ 00:06:02 d #13 runtime.execute_with_options / { 
> file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.html'; (Get-Content 
> $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + 
> $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1;
> $path = 'c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.html'; 
> (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { 
> $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = 
> None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; 
> trace = true; working_directory = None } }
> │ 00:06:03 v #14 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 0 }
> │ 00:06:03 d #15 spiral.run / dib / html cell ids / { 
> exit_code = 0; pwsh_replace_html_result_length = 0 }
> │ 00:06:03 d #16 spiral.run / dib / { exit_code = 0; 
> result_length = 43380 }
> │ 00:00:00 d #1 writeDibCode / output: Spi / path: 
> chat_contract.dib
> │ 00:00:00 d #2 parseDibCode / output: Spi / file: 
> chat_contract.dib
> │ 00:00:00 d #1 persistCodeProject / packages: 
> [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; 
> deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: 
> chat_contract / hash:  / code.Length: 151266
> │ 00:00:00 d #2 buildProject / fullPath: 
> c:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fsproj
> │ 00:00:00 d #1 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   "publish 
> "c:/home/git\polyglot\target/Builder\chat_contract\chat_contract.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\chat\contract\dist" 
> --runtime linux-x64"; options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\chat_contract\chat_contract.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\chat\contract\dist" 
> --runtime linux-x64; cancellation_token = None; environment_variables = [||]; 
> on_line = None; stdin = None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\chat_contract" } }
> │ 00:00:01 v #2 >   Determining projects to restore...
> │ 00:00:01 v #3 >   Paket version 
> 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ 00:00:01 v #4 >   The last full restore is still up to 
> date. Nothing left to do.
> │ 00:00:01 v #5 >   Total time taken: 0 milliseconds
> │ 00:00:02 v #6 >   Restored 
> c:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fsproj (in 300 
> ms).
> │ 00:00:10 v #7 > 
> c:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fs(3437,15): 
> warning FS0025: Incomplete pattern matches on this expression. For example, the 
> value 'US6_0 (_)' may indicate a case not covered by the pattern(s). 
> [c:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fsproj]
> │ 00:00:15 v #8 >   chat_contract -> 
> c:\home\git\polyglot\target\Builder\chat_contract\bin\Release\net9.0\linux-x64\c
> hat_contract.dll
> │ 00:00:16 v #9 >   chat_contract -> 
> C:\home\git\polyglot\apps\chat\contract\dist\
> │ 00:00:16 d #10 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 774; options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\chat_contract\chat_contract.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\chat\contract\dist" 
> --runtime linux-x64; cancellation_token = None; environment_variables = [||]; 
> on_line = None; stdin = None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\chat_contract" } }
> │ 00:00:16 d #11 runtime.execute_with_options_async / { 
> file_name = dotnet; arguments = US5_0
> │   "publish 
> "c:/home/git\polyglot\target/Builder\chat_contract\chat_contract.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\chat\contract\dist" 
> --runtime win-x64"; options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\chat_contract\chat_contract.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\chat\contract\dist" 
> --runtime win-x64; cancellation_token = None; environment_variables = [||]; 
> on_line = None; stdin = None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\chat_contract" } }
> │ 00:00:17 v #12 >   Determining projects to restore...
> │ 00:00:17 v #13 >   Paket version 
> 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ 00:00:17 v #14 >   The last full restore is still up to 
> date. Nothing left to do.
> │ 00:00:17 v #15 >   Total time taken: 0 milliseconds
> │ 00:00:18 v #16 >   Restored 
> c:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fsproj (in 297 
> ms).
> │ 00:00:26 v #17 > 
> c:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fs(3437,15): 
> warning FS0025: Incomplete pattern matches on this expression. For example, the 
> value 'US6_0 (_)' may indicate a case not covered by the pattern(s). 
> [c:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fsproj]
> │ 00:00:31 v #18 >   chat_contract -> 
> c:\home\git\polyglot\target\Builder\chat_contract\bin\Release\net9.0\win-x64\cha
> t_contract.dll
> │ 00:00:32 v #19 >   chat_contract -> 
> C:\home\git\polyglot\apps\chat\contract\dist\
> │ 00:00:32 d #20 runtime.execute_with_options_async / { 
> exit_code = 0; output_length = 772; options = { command = dotnet publish 
> "c:/home/git\polyglot\target/Builder\chat_contract\chat_contract.fsproj" 
> --configuration Release --output "C:\home\git\polyglot\apps\chat\contract\dist" 
> --runtime win-x64; cancellation_token = None; environment_variables = [||]; 
> on_line = None; stdin = None; trace = true; working_directory = Some 
> "c:\home\git\polyglot\target\Builder\chat_contract" } }
> │ spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: 
> C:\home\git\polyglot\target\Builder\chat_contract
> │ polyglot/scripts/core.ps1/ResolveLink #4 / Path: 
> C:\home\git\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target:
> / path_target: C:\home\git\polyglot / parent: 
> C:\home\git\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot
> │ spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: 
> C:\home\git\polyglot\target\Builder\chat_contract / ProjectName: chat_contract /
> Language: rs / Runtime: CONTRACT / root: C:\home\git\polyglot
> │ Fable 5.0.0-alpha.9: F# to Rust compiler (status: alpha)
> │ 
> │ Thanks to the contributor! @forki
> │ Stand with Ukraine! https://standwithukraine.com.ua/
> │ 
> │ Parsing target\Builder\chat_contract\chat_contract.fsproj...
> │ Project and references (14 source files) parsed in 2898ms
> │ 
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.JSInt
> erop.dll for Fable plugins, skipping this assembly. Original error: The 
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Routing.dll for Fable plugins, skipping this assembly. Original error: The
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Routing.Abstractions.dll for Fable plugins, skipping this assembly. 
> Original error: The exception has been reported. This internal exception should 
> now be caught at an error recovery point on the stack. Original message: The 
> type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You 
> must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.ViewFeatures.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.dll for Fable plugins, skipping this assembly. Original error: The 
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.Core.dll for Fable plugins, skipping this assembly. Original error: 
> The exception has been reported. This internal exception should now be caught at
> an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Http.Abstractions.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.Forms.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.Endpoints.dll for Fable plugins, skipping this assembly. 
> Original error: The exception has been reported. This internal exception should 
> now be caught at an error recovery point on the stack. Original message: The 
> type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You 
> must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.dll for Fable plugins, skipping this assembly. Original error: 
> The exception has been reported. This internal exception should now be caught at
> an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ 
> │ Started Fable compilation...
> │ 
> │ Fable compilation finished in 10141ms
> │ 
> │ .\target\Builder\chat_contract\chat_contract.fs(3437,15): 
> (3437,19) warning FSHARP: Incomplete pattern matches on this expression. For 
> example, the value 'US6_0 (_)' may indicate a case not covered by the 
> pattern(s). (code 25)
> │ .\deps\spiral\lib\spiral\async_.fsx(250,0): (250,2) warning 
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\threading.fsx(139,0): (139,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\sm.fsx(561,0): (561,2) warning 
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\common.fsx(2199,0): (2199,2) warning
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\crypto.fsx(2426,0): (2426,2) warning
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\date_time.fsx(2546,0): (2546,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\platform.fsx(121,0): (121,2) warning
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\networking.fsx(5050,0): (5050,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\trace.fsx(2232,0): (2232,2) warning 
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\runtime.fsx(7321,0): (7321,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\file_system.fsx(19036,0): (19036,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\target\Builder\chat_contract\chat_contract.fs(3643,6): 
> (3643,12) warning FABLE: For Rust, support for F# static and module do bindings 
> is disabled by default. It can be enabled with the 'static_do_bindings' feature.
> Use at your own risk!
> │    Compiling fable_library_rust v0.1.0 
> (C:\home\git\polyglot\lib\rust\fable\fable_modules\fable-library-rust)
> │    Compiling chat_contract v0.0.1 
> (C:\home\git\polyglot\apps\chat\contract)
> │     Finished `release` profile [optimized] target(s) in 
> 13.74s
> │ polyglot/apps/chat/contract/build.ps1 / $targetDir = 
> C:\home\git\polyglot\target\Builder\chat_contract / $projectName: chat_contract 
> / $env:CI:''
> │ warning: 
> /mnt/c/home/git/polyglot/apps/spiral/temp/extension/Cargo.toml: the cargo 
> feature `edition2024` has been stabilized in the 1.85 release and is no longer 
> necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> /mnt/c/home/git/polyglot/apps/chat/contract/Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: /mnt/c/home/git/polyglot/apps/plot/Cargo.toml: 
> the cargo feature `edition2024` has been stabilized in the 1.85 release and is 
> no longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> /mnt/c/home/git/polyglot/examples/rust/exercism/Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: /mnt/c/home/git/polyglot/lib/math/Cargo.toml: 
> the cargo feature `edition2024` has been stabilized in the 1.85 release and is 
> no longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: /mnt/c/home/git/polyglot/workspace/Cargo.toml: 
> the cargo feature `edition2024` has been stabilized in the 1.85 release and is 
> no longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> /mnt/c/home/git/polyglot/apps/spiral/temp/test/Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> /mnt/c/home/git/polyglot/apps/chat/contract/tests/Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> /mnt/c/home/git/polyglot/apps/spiral/temp/cube/Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │  Downloading crates ...
> │   Downloaded anyhow v1.0.94
> │   Downloaded zerofrom v0.1.5
> │   Downloaded itoa v1.0.14
> │   Downloaded cpufeatures v0.2.16
> │   Downloaded zerofrom-derive v0.1.5
> │   Downloaded semver v1.0.24
> │   Downloaded litemap v0.7.4
> │   Downloaded tokio-rustls v0.26.1
> │   Downloaded time-macros v0.2.19
> │   Downloaded clap v4.5.23
> │   Downloaded rustls-pki-types v1.10.1
> │   Downloaded proc-macro2 v1.0.92
> │   Downloaded xml-rs v0.8.24
> │   Downloaded bytes v1.9.0
> │   Downloaded unicode-ident v1.0.14
> │   Downloaded indexmap v2.7.0
> │   Downloaded serde v1.0.216
> │   Downloaded serde_derive v1.0.216
> │   Downloaded http v1.2.0
> │   Downloaded cc v1.2.4
> │   Downloaded tokio-util v0.7.13
> │   Downloaded time v0.3.37
> │   Downloaded serde_json v1.0.133
> │   Downloaded hyper v1.5.1
> │   Downloaded clap_builder v4.5.23
> │   Downloaded h2 v0.4.7
> │   Downloaded near-sdk v5.6.0
> │   Downloaded portable-atomic v1.10.0
> │   Downloaded chrono v0.4.39
> │   Downloaded webpki-roots v0.26.7
> │   Downloaded syn v2.0.90
> │   Downloaded rustls v0.23.20
> │   Downloaded rustix v0.38.42
> │   Downloaded libc v0.2.168
> │   Downloaded tokio v1.42.0
> │   Downloaded near-sandbox-utils v0.12.0
> │   Downloaded tracing-indicatif v0.3.8
> │   Downloaded near-sdk-macros v5.6.0
> │   Downloaded openssl-src v300.4.1+3.4.0
> │    Compiling proc-macro2 v1.0.92
> │    Compiling unicode-ident v1.0.14
> │    Compiling libc v0.2.168
> │    Compiling serde v1.0.216
> │    Compiling once_cell v1.20.2
> │    Compiling pin-project-lite v0.2.15
> │    Compiling typenum v1.17.0
> │    Compiling smallvec v1.13.2
> │    Compiling itoa v1.0.14
> │    Compiling pkg-config v0.3.31
> │    Compiling bytes v1.9.0
> │    Compiling log v0.4.22
> │    Compiling equivalent v1.0.1
> │    Compiling indexmap v2.7.0
> │    Compiling tracing-core v0.1.33
> │    Compiling anyhow v1.0.94
> │    Compiling winnow v0.6.20
> │    Compiling quote v1.0.37
> │    Compiling ryu v1.0.18
> │    Compiling syn v2.0.90
> │    Compiling jobserver v0.1.32
> │    Compiling syn v1.0.109
> │    Compiling rustversion v1.0.18
> │    Compiling bitflags v2.6.0
> │    Compiling cc v1.2.4
> │    Compiling cpufeatures v0.2.16
> │    Compiling parking_lot_core v0.9.10
> │    Compiling getrandom v0.2.15
> │    Compiling signal-hook-registry v1.4.2
> │    Compiling parking_lot v0.12.3
> │    Compiling mio v1.0.3
> │    Compiling socket2 v0.5.8
> │    Compiling rand_core v0.6.4
> │    Compiling toml_edit v0.22.22
> │    Compiling serde_json v1.0.133
> │    Compiling borsh v1.5.3
> │    Compiling semver v1.0.24
> │    Compiling zstd-sys v2.0.13+zstd.1.5.6
> │    Compiling httparse v1.9.5
> │    Compiling ring v0.17.8
> │    Compiling synstructure v0.13.1
> │    Compiling proc-macro-crate v3.2.0
> │    Compiling http v0.2.12
> │    Compiling thread_local v1.1.8
> │    Compiling litemap v0.7.4
> │    Compiling openssl-src v300.4.1+3.4.0
> │    Compiling time-core v0.1.2
> │    Compiling http-body v0.4.6
> │    Compiling serde_derive v1.0.216
> │    Compiling zerofrom-derive v0.1.5
> │    Compiling yoke-derive v0.7.5
> │    Compiling tracing-attributes v0.1.28
> │    Compiling tokio-macros v2.4.0
> │    Compiling generic-array v0.14.7
> │    Compiling zerovec-derive v0.10.3
> │    Compiling tokio v1.42.0
> │    Compiling crypto-common v0.1.6
> │    Compiling displaydoc v0.2.5
> │    Compiling tracing v0.1.41
> │    Compiling futures-macro v0.3.31
> │    Compiling block-buffer v0.10.4
> │    Compiling zerocopy-derive v0.7.35
> │    Compiling digest v0.10.7
> │    Compiling futures-util v0.3.31
> │    Compiling icu_provider_macros v1.5.0
> │    Compiling borsh-derive v1.5.3
> │    Compiling thiserror-impl v1.0.69
> │    Compiling zerocopy v0.7.35
> │    Compiling sha2 v0.10.8
> │    Compiling ppv-lite86 v0.2.20
> │    Compiling tokio-util v0.7.13
> │    Compiling rand_chacha v0.3.1
> │    Compiling thiserror v1.0.69
> │    Compiling rand v0.8.5
> │    Compiling zerofrom v0.1.5
> │    Compiling yoke v0.7.5
> │    Compiling hex v0.4.3
> │    Compiling zerovec v0.10.4
> │    Compiling async-trait v0.1.83
> │    Compiling deranged v0.3.11
> │    Compiling tinystr v0.7.6
> │    Compiling openssl-sys v0.9.104
> │    Compiling icu_locid v1.5.0
> │    Compiling time v0.3.37
> │    Compiling serde_repr v0.1.19
> │    Compiling pin-project-internal v1.1.7
> │    Compiling rustc_version v0.4.1
> │    Compiling bzip2-sys v0.1.11+1.0.8
> │    Compiling tracing-log v0.2.0
> │    Compiling tracing-subscriber v0.3.19
> │    Compiling icu_provider v1.5.0
> │    Compiling curve25519-dalek v4.1.3
> │    Compiling pin-project v1.1.7
> │    Compiling icu_collections v1.5.0
> │    Compiling near-account-id v1.0.0
> │    Compiling h2 v0.3.26
> │    Compiling icu_locid_transform v1.5.0
> │    Compiling futures-executor v0.3.31
> │    Compiling axum-core v0.3.4
> │    Compiling crunchy v0.2.2
> │    Compiling either v1.13.0
> │    Compiling derive_more v0.99.18
> │    Compiling itertools v0.12.1
> │    Compiling darling_core v0.20.10
> │    Compiling icu_properties v1.5.1
> │    Compiling tokio-stream v0.1.17
> │    Compiling curve25519-dalek-derive v0.1.1
> │    Compiling derive_arbitrary v1.4.1
> │    Compiling hyper v0.14.31
> │    Compiling enum-map-derive v0.17.0
> │    Compiling axum v0.6.20
> │    Compiling secp256k1-sys v0.8.1
> │    Compiling schemars v0.8.21
> │    Compiling rustls-pki-types v1.10.1
> │    Compiling rustls v0.23.20
> │    Compiling strum_macros v0.24.3
> │    Compiling enum-map v2.7.3
> │    Compiling opentelemetry v0.22.0
> │    Compiling icu_normalizer v1.5.0
> │    Compiling arbitrary v1.4.1
> │    Compiling darling_macro v0.20.10
> │    Compiling num-rational v0.3.2
> │    Compiling prost-derive v0.12.6
> │    Compiling tower v0.4.13
> │    Compiling tokio-io-timeout v1.2.0
> │    Compiling block-padding v0.3.3
> │    Compiling async-stream-impl v0.3.6
> │    Compiling serde_derive_internals v0.29.1
> │    Compiling concurrent-queue v2.5.0
> │    Compiling ordered-float v4.5.0
> │    Compiling openssl v0.10.68
> │    Compiling glob v0.3.1
> │    Compiling async-stream v0.3.6
> │    Compiling prost v0.12.6
> │    Compiling schemars_derive v0.8.21
> │    Compiling opentelemetry_sdk v0.22.1
> │    Compiling hyper-timeout v0.4.1
> │    Compiling inout v0.1.3
> │    Compiling darling v0.20.10
> │    Compiling uint v0.9.5
> │    Compiling near-primitives-core v0.23.0
> │    Compiling ed25519-dalek v2.1.1
> │    Compiling strum v0.24.1
> │    Compiling idna_adapter v1.2.0
> │    Compiling openssl-macros v0.1.1
> │    Compiling http v1.2.0
> │    Compiling rustix v0.38.42
> │    Compiling toml_edit v0.19.15
> │    Compiling near-config-utils v0.23.0
> │    Compiling primitive-types v0.10.1
> │    Compiling idna v1.0.3
> │    Compiling cipher v0.4.4
> │    Compiling secp256k1 v0.27.0
> │    Compiling tonic v0.11.0
> │    Compiling actix-rt v2.10.0
> │    Compiling hmac v0.12.1
> │    Compiling blake2 v0.10.6
> │    Compiling actix_derive v0.6.2
> │    Compiling actix-macros v0.2.4
> │    Compiling linux-raw-sys v0.4.14
> │    Compiling zstd-safe v7.2.1
> │    Compiling actix v0.13.5
> │    Compiling near-crypto v0.23.0
> │    Compiling clap_builder v4.5.23
> │    Compiling miniz_oxide v0.8.0
> │    Compiling proc-macro-crate v1.3.1
> │    Compiling url v2.5.4
> │    Compiling http-body v1.0.1
> │    Compiling opentelemetry-proto v0.5.0
> │    Compiling event-listener v5.3.1
> │    Compiling clap_derive v4.5.18
> │    Compiling sha1 v0.10.6
> │    Compiling zvariant_utils v1.0.1
> │    Compiling native-tls v0.2.12
> │    Compiling opentelemetry-otlp v0.15.0
> │    Compiling serde_yaml v0.9.34+deprecated
> │    Compiling flate2 v1.0.35
> │    Compiling clap v4.5.23
> │    Compiling event-listener-strategy v0.5.3
> │    Compiling prometheus v0.13.4
> │    Compiling proc-macro-error-attr v1.0.4
> │    Compiling aes v0.8.4
> │    Compiling h2 v0.4.7
> │    Compiling tracing-opentelemetry v0.23.0
> │    Compiling serde_with_macros v3.11.0
> │    Compiling tracing-appender v0.2.3
> │    Compiling futures v0.3.31
> │    Compiling near-time v0.23.0
> │    Compiling near-rpc-error-core v0.23.0
> │    Compiling enumflags2_derive v0.7.10
> │    Compiling dirs-sys-next v0.1.2
> │    Compiling futures-lite v2.5.0
> │    Compiling rustix v0.37.27
> │    Compiling dyn-clone v1.0.17
> │    Compiling iana-time-zone v0.1.61
> │    Compiling spin v0.9.8
> │    Compiling openssl-probe v0.1.5
> │    Compiling itertools v0.10.5
> │    Compiling chrono v0.4.39
> │    Compiling enumflags2 v0.7.10
> │    Compiling sha3 v0.10.8
> │    Compiling futures-lite v1.13.0
> │    Compiling near-rpc-error-macro v0.23.0
> │    Compiling dirs-next v2.0.0
> │    Compiling serde_with v3.11.0
> │    Compiling hyper v1.5.1
> │    Compiling near-o11y v0.23.0
> │    Compiling near-performance-metrics v0.23.0
> │    Compiling zstd v0.13.2
> │    Compiling proc-macro-error v1.0.4
> │    Compiling near-parameters v0.23.0
> │    Compiling async-channel v2.3.1
> │    Compiling reed-solomon-erasure v4.0.2
> │    Compiling io-lifetimes v1.0.11
> │    Compiling zvariant_derive v3.15.2
> │    Compiling near-fmt v0.23.0
> │    Compiling zstd-safe v5.0.2+zstd.1.5.2
> │    Compiling bytesize v1.3.0
> │    Compiling smart-default v0.6.0
> │    Compiling near-async-derive v0.23.0
> │    Compiling filetime v0.2.25
> │    Compiling base64ct v1.6.0
> │    Compiling near-primitives v0.23.0
> │    Compiling zvariant v3.15.2
> │    Compiling password-hash v0.4.2
> │    Compiling near-async v0.23.0
> │    Compiling signal-hook v0.3.17
> │    Compiling blocking v1.6.1
> │    Compiling hyper-util v0.1.10
> │    Compiling interactive-clap-derive v0.2.10
> │    Compiling polling v2.8.0
> │    Compiling rustls-webpki v0.102.8
> │    Compiling http-body-util v0.1.2
> │    Compiling num-bigint v0.4.6
> │    Compiling backtrace v0.3.71
> │    Compiling socket2 v0.4.10
> │    Compiling vte_generate_state_changes v0.1.2
> │    Compiling portable-atomic v1.10.0
> │    Compiling num-rational v0.4.2
> │    Compiling vte v0.11.1
> │    Compiling interactive-clap v0.2.10
> │    Compiling async-io v1.13.0
> │    Compiling pbkdf2 v0.11.0
> │    Compiling nix v0.26.4
> │    Compiling async-fs v1.6.0
> │    Compiling zstd v0.11.2+zstd.1.5.2
> │    Compiling bzip2 v0.4.4
> │    Compiling zbus_names v2.6.1
> │    Compiling xattr v1.3.1
> │    Compiling async-executor v1.13.1
> │    Compiling webpki-roots v0.26.7
> │    Compiling zbus_macros v3.15.2
> │    Compiling serde_urlencoded v0.7.1
> │    Compiling rustls-pemfile v2.2.0
> │    Compiling tracing-error v0.2.1
> │    Compiling digest v0.9.0
> │    Compiling derivative v2.2.0
> │    Compiling async-recursion v1.1.1
> │    Compiling num-iter v0.1.45
> │    Compiling mio v0.8.11
> │    Compiling xdg-home v1.3.0
> │    Compiling near-chain-configs v0.23.0
> │    Compiling num-complex v0.4.6
> │    Compiling ordered-stream v0.2.0
> │    Compiling ipnet v2.10.1
> │    Compiling color-spantrace v0.2.1
> │    Compiling dirs-sys v0.4.1
> │    Compiling eyre v0.6.12
> │    Compiling tinyvec v1.8.0
> │    Compiling zip v0.6.6
> │    Compiling ureq v2.12.1
> │    Compiling num v0.4.3
> │    Compiling signal-hook-mio v0.2.4
> │    Compiling tar v0.4.43
> │    Compiling zbus v3.15.2
> │    Compiling vt100 v0.15.2
> │    Compiling ahash v0.8.11
> │    Compiling near-abi v0.4.3
> │    Compiling phf_shared v0.10.0
> │    Compiling console v0.15.8
> │    Compiling near-jsonrpc-primitives v0.23.0
> │    Compiling near_schemafy_core v0.7.0
> │    Compiling hkdf v0.12.4
> │    Compiling cbc v0.1.2
> │    Compiling toml_datetime v0.6.8
> │    Compiling serde_spanned v0.6.8
> │    Compiling block-buffer v0.9.0
> │    Compiling crypto-mac v0.9.1
> │    Compiling scroll_derive v0.11.1
> │    Compiling fs2 v0.4.3
> │    Compiling is-docker v0.2.0
> │    Compiling csv-core v0.1.11
> │    Compiling rust_decimal v1.36.0
> │    Compiling indicatif v0.17.9
> │    Compiling binary-install v0.2.0
> │    Compiling near-sandbox-utils v0.8.0
> │    Compiling sha2 v0.9.9
> │    Compiling secret-service v3.1.0
> │    Compiling string_cache v0.8.7
> │    Compiling scroll v0.11.0
> │    Compiling csv v1.3.1
> │    Compiling is-wsl v0.4.0
> │    Compiling hmac v0.9.0
> │    Compiling near_schemafy_lib v0.7.0
> │    Compiling hashbrown v0.14.5
> │    Compiling crossterm v0.25.0
> │    Compiling color-eyre v0.6.3
> │    Compiling unicode-normalization v0.1.22
> │    Compiling dirs v5.0.1
> │    Compiling near-token v0.2.1
> │    Compiling term v0.7.0
> │    Compiling tempfile v3.14.0
> │    Compiling fuzzy-matcher v0.3.7
> │    Compiling linux-keyutils v0.2.4
> │    Compiling is-terminal v0.4.13
> │    Compiling memmap2 v0.5.10
> │    Compiling xml-rs v0.8.24
> │    Compiling home v0.5.9
> │    Compiling prettytable v0.10.0
> │    Compiling textwrap v0.16.1
> │    Compiling goblin v0.5.4
> │    Compiling elementtree v0.7.0
> │    Compiling symbolic-common v8.8.0
> │    Compiling names v0.14.0
> │    Compiling open v5.3.1
> │    Compiling inquire v0.7.5
> │    Compiling keyring v2.3.3
> │    Compiling bip39 v2.1.0
> │    Compiling shellexpand v3.1.0
> │    Compiling wasmparser v0.211.1
> │    Compiling near-abi-client-impl v0.1.1
> │    Compiling toml v0.8.19
> │    Compiling slipped10 v0.4.6
> │    Compiling tracing-indicatif v0.3.8
> │    Compiling camino v1.1.9
> │    Compiling near-gas v0.2.5
> │    Compiling zip v0.5.13
> │    Compiling linked-hash-map v0.5.6
> │    Compiling cargo-platform v0.1.9
> │    Compiling smart-default v0.7.1
> │    Compiling env_filter v0.1.2
> │    Compiling humantime v2.1.0
> │    Compiling near-sdk-macros v5.6.0
> │    Compiling symbolic-debuginfo v8.8.0
> │    Compiling env_logger v0.11.5
> │    Compiling cargo_metadata v0.18.1
> │    Compiling near-abi-client-macros v0.1.1
> │    Compiling near-workspaces v0.11.1
> │    Compiling prettyplease v0.1.25
> │    Compiling strum_macros v0.26.4
> │    Compiling jsonptr v0.4.7
> │    Compiling atty v0.2.14
> │    Compiling near-sandbox-utils v0.12.0
> │    Compiling json-patch v2.0.0
> │    Compiling near-sandbox-utils v0.9.0
> │    Compiling tokio-retry v0.3.0
> │    Compiling near-gas v0.3.0
> │    Compiling near-abi-client v0.1.1
> │    Compiling near-token v0.3.0
> │    Compiling near-sdk v5.6.0
> │    Compiling crypto-hash v0.3.4
> │    Compiling cargo-util v0.1.2
> │    Compiling tokio-native-tls v0.3.1
> │    Compiling hyper-tls v0.6.0
> │    Compiling reqwest v0.12.9
> │    Compiling near-jsonrpc-client v0.10.1
> │    Compiling near-socialdb-client v0.3.2
> │    Compiling near-cli-rs v0.11.1
> │    Compiling cargo-near v0.6.4
> │    Compiling chat_contract_tests v0.0.1 
> (/mnt/c/home/git/polyglot/apps/chat/contract/tests)
> │     Finished `release` profile [optimized] target(s) in 
> 14m 36s
> │      Running 
> `/mnt/c/home/git/polyglot/workspace/target/release/chat_contract_tests`
> │ 
> │ 
> │ new: ExecutionFinalResult {
> │     total_gas_burnt: NearGas {
> │         inner: 1644014352562,
> │     },
> │     transaction: ExecutionOutcome {
> │         transaction_hash: 
> EogNxVRhPKgBZfmFFA99uSmMDHwAm3S5Xk9poSnwNxV6,
> │         block_hash: 
> 3yax6tjX5JswJdvCQN4F6nkmdYZVtr7ycTw15zp6YJMF,
> │         logs: [],
> │         receipt_ids: [
> │             6gEZTFDw1WwQHZ2MPhPMQQLEbcscE2LAFGVbb6mu3ebQ,
> │         ],
> │         gas_burnt: NearGas {
> │             inner: 308066207802,
> │         },
> │         tokens_burnt: NearToken {
> │             inner: 30806620780200000000,
> │         },
> │         executor_id: AccountId(
> │             "dev-20250329102346-91065096285086",
> │         ),
> │         status: 
> SuccessReceiptId(6gEZTFDw1WwQHZ2MPhPMQQLEbcscE2LAFGVbb6mu3ebQ),
> │     },
> │     receipts: [
> │         ExecutionOutcome {
> │             transaction_hash: 
> 6gEZTFDw1WwQHZ2MPhPMQQLEbcscE2LAFGVbb6mu3ebQ,
> │             block_hash: 
> 3yax6tjX5JswJdvCQN4F6nkmdYZVtr7ycTw15zp6YJMF,
> │             logs: [],
> │             receipt_ids: [
> │                 3iCa2RWiK74NNK9SG1jyCeuHcuf23b6mK1SWTirFEtQG,
> │             ],
> │             gas_burnt: NearGas {
> │                 inner: 1335948144760,
> │             },
> │             tokens_burnt: NearToken {
> │                 inner: 133594814476000000000,
> │             },
> │             executor_id: AccountId(
> │                 "dev-20250329102346-91065096285086",
> │             ),
> │             status: SuccessValue(''),
> │         },
> │     ],
> │     status: SuccessValue(''),
> │ }
> │ total_gas_burnt_usd: 0.001098201587511416
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.000205788226811736
> │   outcome_tokens_burnt_usd: 0.0
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.00089241336069968
> │   outcome_tokens_burnt_usd: 0.0
> │ 
> │ 
> │ claim_alias(contract, ''): ExecutionFinalResult {
> │     total_gas_burnt: NearGas {
> │         inner: 2234616488171,
> │     },
> │     transaction: ExecutionOutcome {
> │         transaction_hash: 
> 5AmDWLGxXqdDohaeTzn2UtzeDUaw9VdS7sge9rUrx8bk,
> │         block_hash: 
> 4RBWaBVY3ueYLZtMpJmVhnkftJfstAeygmuqWNqb2CqK,
> │         logs: [],
> │         receipt_ids: [
> │             CbbMQXounXMRCEdMvJxqz1xMzAd3Xzgxiqh1Kyiuyfmj,
> │         ],
> │         gas_burnt: NearGas {
> │             inner: 308110926482,
> │         },
> │         tokens_burnt: NearToken {
> │             inner: 30811092648200000000,
> │         },
> │         executor_id: AccountId(
> │             "dev-20250329102346-91065096285086",
> │         ),
> │         status: 
> SuccessReceiptId(CbbMQXounXMRCEdMvJxqz1xMzAd3Xzgxiqh1Kyiuyfmj),
> │     },
> │     receipts: [
> │         ExecutionOutcome {
> │             transaction_hash: 
> CbbMQXounXMRCEdMvJxqz1xMzAd3Xzgxiqh1Kyiuyfmj,
> │             block_hash: 
> 4RBWaBVY3ueYLZtMpJmVhnkftJfstAeygmuqWNqb2CqK,
> │             logs: [],
> │             receipt_ids: [
> │                 pyzX5k22djXtw6PPeb3vai7nbFzbAraFoT8mvvCzktm,
> │             ],
> │             gas_burnt: NearGas {
> │                 inner: 1703322999189,
> │             },
> │             tokens_burnt: NearToken {
> │                 inner: 170332299918900000000,
> │             },
> │             executor_id: AccountId(
> │                 "dev-20250329102346-91065096285086",
> │             ),
> │             status: Failure(ActionError(ActionError { index: 
> Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: 
> chat_contract.claim_alias / invalid alias")) })),
> │         },
> │         ExecutionOutcome {
> │             transaction_hash: 
> pyzX5k22djXtw6PPeb3vai7nbFzbAraFoT8mvvCzktm,
> │             block_hash: 
> 9foCoonburLU962TFyNnWYThCb1XXf7Q78Q2BdQJ7sD,
> │             logs: [],
> │             receipt_ids: [],
> │             gas_burnt: NearGas {
> │                 inner: 223182562500,
> │             },
> │             tokens_burnt: NearToken {
> │                 inner: 0,
> │             },
> │             executor_id: AccountId(
> │                 "dev-20250329102346-91065096285086",
> │             ),
> │             status: SuccessValue(''),
> │         },
> │     ],
> │     status: Failure(ActionError(ActionError { index: Some(0),
> kind: FunctionCallError(ExecutionError("Smart contract panicked: 
> chat_contract.claim_alias / invalid alias")) })),
> │ }
> │ total_gas_burnt_usd: 0.001492723814098228
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.000205818098889976
> │   outcome_tokens_burnt_usd: 0.0
> │ outcome (success: false):
> │   outcome_gas_burnt_usd: 0.001137819763458252
> │   outcome_tokens_burnt_usd: 0.0
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.00014908595175
> │   outcome_tokens_burnt_usd: 0.0
> │ 
> │ 
> │ dev_create_account(account1): Account {
> │     id: AccountId(
> │         "dev-20250329102348-92499734400939",
> │     ),
> │ }
> │ 
> │ 
> │ generate_cid_borsh(account1): ViewResultDetails { result: 
> [59, 0, 0, 0, 98, 97, 102, 107, 114, 101, 105, 104, 100, 119, 100, 99, 101, 102,
> 103, 104, 52, 100, 113, 107, 106, 118, 54, 55, 117, 122, 99, 109, 119, 55, 111, 
> 106, 101, 101, 54, 120, 101, 100, 122, 100, 101, 116, 111, 106, 117, 122, 106, 
> 101, 118, 116, 101, 110, 120, 113, 117, 118, 121, 107, 117], logs: [] }
> │ 
> │ 
> │ claim_alias(account1, alias1): ExecutionFinalResult {
> │     total_gas_burnt: NearGas {
> │         inner: 3675323811035,
> │     },
> │     transaction: ExecutionOutcome {
> │         transaction_hash: 
> CvHAxeu1jwHuMT4XmF6faYaWW4xVFmbmJ2S3PJYDLm8H,
> │         block_hash: 
> 7bLQPxMPwow9QrYESBKzdjxZMNkJtkihrHhDi4fHgZ3h,
> │         logs: [],
> │         receipt_ids: [
> │             9cVrzYbinVJMBFg6GkPC9U7afb2Gjd1JNFNvWMWyPPLm,
> │         ],
> │         gas_burnt: NearGas {
> │             inner: 308124342086,
> │         },
> │         tokens_burnt: NearToken {
> │             inner: 30812434208600000000,
> │         },
> │         executor_id: AccountId(
> │             "dev-20250329102348-92499734400939",
> │         ),
> │         status: 
> SuccessReceiptId(9cVrzYbinVJMBFg6GkPC9U7afb2Gjd1JNFNvWMWyPPLm),
> │     },
> │     receipts: [
> │         ExecutionOutcome {
> │             transaction_hash: 
> 9cVrzYbinVJMBFg6GkPC9U7afb2Gjd1JNFNvWMWyPPLm,
> │             block_hash: 
> QUhW6G4v2N85nZTQ2oUxfjgo9js4KxGV4jmw6csdLhN,
> │             logs: [
> │                 "10:23:50 \u{1b}[94md\u{1b}[39m #1 
> chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 
> 1743243830233716875; signer_account_id = \"dev-20250329102348-92499734400939\"; 
> predecessor_account_id = \"dev-20250329102348-92499734400939\" }\n10:23:50 
> \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = None }",
> │             ],
> │             receipt_ids: [
> │                 8P6eG5dxwiyy4kmfnhjxq8uYooJETXAHbGXRbuk1GFGD,
> │             ],
> │             gas_burnt: NearGas {
> │                 inner: 3144016906449,
> │             },
> │             tokens_burnt: NearToken {
> │                 inner: 314401690644900000000,
> │             },
> │             executor_id: AccountId(
> │                 "dev-20250329102346-91065096285086",
> │             ),
> │             status: SuccessValue(''),
> │         },
> │         ExecutionOutcome {
> │             transaction_hash: 
> 8P6eG5dxwiyy4kmfnhjxq8uYooJETXAHbGXRbuk1GFGD,
> │             block_hash: 
> 4ayWgGZbiWk4UTc1aoHefqSMm3QWK7CwPBFsRL1aoZBx,
> │             logs: [],
> │             receipt_ids: [],
> │             gas_burnt: NearGas {
> │                 inner: 223182562500,
> │             },
> │             tokens_burnt: NearToken {
> │                 inner: 0,
> │             },
> │             executor_id: AccountId(
> │                 "dev-20250329102348-92499734400939",
> │             ),
> │             status: SuccessValue(''),
> │         },
> │     ],
> │     status: SuccessValue(''),
> │ }
> │ total_gas_burnt_usd: 0.00245511630577138
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.000205827060513448
> │   outcome_tokens_burnt_usd: 0.0
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.002100203293507932
> │   outcome_tokens_burnt_usd: 0.0
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.00014908595175
> │   outcome_tokens_burnt_usd: 0.0
> │ 
> │ 
> │ claim_alias(account1, alias1): ExecutionFinalResult {
> │     total_gas_burnt: NearGas {
> │         inner: 3809435696729,
> │     },
> │     transaction: ExecutionOutcome {
> │         transaction_hash: 
> 9rmZYW2rcobbpv8vH8wFLmJ56QmtGhhMMcZKT1YefGni,
> │         block_hash: 
> 6adnY1RXz6KhmYQuhb1W7Yf3EwqCSgGeQ71F1eWeuTHD,
> │         logs: [],
> │         receipt_ids: [
> │             4acYtDCNwGLSyAEWMFXa5TAhZDtMWYRots8Jg2Xvm9Mt,
> │         ],
> │         gas_burnt: NearGas {
> │             inner: 308124342086,
> │         },
> │         tokens_burnt: NearToken {
> │             inner: 30812434208600000000,
> │         },
> │         executor_id: AccountId(
> │             "dev-20250329102348-92499734400939",
> │         ),
> │         status: 
> SuccessReceiptId(4acYtDCNwGLSyAEWMFXa5TAhZDtMWYRots8Jg2Xvm9Mt),
> │     },
> │     receipts: [
> │         ExecutionOutcome {
> │             transaction_hash: 
> 4acYtDCNwGLSyAEWMFXa5TAhZDtMWYRots8Jg2Xvm9Mt,
> │             block_hash: 
> 4SdZRWgHXCr71ihHXjxnV6osHUaNC3GCTgJJziM6td71,
> │             logs: [
> │                 "10:23:51 \u{1b}[94md\u{1b}[39m #1 
> chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 
> 1743243831261809075; signer_account_id = \"dev-20250329102348-92499734400939\"; 
> predecessor_account_id = \"dev-20250329102348-92499734400939\" }\n10:23:51 
> \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = 
> Some(\"alias1\") }",
> │             ],
> │             receipt_ids: [
> │                 8BhhAYD1Vyio62eFKncDMj9QwyheoJ5EbYTogo1t7KGC,
> │             ],
> │             gas_burnt: NearGas {
> │                 inner: 3278128792143,
> │             },
> │             tokens_burnt: NearToken {
> │                 inner: 327812879214300000000,
> │             },
> │             executor_id: AccountId(
> │                 "dev-20250329102346-91065096285086",
> │             ),
> │             status: SuccessValue(''),
> │         },
> │         ExecutionOutcome {
> │             transaction_hash: 
> 8BhhAYD1Vyio62eFKncDMj9QwyheoJ5EbYTogo1t7KGC,
> │             block_hash: 
> A8d2RgAGTPSyo4FMZqGSwypgohD8Dz2Eh8QiW4iibCjw,
> │             logs: [],
> │             receipt_ids: [],
> │             gas_burnt: NearGas {
> │                 inner: 223182562500,
> │             },
> │             tokens_burnt: NearToken {
> │                 inner: 0,
> │             },
> │             executor_id: AccountId(
> │                 "dev-20250329102348-92499734400939",
> │             ),
> │             status: SuccessValue(''),
> │         },
> │     ],
> │     status: SuccessValue(''),
> │ }
> │ total_gas_burnt_usd: 0.002544703045414972
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.000205827060513448
> │   outcome_tokens_burnt_usd: 0.0
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.002189790033151524
> │   outcome_tokens_burnt_usd: 0.0
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.00014908595175
> │   outcome_tokens_burnt_usd: 0.0
> │ 
> │ 
> │ get_account_info(account1): Some(
> │     (
> │         "alias1",
> │         1743243831261809075,
> │         0,
> │     ),
> │ )
> │ 
> │ 
> │ get_alias_map(account1, alias1): Some(
> │     {
> │         AccountId(
> │             "dev-20250329102348-92499734400939",
> │         ): (
> │             1743243831261809075,
> │             0,
> │         ),
> │     },
> │ )
> │ 
> │ 
> │ dev_create_account(account2): Account {
> │     id: AccountId(
> │         "dev-20250329102351-62326749506317",
> │     ),
> │ }
> │ 
> │ 
> │ claim_alias(alias2): ExecutionFinalResult {
> │     total_gas_burnt: NearGas {
> │         inner: 3907307282147,
> │     },
> │     transaction: ExecutionOutcome {
> │         transaction_hash: 
> GBUJtKXLWLugCfAtuwPEjDpQ4LFZasnDx62kh31pihU2,
> │         block_hash: 
> GbJHCGw6Y7VD7AR26KpTfHJdEpfDUx1NmmMquZbvdZ2S,
> │         logs: [],
> │         receipt_ids: [
> │             Fv8EtqEVVZdnTxtCZ17BMcTT9S6fuZmt3a32HyRdomLn,
> │         ],
> │         gas_burnt: NearGas {
> │             inner: 308124342086,
> │         },
> │         tokens_burnt: NearToken {
> │             inner: 30812434208600000000,
> │         },
> │         executor_id: AccountId(
> │             "dev-20250329102351-62326749506317",
> │         ),
> │         status: 
> SuccessReceiptId(Fv8EtqEVVZdnTxtCZ17BMcTT9S6fuZmt3a32HyRdomLn),
> │     },
> │     receipts: [
> │         ExecutionOutcome {
> │             transaction_hash: 
> Fv8EtqEVVZdnTxtCZ17BMcTT9S6fuZmt3a32HyRdomLn,
> │             block_hash: 
> B7FjNZp2nNNexLb7otwtjNDxYjxV2gMnfWPsrx9j6Vmu,
> │             logs: [
> │                 "10:23:53 \u{1b}[94md\u{1b}[39m #1 
> chat_contract.claim_alias / { alias = \"alias2\"; block_timestamp = 
> 1743243833322123775; signer_account_id = \"dev-20250329102351-62326749506317\"; 
> predecessor_account_id = \"dev-20250329102351-62326749506317\" }\n10:23:53 
> \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = None }",
> │             ],
> │             receipt_ids: [
> │                 2nEQb2JFzcujES8akf8kNBH5dgirGLP4v1c1nsm4BqBv,
> │             ],
> │             gas_burnt: NearGas {
> │                 inner: 3376000377561,
> │             },
> │             tokens_burnt: NearToken {
> │                 inner: 337600037756100000000,
> │             },
> │             executor_id: AccountId(
> │                 "dev-20250329102346-91065096285086",
> │             ),
> │             status: SuccessValue(''),
> │         },
> │         ExecutionOutcome {
> │             transaction_hash: 
> 2nEQb2JFzcujES8akf8kNBH5dgirGLP4v1c1nsm4BqBv,
> │             block_hash: 
> 6C2AaGXtYxcGNL3qEYcuh8qR1BAFkJWd9LhUjcUtr5h9,
> │             logs: [],
> │             receipt_ids: [],
> │             gas_burnt: NearGas {
> │                 inner: 223182562500,
> │             },
> │             tokens_burnt: NearToken {
> │                 inner: 0,
> │             },
> │             executor_id: AccountId(
> │                 "dev-20250329102351-62326749506317",
> │             ),
> │             status: SuccessValue(''),
> │         },
> │     ],
> │     status: SuccessValue(''),
> │ }
> │ total_gas_burnt_usd: 0.002610081264474196
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.000205827060513448
> │   outcome_tokens_burnt_usd: 0.0
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.002255168252210748
> │   outcome_tokens_burnt_usd: 0.0
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.00014908595175
> │   outcome_tokens_burnt_usd: 0.0
> │ 
> │ 
> │ get_account_info(account2): Some(
> │     (
> │         "alias2",
> │         1743243833322123775,
> │         0,
> │     ),
> │ )
> │ 
> │ 
> │ get_alias_map_borsh(alias2): Some(
> │     {
> │         AccountId(
> │             "dev-20250329102351-62326749506317",
> │         ): (
> │             1743243833322123775,
> │             0,
> │         ),
> │     },
> │ )
> │ 
> │ 
> │ claim_alias(account2, alias1): ExecutionFinalResult {
> │     total_gas_burnt: NearGas {
> │         inner: 4099022206478,
> │     },
> │     transaction: ExecutionOutcome {
> │         transaction_hash: 
> 4fnJjMU7A8Te8DMHwrotxJpLFDZ5Cz6Eho9B8kUAsZYA,
> │         block_hash: 
> 7aPqQgYF2Wt4ikYVgN2QUFsqTWo2iZe6WgUEbfRvtLQj,
> │         logs: [],
> │         receipt_ids: [
> │             BxhD6LeGmyfdJuDjohh1NkaVHmFJwvvyQY4bcD3LtcxM,
> │         ],
> │         gas_burnt: NearGas {
> │             inner: 308124342086,
> │         },
> │         tokens_burnt: NearToken {
> │             inner: 30812434208600000000,
> │         },
> │         executor_id: AccountId(
> │             "dev-20250329102351-62326749506317",
> │         ),
> │         status: 
> SuccessReceiptId(BxhD6LeGmyfdJuDjohh1NkaVHmFJwvvyQY4bcD3LtcxM),
> │     },
> │     receipts: [
> │         ExecutionOutcome {
> │             transaction_hash: 
> BxhD6LeGmyfdJuDjohh1NkaVHmFJwvvyQY4bcD3LtcxM,
> │             block_hash: 
> E8G4q2hi27BSZt6z3DgsZDqPYmgZ4kZDcAcDs1yJDB4A,
> │             logs: [
> │                 "10:23:54 \u{1b}[94md\u{1b}[39m #1 
> chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 
> 1743243834352540775; signer_account_id = \"dev-20250329102351-62326749506317\"; 
> predecessor_account_id = \"dev-20250329102351-62326749506317\" }\n10:23:54 
> \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = 
> Some(\"alias2\") }",
> │             ],
> │             receipt_ids: [
> │                 7fk9mWuqcmyT21jNMNPhT7W3DE6s3ArbzYu6czmUVUV,
> │             ],
> │             gas_burnt: NearGas {
> │                 inner: 3567715301892,
> │             },
> │             tokens_burnt: NearToken {
> │                 inner: 356771530189200000000,
> │             },
> │             executor_id: AccountId(
> │                 "dev-20250329102346-91065096285086",
> │             ),
> │             status: SuccessValue(''),
> │         },
> │         ExecutionOutcome {
> │             transaction_hash: 
> 7fk9mWuqcmyT21jNMNPhT7W3DE6s3ArbzYu6czmUVUV,
> │             block_hash: 
> Cb5GKTLD29BVMDdhG7Bifb8eZQDxiSqHN1TcJTGMpdn7,
> │             logs: [],
> │             receipt_ids: [],
> │             gas_burnt: NearGas {
> │                 inner: 223182562500,
> │             },
> │             tokens_burnt: NearToken {
> │                 inner: 0,
> │             },
> │             executor_id: AccountId(
> │                 "dev-20250329102351-62326749506317",
> │             ),
> │             status: SuccessValue(''),
> │         },
> │     ],
> │     status: SuccessValue(''),
> │ }
> │ total_gas_burnt_usd: 0.002738146833927304
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.000205827060513448
> │   outcome_tokens_burnt_usd: 0.0
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.0023832338216638557
> │   outcome_tokens_burnt_usd: 0.0
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.00014908595175
> │   outcome_tokens_burnt_usd: 0.0
> │ 
> │ 
> │ get_account_info(account2): Some(
> │     (
> │         "alias1",
> │         1743243834352540775,
> │         1,
> │     ),
> │ )
> │ 
> │ 
> │ get_alias_map(account2, alias1): Some(
> │     {
> │         AccountId(
> │             "dev-20250329102351-62326749506317",
> │         ): (
> │             1743243834352540775,
> │             1,
> │         ),
> │         AccountId(
> │             "dev-20250329102348-92499734400939",
> │         ): (
> │             1743243831261809075,
> │             0,
> │         ),
> │     },
> │ )
> │ 
> │ 
> │ get_alias_map(account2, alias2): Some(
> │     {},
> │ )
> │ 
> │ 
> │ claim_alias(account1, alias2): ExecutionFinalResult {
> │     total_gas_burnt: NearGas {
> │         inner: 3873596954246,
> │     },
> │     transaction: ExecutionOutcome {
> │         transaction_hash: 
> Bx9YCQNPikopJ3UFAYagBQ9UBKPboeQYNwmMG52UL6Yy,
> │         block_hash: 
> 6B96vrsQD6616Rw3xpLGWC79wyogfinguPQM5yytKWDJ,
> │         logs: [],
> │         receipt_ids: [
> │             H4sFcehcfxFkELByS4vsEjSstW3X8BbT9udpCfmqDvAJ,
> │         ],
> │         gas_burnt: NearGas {
> │             inner: 308124342086,
> │         },
> │         tokens_burnt: NearToken {
> │             inner: 30812434208600000000,
> │         },
> │         executor_id: AccountId(
> │             "dev-20250329102348-92499734400939",
> │         ),
> │         status: 
> SuccessReceiptId(H4sFcehcfxFkELByS4vsEjSstW3X8BbT9udpCfmqDvAJ),
> │     },
> │     receipts: [
> │         ExecutionOutcome {
> │             transaction_hash: 
> H4sFcehcfxFkELByS4vsEjSstW3X8BbT9udpCfmqDvAJ,
> │             block_hash: 
> 2xmZTNNu2UxKWDyW83PGNphsu6MnUhE6Ycrk4bM2yZJL,
> │             logs: [
> │                 "10:23:55 \u{1b}[94md\u{1b}[39m #1 
> chat_contract.claim_alias / { alias = \"alias2\"; block_timestamp = 
> 1743243835372312375; signer_account_id = \"dev-20250329102348-92499734400939\"; 
> predecessor_account_id = \"dev-20250329102348-92499734400939\" }\n10:23:55 
> \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = 
> Some(\"alias1\") }",
> │             ],
> │             receipt_ids: [
> │                 DxYaGnNDnjzBjaxUi9U5g4t19swcBbzdtwETNwdYPEps,
> │             ],
> │             gas_burnt: NearGas {
> │                 inner: 3565472612160,
> │             },
> │             tokens_burnt: NearToken {
> │                 inner: 356547261216000000000,
> │             },
> │             executor_id: AccountId(
> │                 "dev-20250329102346-91065096285086",
> │             ),
> │             status: SuccessValue(''),
> │         },
> │     ],
> │     status: SuccessValue(''),
> │ }
> │ total_gas_burnt_usd: 0.002587562765436328
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.000205827060513448
> │   outcome_tokens_burnt_usd: 0.0
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.00238173570492288
> │   outcome_tokens_burnt_usd: 0.0
> │ 
> │ 
> │ get_account_info(account1): Some(
> │     (
> │         "alias2",
> │         1743243835372312375,
> │         0,
> │     ),
> │ )
> │ 
> │ 
> │ get_alias_map(account1, alias2): Some(
> │     {
> │         AccountId(
> │             "dev-20250329102348-92499734400939",
> │         ): (
> │             1743243835372312375,
> │             0,
> │         ),
> │     },
> │ )
> │ 
> │ 
> │ get_alias_map(account1, alias1): Some(
> │     {
> │         AccountId(
> │             "dev-20250329102351-62326749506317",
> │         ): (
> │             1743243834352540775,
> │             1,
> │         ),
> │     },
> │ )
> │ 
> │ 
> │ claim_alias(account1, alias1): ExecutionFinalResult {
> │     total_gas_burnt: NearGas {
> │         inner: 4098951449462,
> │     },
> │     transaction: ExecutionOutcome {
> │         transaction_hash: 
> 5VAozd8fMgps6knB5rcTfCd4LCxxUspPaVS1RRGrzrRh,
> │         block_hash: 
> 6Y1MhvorEbpoHtJ84cFxP4he8jgUMcMY4NrgFzSiAk7L,
> │         logs: [],
> │         receipt_ids: [
> │             CvwLbJaiiZJPs7z23uVs65KtiRnxkRjR1kYmEiuLgLpo,
> │         ],
> │         gas_burnt: NearGas {
> │             inner: 308124342086,
> │         },
> │         tokens_burnt: NearToken {
> │             inner: 30812434208600000000,
> │         },
> │         executor_id: AccountId(
> │             "dev-20250329102348-92499734400939",
> │         ),
> │         status: 
> SuccessReceiptId(CvwLbJaiiZJPs7z23uVs65KtiRnxkRjR1kYmEiuLgLpo),
> │     },
> │     receipts: [
> │         ExecutionOutcome {
> │             transaction_hash: 
> CvwLbJaiiZJPs7z23uVs65KtiRnxkRjR1kYmEiuLgLpo,
> │             block_hash: 
> FLfHJLGcC2RJCTPigfZg89JyPN6uJWXPAPGZJpigVsaa,
> │             logs: [
> │                 "10:23:55 \u{1b}[94md\u{1b}[39m #1 
> chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 
> 1743243835982235575; signer_account_id = \"dev-20250329102348-92499734400939\"; 
> predecessor_account_id = \"dev-20250329102348-92499734400939\" }\n10:23:55 
> \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = 
> Some(\"alias2\") }",
> │             ],
> │             receipt_ids: [
> │                 4rPJgYooYtZ4StqTYYG5hPvGq5KLaXkXQKRcToJ6PbiA,
> │             ],
> │             gas_burnt: NearGas {
> │                 inner: 3567644544876,
> │             },
> │             tokens_burnt: NearToken {
> │                 inner: 356764454487600000000,
> │             },
> │             executor_id: AccountId(
> │                 "dev-20250329102346-91065096285086",
> │             ),
> │             status: SuccessValue(''),
> │         },
> │         ExecutionOutcome {
> │             transaction_hash: 
> 4rPJgYooYtZ4StqTYYG5hPvGq5KLaXkXQKRcToJ6PbiA,
> │             block_hash: 
> A5nMAT2bby5BH8NMgbihScBeo2tS9Qzbqj4hvZwTJ2bm,
> │             logs: [],
> │             receipt_ids: [],
> │             gas_burnt: NearGas {
> │                 inner: 223182562500,
> │             },
> │             tokens_burnt: NearToken {
> │                 inner: 0,
> │             },
> │             executor_id: AccountId(
> │                 "dev-20250329102348-92499734400939",
> │             ),
> │             status: SuccessValue(''),
> │         },
> │     ],
> │     status: SuccessValue(''),
> │ }
> │ total_gas_burnt_usd: 0.002738099568240616
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.000205827060513448
> │   outcome_tokens_burnt_usd: 0.0
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.0023831865559771678
> │   outcome_tokens_burnt_usd: 0.0
> │ outcome (success: true):
> │   outcome_gas_burnt_usd: 0.00014908595175
> │   outcome_tokens_burnt_usd: 0.0
> │ 
> │ 
> │ get_account_info(account1): Some(
> │     (
> │         "alias1",
> │         1743243835982235575,
> │         1,
> │     ),
> │ )
> │ 
> │ 
> │ get_alias_map(account1, alias1): Some(
> │     {
> │         AccountId(
> │             "dev-20250329102348-92499734400939",
> │         ): (
> │             1743243835982235575,
> │             1,
> │         ),
> │         AccountId(
> │             "dev-20250329102351-62326749506317",
> │         ): (
> │             1743243834352540775,
> │             0,
> │         ),
> │     },
> │ )
> │ 
> │ 
> │ get_alias_map(account1, alias2): Some(
> │     {},
> │ )
> │ 
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> { pwsh ../apps/spiral/temp/build.ps1 } | Invoke-Block
> 
> ── [ 7.21m - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:00 d #1 spiral.main / { args = 
> Array(MutCell(["dib", "--path", "cube.dib"])) }
> │ 00:00:00 d #2 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", 
> "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib", "--output-path", 
> "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.ipynb"]; options = { 
> command = dotnet repl --exit-after-run --run 
> "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib" --output-path 
> "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.ipynb"; cancellation_token 
> = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), 
> ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; 
> working_directory = None } }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ # cube
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## cube
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > open System
> │ > open System.Threading.Tasks
> │ > open System.Text
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let width = 160
> │ > let height = 44
> │ > let backgroundChar = '.'
> │ > let distanceFromCam = 100.0
> │ > let k1 = 40.0
> │ > let incrementSpeed = 0.6
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### get_width
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl get_width () =
> │ >     160i32
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### get_height
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl get_height () =
> │ >     44i32
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### get_background_char
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl get_background_char () =
> │ >     '.'
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### get_distance_from_cam
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl get_distance_from_cam () =
> │ >     100f64
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### get_k1
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl get_k1 () =
> │ >     40f64
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### get_increment_speed
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl get_increment_speed () =
> │ >     0.6f64
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### rotation
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > type Rotation = { a: float; b: float; c: float }
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > type rotation =
> │ >     {
> │ >         a : f64
> │ >         b : f64
> │ >         c : f64
> │ >     }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### cube
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > type Cube = { cubeWidth: float; horizontalOffset: float }
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > type cube =
> │ >     {
> │ >         cube_width : f64
> │ >         horizontal_offset : f64
> │ >     }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### get_cubes
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let cubes = [[
> │ >     { cubeWidth = 20.0; horizontalOffset = -40.0 }
> │ >     { cubeWidth = 10.0; horizontalOffset = 10.0 }
> │ >     { cubeWidth = 5.0; horizontalOffset = 40.0 }
> │ > ]]
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl get_cubes () : list cube =
> │ >     [[
> │ >         { cube_width = 20; horizontal_offset = -40 }
> │ >         { cube_width = 10; horizontal_offset = 10 }
> │ >         { cube_width = 5; horizontal_offset = 40 }
> │ >     ]]
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### calculate_x
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let calculateX i j k (rot: Rotation) =
> │ >     let a, b, c = rot.a, rot.b, rot.c
> │ >     j * sin a * sin b * cos c - k * cos a * sin b * cos c +
> │ >     j * cos a * sin c + k * sin a * sin c + i * cos b * cos
> c
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl calculate_x i j k (rot : rotation) =
> │ >     inl a, b, c = rot.a, rot.b, rot.c
> │ >     j * sin a * sin b * cos c - k * cos a * sin b * cos c +
> │ >     j * cos a * sin c + k * sin a * sin c + i * cos b * cos
> c
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### calculate_y
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let calculateY i j k (rot: Rotation) =
> │ >     let a, b, c = rot.a, rot.b, rot.c
> │ >     j * cos a * cos c + k * sin a * cos c -
> │ >     j * sin a * sin b * sin c + k * cos a * sin b * sin c -
> │ >     i * cos b * sin c
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl calculate_y i j k (rot : rotation) =
> │ >     inl a, b, c = rot.a, rot.b, rot.c
> │ >     j * cos a * cos c + k * sin a * cos c -
> │ >     j * sin a * sin b * sin c + k * cos a * sin b * sin c -
> │ >     i * cos b * sin c
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### calculate_z
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let calculateZ i j k (rot: Rotation) =
> │ >     let a, b, c = rot.a, rot.b, rot.c
> │ >     k * cos a * cos b - j * sin a * cos b + i * sin b
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl calculate_z i j k (rot : rotation) =
> │ >     inl a, b, c = rot.a, rot.b, rot.c
> │ >     k * cos a * cos b - j * sin a * cos b + i * sin b
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### calculate_for_surface
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let calculateForSurface cubeX cubeY cubeZ ch rot 
> horizontalOffset =
> │ >     let x = calculateX cubeX cubeY cubeZ rot
> │ >     let y = calculateY cubeX cubeY cubeZ rot
> │ >     let z = calculateZ cubeX cubeY cubeZ rot + 
> distanceFromCam
> │ >     let ooz = 1.0 / z
> │ >     let xp = int (float width / 2.0 + horizontalOffset + k1
> * ooz * x * 2.0)
> │ >     let yp = int (float height / 2.0 + k1 * ooz * y)
> │ >     let idx = xp + yp * width
> │ >     if idx >= 0 && idx < width * height
> │ >     then Some (idx, (ooz, ch))
> │ >     else None
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > let calculate_for_surface cube_x cube_y cube_z ch rot 
> horizontal_offset =
> │ >     inl x = calculate_x cube_x cube_y cube_z rot
> │ >     inl y = calculate_y cube_x cube_y cube_z rot
> │ >     inl z = calculate_z cube_x cube_y cube_z rot + 
> get_distance_from_cam ()
> │ >     inl ooz = 1.0 / z
> │ >     inl xp = i32 (f64 (get_width ()) / 2.0 + 
> horizontal_offset + get_k1 () * ooz
> │ > * x * 2.0)
> │ >     inl yp = i32 (f64 (get_height ()) / 2.0 + get_k1 () * 
> ooz * y)
> │ >     inl idx = xp + yp * get_width ()
> │ >     if idx >= 0 && idx < get_width () * get_height ()
> │ >     then Some (idx, (ooz, ch))
> │ >     else None
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### frange
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let frange start stop step =
> │ >     seq {
> │ >         let mutable current = start
> │ >         while (step > 0.0 && current < stop) || (step < 0.0
> && current > stop) 
> │ > do
> │ >             yield current
> │ >             current <- current + step
> │ >     }
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl frange start stop step : _ f64 =
> │ >     fun () =>
> │ >         inl current = mut start
> │ >         loopw.while
> │ >             fun () => (step > 0f64 && *current < stop) || 
> (step < 0 && *current 
> │ > > stop)
> │ >             fun () =>
> │ >                 *current |> yield
> │ >                 current <- *current + step
> │ >     |> seq.new_seq
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### get_cube_points
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let getCubePoints (cube: Cube) rot =
> │ >     let cw = cube.cubeWidth
> │ >     let ho = cube.horizontalOffset
> │ >     let cubeRange = frange (-cw) cw incrementSpeed
> │ >     seq {
> │ >         for cubeX in cubeRange do
> │ >             for cubeY in cubeRange do
> │ >                 let x =
> │ >                     [[
> │ >                         calculateForSurface cubeX cubeY 
> (-cw) '@' rot ho
> │ >                         calculateForSurface cw cubeY cubeX 
> '$' rot ho
> │ >                         calculateForSurface (-cw) cubeY 
> (-cubeX) '~' rot ho
> │ >                         calculateForSurface (-cubeX) cubeY 
> cw '#' rot ho
> │ >                         calculateForSurface cubeX (-cw) 
> (-cubeY) ';' rot ho
> │ >                         calculateForSurface cubeX cw cubeY 
> '+' rot ho
> │ >                     ]]
> │ >                     |> Seq.choose id
> │ >                 yield! x
> │ >     }
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl get_cube_points (cube : cube) rot =
> │ >     inl cw = cube.cube_width
> │ >     inl ho = cube.horizontal_offset
> │ >     inl cube_range = frange -cw cw (get_increment_speed ())
> │ >     inl cube_range = join cube_range
> │ >     inl get cube_x cube_y =
> │ >         [[
> │ >             calculate_for_surface cube_x cube_y -cw ';' rot
> ho
> │ >             calculate_for_surface cw cube_y cube_x '\\' rot
> ho
> │ >             calculate_for_surface -cw cube_y -cube_x '/' 
> rot ho
> │ >             calculate_for_surface -cube_x cube_y cw '=' rot
> ho
> │ >             calculate_for_surface cube_x -cw -cube_y '>' 
> rot ho
> │ >             calculate_for_surface cube_x cw cube_y '<' rot 
> ho
> │ >         ]]
> │ >         |> listm'.box
> │ >     inl get = join get
> │ >     inl box x : _ (i32 * f64 * char) =
> │ >         optionm'.box x
> │ >     inl box = join box
> │ >     fun () =>
> │ >         backend_switch {
> │ >             Fsharp = fun () =>
> │ >                 $'for cube_x in !cube_range do'
> │ >                 $'for cube_y in !cube_range do'
> │ >                 $'let x = !get cube_x cube_y |> Seq.choose 
> !box '
> │ >                 $'yield\! x' : ()
> │ >             Python = fun () =>
> │ >                 $'cube_range = !cube_range '
> │ >                 $'get = !get '
> │ >                 $'box = !box '
> │ >                 $'for cube_x in cube_range:'
> │ >                 $'    for cube_y in cube_range:'
> │ >                 $'        x = get(cube_x)(cube_y)'
> │ >                 $'        for i in x:'
> │ >                 $'            i_ = box(i)'
> │ >                 $'            if i_ is not None: yield i' :
> ()
> │ >         }
> │ >     |> seq.new_seq
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### generate_frame
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let generateFrame rot =
> │ >     let updates =
> │ >         cubes
> │ >         |> Seq.collect (fun cube -> getCubePoints cube rot)
> │ >     let buffer = Array.create (width * height) None
> │ >     updates
> │ >     |> Seq.iter (fun (idx, (ooz, ch)) ->
> │ >         match buffer.[[idx]] with
> │ >         | Some (prevOoz, _) when prevOoz >= ooz -> ()
> │ >         | _ -> buffer.[[idx]] <- Some (ooz, ch)
> │ >     )
> │ >     let sb = StringBuilder()
> │ >     for row in 0 .. (height - 1) do
> │ >         for col in 0 .. (width - 1) do
> │ >             let idx = col + row * width
> │ >             let ch =
> │ >                 match buffer.[[idx]] with
> │ >                 | Some (_, ch) -> ch
> │ >                 | None -> backgroundChar
> │ >             sb.Append(ch) |> ignore
> │ >         sb.AppendLine() |> ignore
> │ >     sb.ToString()
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > 
> │ > let rot = { a = 0.0; b = 0.0; c = 0.0 }
> │ > let frame = generateFrame rot
> │ > Console.Write frame
> │ > 
> │ > ── [ 36.85ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> .@@@@@@@@@@@@@@@@@$.............................................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> .@@@@@@@@@@@@@@@@@$.............................................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$...................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$...................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$...................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$...................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$...................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> .@@@@@@@@@@@@@@@@@$................+++++++++....................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> .@@@@@@@@@@@@@@@@@$.............................................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> .+++++++++++++++++$.............................................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................++++++++++++++++++++++++++++++++++++++++....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl generate_frame rot =
> │ >     inl updates : seq.seq' (int * (f64 * char)) =
> │ >         inl get_cube_points' cube : seq.seq' (int * (f64 * 
> char)) =
> │ >             get_cube_points cube rot
> │ >         inl cubes = get_cubes () |> listm'.box
> │ >         backend_switch {
> │ >             Fsharp = fun () =>
> │ >                 inl get_cube_points' = join 
> get_cube_points'
> │ >                 (cubes |> $'Seq.collect !get_cube_points' 
> ') : seq.seq' (int * 
> │ > (f64 * char))
> │ >             Python = fun () =>
> │ >                 $'cubes = !cubes '
> │ >                 $'get_cube_points = !get_cube_points' '
> │ >                 $'[[x for cube in cubes for x in 
> get_cube_points(*cube)]]' : 
> │ > seq.seq' (int * (f64 * char))
> │ >         }
> │ >     inl none : _ (f64 * char) = None
> │ >     inl width = get_width ()
> │ >     inl height = get_height ()
> │ >     inl buffer =
> │ >         backend_switch {
> │ >             Fsharp = fun () =>
> │ >                 $'Array.create (!width * !height) !none ' :
> a int (option (f64 *
> │ > char))
> │ >             Python = fun () =>
> │ >                 $'[[!none for _ in range(!width * 
> !height)]]' : a int (option 
> │ > (f64 * char))
> │ >         }
> │ > 
> │ >     inl fn idx ((ooz : f64), (ch : char)) =
> │ >         match buffer |> am'.index idx with
> │ >         | Some (prev_ooz, _) when prev_ooz >= ooz => ()
> │ >         | _ =>
> │ >             inl x = (ooz, ch) |> Some
> │ >             backend_switch {
> │ >                 Fsharp = fun () =>
> │ >                     $'!buffer.[[!idx]] <- !x ' : ()
> │ >                 Python = fun () =>
> │ >                     $'!buffer[[!idx]] = !x ' : ()
> │ >             }
> │ >     backend_switch {
> │ >         Fsharp = fun () =>
> │ >             updates
> │ >             |> $'Seq.iter (fun (struct (idx, ooz, ch)) -> 
> !fn idx (ooz, ch))' : 
> │ > ()
> │ >         Python = fun () =>
> │ >             $'for (idx, ooz, ch) in !updates: !fn(idx)(ooz,
> ch)' : ()
> │ >     }
> │ > 
> │ >     inl sb = "" |> sm'.string_builder
> │ >     inl fn1 row =
> │ >         inl fn2 col =
> │ >             inl idx = col + row * width
> │ >             inl ch =
> │ >                 match buffer |> am'.index idx with
> │ >                 | Some (_, ch) => ch
> │ >                 | None => get_background_char ()
> │ >             sb |> sm'.builder_append (ch |> 
> sm'.obj_to_string) |> ignore
> │ >         
> │ >         backend_switch {
> │ >             Fsharp = fun () =>
> │ >                 $'for col in 0 .. (!width - 1) do !fn2 col'
> : ()
> │ >             Python = fun () =>
> │ >                 $'for col in range(!width): !fn2(col)' : ()
> │ >         }
> │ >         sb |> sm'.builder_append_line |> ignore
> │ >     
> │ >     backend_switch {
> │ >         Fsharp = fun () =>
> │ >             $'for row in 0 .. (!height - 1) do !fn1 row' : 
> ()
> │ >         Python = fun () =>
> │ >             $'for row in range(!height): !fn1(row)' : ()
> │ >     }
> │ >     sb |> sm'.obj_to_string
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > //// test
> │ > ///! fsharp
> │ > ///! cuda
> │ > ///! rust
> │ > ///! typescript
> │ > ///! python
> │ > 
> │ > { a = 0.0; b = 0.0; c = 0.0 }
> │ > |> generate_frame
> │ > |> console.write_line
> │ > 
> │ > ── [ 2.18m - return value ] 
> ────────────────────────────────────────────────────
> │ > │ "
> │ > │ .py output (Cuda):
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > │ 
> │ > │ "
> │ > │ 
> │ > 
> │ > ── [ 2.18m - stdout ] 
> ──────────────────────────────────────────────────────────
> │ > │ .fsx output:
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\.............................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\.............................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\................<<<<<<<<<....................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\.............................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .<<<<<<<<<<<<<<<<<\.............................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### main_loop
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > let rec mainLoop rot = async {
> │ >     let frame = generateFrame rot
> │ >     // Console.SetCursorPosition(0, 0)
> │ >     Console.Write(frame)
> │ >     let rot' = { a = rot.a + 0.05; b = rot.b + 0.05; c = 
> rot.c + 0.01 }
> │ >     do! Async.Sleep 16
> │ >     return! mainLoop rot'
> │ > }
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > let rec main_loop max i rot =
> │ >     fun () =>
> │ >         inl rot = join rot
> │ >         inl frame = rot |> generate_frame
> │ >         if max < 0 then
> │ >             run_target function
> │ >                 | Fsharp (Native) => fun () => 
> │ > $'System.Console.SetCursorPosition (0, 0)'
> │ >                 | Rust _ => fun () =>
> │ >                     open rust.rust_operators
> │ >                     
> !\($'$"print\!(\\\"\\\\x1B[[1;1H\\\")"')
> │ >                 | TypeScript _ => fun () =>
> │ >                     open typescript_operators
> │ >                     
> !\($'$"process.stdout.write(\'\\\\u001B[[1;1H\')"')
> │ >                 | Python _ => fun () =>
> │ >                     open python_operators
> │ >                     // global "import sys"
> │ >                     
> !\($'$"sys.stdout.write(\\\"\\\\033[[1;1H\\\")"')
> │ >                 | Cuda _ => fun () =>
> │ >                     global "import sys"
> │ >                     $'sys.stdout.write("\\033[[1;1H")'
> │ >                 | _ => fun () => ()
> │ >         frame |> console.write_line
> │ >         async.sleep 1 |> async.do
> │ >         if max > 0 && i >= max
> │ >         then ()
> │ >         else
> │ >             { a = rot.a + 0.05; b = rot.b + 0.05; c = rot.c
> + 0.01 }
> │ >             |> main_loop max (i + 1)
> │ >             |> async.return_await'
> │ >     |> async.new_async_unit
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### main
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > // [[<EntryPoint>]]
> │ > let main argv =
> │ >     // Console.CursorVisible <- false
> │ >     Async.StartImmediate (mainLoop { a = 0.0; b = 0.0; c = 
> 0.0 })
> │ >     System.Threading.Thread.Sleep(1000)
> │ > 
> │ > ── fsharp 
> ──────────────────────────────────────────────────────────────────────
> │ > // main [[||]]
> │ > 
> │ > ── spiral 
> ──────────────────────────────────────────────────────────────────────
> │ > inl main (_args : array_base string) =
> │ >     inl console =
> │ >         run_target function
> │ >         | Fsharp (Wasm) => fun () => false
> │ >         | _ => fun () =>
> │ >             ((join "VSCODE_PID") |> 
> env.get_environment_variable |> sm'.length 
> │ > |> (=) 0i32)
> │ >                 && ("AUTOMATION" |> 
> env.get_environment_variable |> sm'.length 
> │ > |> (=) 0i32)
> │ >     if console then
> │ >         run_target function
> │ >             | Fsharp (Native) => fun () => 
> $'System.Console.CursorVisible <- 
> │ > false'
> │ >             | Rust _ => fun () =>
> │ >                 open rust.rust_operators
> │ >                 !\($'$"print\!(\\\"\\\\x1B[[?25l\\\")"')
> │ >             | TypeScript _ => fun () =>
> │ >                 open typescript_operators
> │ >                 
> !\($'$"process.stdout.write(\'\\\\u001B[[?25l\')"')
> │ >             | Python _ => fun () =>
> │ >                 open python_operators
> │ >                 python.import_all "sys"
> │ >                 
> !\($'$"sys.stdout.write(\\\"\\\\033[[?25l\\\")"')
> │ >             | _ => fun () => ()
> │ >     main_loop (if console then -1i32 else 50) 1i32 { a = 
> 0.0; b = 0.0; c = 0.0 }
> │ >     |> fun x =>
> │ >         run_target_args' x function
> │ >         | Fsharp (Wasm)
> │ >         | TypeScript _ => fun x =>
> │ >             x
> │ >             |> async.start_child
> │ >             |> ignore
> │ >         | Python _ => fun x =>
> │ >             x
> │ >             |> async.start_immediate
> │ >             threading.sleep' 2000
> │ >         | _ => fun x =>
> │ >             x
> │ >             |> async.run_synchronously
> │ > 
> │ > inl main () =
> │ >     backend_switch {
> │ >         Fsharp = fun () =>
> │ >             $'let main_ = !main '
> │ >             $'#if \!FABLE_COMPILER_RUST'
> │ >             $'main_ [[||]]' : ()
> │ >             $'#else'
> │ >             $'let main args = main_ [[||]]; 0' : ()
> │ >             $'#endif' : ()
> │ >         Python = fun () =>
> │ >             main ;[[]]
> │ >     }
> │ >     : ()
> │ > 
> │ > ── [ 3.35s - stdout ] 
> ──────────────────────────────────────────────────────────
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\.............................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\.............................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\...................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\................<<<<<<<<<....................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .;;;;;;;;;;;;;;;;;\.............................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> .<<<<<<<<<<<<<<<<<\.............................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> .;;;;;;;;;;;;;;;;;;\............................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> .;;;;;;;;;;;;;;;;;;\............................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;...................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;...................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;...................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;...................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> .;;;;;;;;;;;;;;;;;;;................;;;;;<<<<...................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> .;;;;;;;;;;;;;;;;;;;................<<<<<.......................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> .;;;;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> .<<<<<<<<<<<<<<<<<<<............................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\..................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> .;;;;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
> │ > 
> .;;;;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
> │ > 
> .;;;;;;;;;;;;;;;;;;;...............>;;;;;;;;;...................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
> │ > 
> .;;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;...................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> .;;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;...................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> .;;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;...................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> .;;;;;;;;;;;;;;;;;;;.............../<<<<<<<<<...................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> ..;;;;;;;;;;;;;;;;;;...............<<<<<<<<<....................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
> │ > 
> ..;;;;;;;;;;<<<<<<<<............................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> ..<<<<<<<<<<....................................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<\.................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;...............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
> │ > 
> ..............;;;;;;............................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
> │ > 
> .>;;;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> ./;;;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> ./;;;;;;;;;;;;;;;;;;...............>;;;;;;;;;...................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
> │ > 
> ./;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;...................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
> │ > 
> ./;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;...................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
> │ > 
> ./;;;;;;;;;;;;;;;;;;\............../;;;;;;;;;...................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
> │ > 
> ./;;;;;;;;;;;;;;;;;;;............../<<<<<<<<<...................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
> │ > 
> ./;;;;;;;;;;;;;;;;;;;............../<<<<<<<<....................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
> │ > 
> ./<<<<<<<<<<<<<<<<<<<...........................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
> │ > 
> ./<<<<<<<<<<<<<<<...............................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................<<<<<<<<<<................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
> │ > 
> ..;;;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> .>;;;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> ./;;;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
> │ > 
> >/;;;;;;;;;;;;;;;;;;...............>;;;;;;;;;...................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
> │ > 
> ./;;;;;;;;;;;;;;;;;;\............../;;;;;;;;;...................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
> │ > 
> ./;;;;;;;;;;;;;;;;;;;............../;;;;;;;;;...................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
> │ > 
> ./;;;;;;;;;;;;;;;;;;;............../;;;;;;;;;\..................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................
> │ > 
> .//;;;;;;;;;;;;;;;;;;............../<<<<<<<<<\..................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
> │ > 
> .//;;;;;;;;;;;;;;;;;;............../<<<<<<<<....................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
> │ > 
> .//<<<<<<<<<<<<<<<<<<...........................................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
> │ > 
> ./<<<<<<<<<<<<<<<<..............................................................
> │ > │ 
> │ > 
> ........................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...............
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<...............
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................<<<<<<<<<<<<<<<<<<<<<<..................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> ..;;;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> .>;;;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
> │ > 
> >/;;;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
> │ > 
> //;;;;;;;;;;;;;;;;;;\..............>;;;;;;;;;...................................
> │ > │ 
> │ > 
> ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
> │ > 
> ///;;;;;;;;;;;;;;;;;;............../;;;;;;;;;...................................
> │ > │ 
> │ > 
> ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................
> │ > 
> ///;;;;;;;;;;;;;;;;;;............../;;;;;;;;;\..................................
> │ > │ 
> │ > 
> ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
> │ > 
> ///;;;;;;;;;;;;;;;;;;............../;;;;;;;;;;..................................
> │ > │ 
> │ > 
> ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
> │ > 
> .//;;;;;;;;;;;;;;;;;;;.............//<<<<<<<<<..................................
> │ > │ 
> │ > 
> .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...............
> │ > 
> .//;;;;;;;;;;;;;;;;<<<............./<<<<<<<<....................................
> │ > │ 
> │ > 
> .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............
> │ > 
> .///<<<<<<<<<<<<<<<<<...........................................................
> │ > │ 
> │ > 
> .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..............
> │ > 
> ./<<<<<<<<<<<<<<<<..............................................................
> │ > │ 
> │ > 
> .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<..............
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................//;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................//<<<<<<<<<<<<<<<<<<<<<<<<<..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................<<<<<<<.................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> ..;;;;;;;;;;;;;;;;;.............................................................
> │ > │ 
> │ > 
> .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> .>;;;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
> │ > 
> >//;;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
> │ > 
> ///;;;;;;;;;;;;;;;;;\..............>;;;;;;;;;...................................
> │ > │ 
> │ > 
> .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................
> │ > 
> ///;;;;;;;;;;;;;;;;;;.............>/;;;;;;;;;...................................
> │ > │ 
> │ > 
> ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
> │ > 
> ///;;;;;;;;;;;;;;;;;;.............//;;;;;;;;;\..................................
> │ > │ 
> │ > 
> ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...............
> │ > 
> ////;;;;;;;;;;;;;;;;;;.............//;;;;;;;;;..................................
> │ > │ 
> │ > 
> ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............
> │ > 
> ////;;;;;;;;;;;;;;;;;;.............//<<<<<<<<<..................................
> │ > │ 
> │ > 
> ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..............
> │ > 
> ////;;;;;;;<<<<<<<<<<<............./<<<<<<<<....................................
> │ > │ 
> │ > 
> ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............
> │ > 
> .///<<<<<<<<<<<<<<<<<...........................................................
> │ > │ 
> │ > 
> ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............
> │ > 
> .//<<<<<<<<<<<<<<<..............................................................
> │ > │ 
> │ > 
> .......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<.............
> │ > 
> .<<<............................................................................
> │ > │ 
> │ > 
> .......................////;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<...............
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................////<<<<<<<<<<<<<<<<<<<<<<<<<............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................//<<<<<<<<<<<<<..........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................>///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> ..;;;;;;;;;;;;;;;;;.............................................................
> │ > │ 
> │ > 
> ....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> .>/;;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> ....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
> │ > 
> >//;;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> ....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...............>
> │ > 
> ///;;;;;;;;;;;;;;;;;;..............>;;;;;;;;;...................................
> │ > │ 
> │ > 
> ...................../////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............../
> │ > 
> ////;;;;;;;;;;;;;;;;;.............//;;;;;;;;;...................................
> │ > │ 
> │ > 
> .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............../
> │ > 
> ////;;;;;;;;;;;;;;;;;;............///;;;;;;;;;..................................
> │ > │ 
> │ > 
> .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............
> │ > 
> ////;;;;;;;;;;;;;;;;;;............///;;;;;;;;;..................................
> │ > │ 
> │ > 
> .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............
> │ > 
> ////;;;;;;;;;;;;;;;;;;;............//;<<<<<<<<..................................
> │ > │ 
> │ > 
> .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............
> │ > 
> /////<<<<<<<<<<<<<<<<<<............/<<<<<<<<....................................
> │ > │ 
> │ > 
> ......................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............
> │ > 
> .///<<<<<<<<<<<<<<<<............................................................
> │ > │ 
> │ > 
> ......................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<............
> │ > 
> .//<<<<<<<<<<<<<<<..............................................................
> │ > │ 
> │ > 
> ......................//////;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<.............
> │ > 
> .<<<<<<.........................................................................
> │ > │ 
> │ > 
> ......................///////;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<..................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................//////<<<<<<<<<<<<<<<<<<<<<<<<<<<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................////<<<<<<<<<<<<<<<<<<<<<<<<<<...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................///<<<<<<<<<<<<<<<<......................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................./<<<<<...................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................;;;;;;..................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................>///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................../////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................>/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> ..;;;;;;;;;;;;;;;;;.............................................................
> │ > │ 
> │ > 
> ....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
> │ > 
> .>/;;;;;;;;;;;;;;;;\............................................................
> │ > │ 
> │ > 
> ...................>///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
> │ > 
> >//;;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> ...................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............../
> │ > 
> ///;;;;;;;;;;;;;;;;;;..............>;;;;;;;;;...................................
> │ > │ 
> │ > 
> ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............../
> │ > 
> ////;;;;;;;;;;;;;;;;;\............>/;;;;;;;;;\..................................
> │ > │ 
> │ > 
> ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............./
> │ > 
> ////;;;;;;;;;;;;;;;;;;............///;;;;;;;;;..................................
> │ > │ 
> │ > 
> ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............./
> │ > 
> /////;;;;;;;;;;;;;;;;;;...........///;;;;;;;<<\.................................
> │ > │ 
> │ > 
> .....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............
> │ > 
> /////;;;;;;;;;;;;;;<<<<............///<<<<<<<<..................................
> │ > │ 
> │ > 
> .....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............
> │ > 
> //////<<<<<<<<<<<<<<<<<............//<<<<<<<....................................
> │ > │ 
> │ > 
> ...................../////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............
> │ > 
> /////<<<<<<<<<<<<<<<............................................................
> │ > │ 
> │ > 
> ...................../////////;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<............
> │ > 
> .//<<<<<<<<<<<<<<<..............................................................
> │ > │ 
> │ > 
> ......................////////;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<................
> │ > 
> ./<<<<<<<<......................................................................
> │ > │ 
> │ > 
> ....................../////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................////////<<<<<<<<<<<<<<<<<<<<<<<<<<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................./////<<<<<<<<<<<<<<<<<<<<<<<<<...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................///<<<<<<<<<<<<<<<<<<<<..................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................//<<<<<<<<<..............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................;;;;;;;;;...............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> ..;;;;;;;;;;;;;;;;;.............................................................
> │ > │ 
> │ > 
> ...................>////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
> │ > 
> .>/;;;;;;;;;;;;;;;;\............................................................
> │ > │ 
> │ > 
> .................../////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................
> │ > 
> >///;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> ..................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............>
> │ > 
> ////;;;;;;;;;;;;;;;;;..............>;;;;;;;;;...................................
> │ > │ 
> │ > 
> ...................//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............>/
> │ > 
> ////;;;;;;;;;;;;;;;;;;............>//;;;;;;;;\..................................
> │ > │ 
> │ > 
> ...................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............//
> │ > 
> /////;;;;;;;;;;;;;;;;;\...........///;;;;;;;;;..................................
> │ > │ 
> │ > 
> ...................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............/
> │ > 
> //////;;;;;;;;;;;;;;;;;...........////;;;<<<<<<.................................
> │ > │ 
> │ > 
> ....................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........../
> │ > 
> ///////;;;;;;;<<<<<<<<<<...........///<<<<<<<<..................................
> │ > │ 
> │ > 
> ....................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...........
> │ > 
> ///////<<<<<<<<<<<<<<<.............//<<<<<<<....................................
> │ > │ 
> │ > 
> .....................//////////;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<...........
> │ > 
> /////<<<<<<<<<<<<<<<............................................................
> │ > │ 
> │ > 
> .....................///////////;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<..............
> │ > 
> .///<<<<<<<<<<<<<<..............................................................
> │ > │ 
> │ > 
> .....................////////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<.................
> │ > 
> .//<<<<<<<<<....................................................................
> │ > │ 
> │ > 
> ......................//////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................../////////<<<<<<<<<<<<<<<<<<<<<<<<<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................///////<<<<<<<<<<<<<<<<<<<<<<<<<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................./////<<<<<<<<<<<<<<<<<<<<................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................///<<<<<<<<<<<<..........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................<<<<<...................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................;;;;;;;;;;..............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> ../;;;;;;;;;;;;;;;..............................................................
> │ > │ 
> │ > 
> ...................>/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................
> │ > 
> .>/;;;;;;;;;;;;;;;;.............................................................
> │ > │ 
> │ > 
> ..................>//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
> │ > 
> >///;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> ..................////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............>
> │ > 
> ////;;;;;;;;;;;;;;;;;..............>;;;;;;;;;...................................
> │ > │ 
> │ > 
> ................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............>/
> │ > 
> /////;;;;;;;;;;;;;;;;;............>//;;;;;;;;\..................................
> │ > │ 
> │ > 
> ................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...........//
> │ > 
> //////;;;;;;;;;;;;;;;;;..........////;;;;;;;;;\.................................
> │ > │ 
> │ > 
> .................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........//
> │ > 
> //////;;;;;;;;;;;;;;;;;;..........////;<<<<<<<<.................................
> │ > │ 
> │ > 
> .................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........../
> │ > 
> ///////;;<<<<<<<<<<<<<<<...........///<<<<<<<<..................................
> │ > │ 
> │ > 
> ..................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<...........
> │ > 
> ////////<<<<<<<<<<<<<<.............//<<<<<<<....................................
> │ > │ 
> │ > 
> ....................//////////////;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<.............
> │ > 
> //////<<<<<<<<<<<<<<............................................................
> │ > │ 
> │ > 
> ....................//////////////;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<...............
> │ > 
> .////<<<<<<<<<<<<<..............................................................
> │ > │ 
> │ > 
> ...................../////////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<..................
> │ > 
> ..<<<<<<<<<<<...................................................................
> │ > │ 
> │ > 
> .....................////////////<<<<<<<<<<<<<<<<<<<<<<<<<<.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................../////////<<<<<<<<<<<<<<<<<<<<<<<<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................///////<<<<<<<<<<<<<<<<<<<<<<<<<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................./////<<<<<<<<<<<<<<<<<<<<<<..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................////<<<<<<<<<<<<<<.......................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................../<<<<<<<<...............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................;;;;;;;;;...............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................>/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................>///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................>/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
> │ > 
> ..;;;;;;;;;;;;;;;;..............................................................
> │ > │ 
> │ > 
> ...................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
> │ > 
> .>//;;;;;;;;;;;;;;;.............................................................
> │ > │ 
> │ > 
> ..................>////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
> │ > 
> >///;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> ................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............>
> │ > 
> /////;;;;;;;;;;;;;;;;..............>;;;;;;;;\...................................
> │ > │ 
> │ > 
> .................>//////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...........>/
> │ > 
> //////;;;;;;;;;;;;;;;;............>//;;;;;;;;\..................................
> │ > │ 
> │ > 
> .................////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........///
> │ > 
> //////;;;;;;;;;;;;;;;;;..........>////;;;;;;;;;.................................
> │ > │ 
> │ > 
> ..................////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........//
> │ > 
> ///////;;;;;;;;;;;;<<<<<........../////<<<<<<<<.................................
> │ > │ 
> │ > 
> ................../////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<........./
> │ > 
> ////////;<<<<<<<<<<<<<<...........////<<<<<<<<..................................
> │ > │ 
> │ > 
> ...................////////////////;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<.........../
> │ > 
> ////////<<<<<<<<<<<<<<.............//<<<<<<<....................................
> │ > │ 
> │ > 
> .................../////////////////;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<..............
> │ > 
> //////<<<<<<<<<<<<<<............................................................
> │ > │ 
> │ > 
> ....................////////////////<<<<<<<<<<<<<<<<<<<<<<<<<<<.................
> │ > 
> .///<<<<<<<<<<<<<<..............................................................
> │ > │ 
> │ > 
> .....................//////////////<<<<<<<<<<<<<<<<<<<<<<<<<<...................
> │ > 
> ..//<<<<<<<<<<..................................................................
> │ > │ 
> │ > 
> ...................../////////////<<<<<<<<<<<<<<<<<<<<<<<<<.....................
> │ > 
> ..<.............................................................................
> │ > │ 
> │ > 
> ......................//////////<<<<<<<<<<<<<<<<<<<<<<<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................../////////<<<<<<<<<<<<<<<<<<<<<<<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................//////<<<<<<<<<<<<<<<<<<<<<<.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................////<<<<<<<<<<<<<<<.....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................//<<<<<<<<<<............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................<<<....................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................>;;;;;;;;................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;\...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................>////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................../////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
> │ > 
> ..;;;;;;;;;;;;;;;\..............................................................
> │ > │ 
> │ > 
> ..................>/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
> │ > 
> .>/;;;;;;;;;;;;;;;;.............................................................
> │ > │ 
> │ > 
> ..................///////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................
> │ > 
> >///;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> .................>////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............>
> │ > 
> /////;;;;;;;;;;;;;;;;..............>/;;;;;;;\...................................
> │ > │ 
> │ > 
> ................>//////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..........>/
> │ > 
> //////;;;;;;;;;;;;;;;;\...........>///;;;;;;;\..................................
> │ > │ 
> │ > 
> ................>///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........>//
> │ > 
> ///////;;;;;;;;;;;;;;;;;.........>////;;;;;;;;;.................................
> │ > │ 
> │ > 
> .................///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<.......///
> │ > 
> ////////;;;;;;<<<<<<<<<<.........//////<<<<<<<<.................................
> │ > │ 
> │ > 
> ................./////////////////////;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<.........//
> │ > 
> /////////<<<<<<<<<<<<<<...........////<<<<<<<<..................................
> │ > │ 
> │ > 
> ..................////////////////////;;;;<<<<<<<<<<<<<<<<<<<<<<<<<............/
> │ > 
> ////////<<<<<<<<<<<<<..............//<<<<<<<....................................
> │ > │ 
> │ > 
> ...................////////////////////<<<<<<<<<<<<<<<<<<<<<<<<<<...............
> │ > 
> ///////<<<<<<<<<<<<<............................................................
> │ > │ 
> │ > 
> ...................//////////////////<<<<<<<<<<<<<<<<<<<<<<<<<..................
> │ > 
> .////<<<<<<<<<<<<<..............................................................
> │ > │ 
> │ > 
> ....................////////////////<<<<<<<<<<<<<<<<<<<<<<<<....................
> │ > 
> ..//<<<<<<<<<<<.................................................................
> │ > │ 
> │ > 
> .....................//////////////<<<<<<<<<<<<<<<<<<<<<<<......................
> │ > 
> ...<<...........................................................................
> │ > │ 
> │ > 
> ......................////////////<<<<<<<<<<<<<<<<<<<<<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................//////////<<<<<<<<<<<<<<<<<<<<<<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................///////<<<<<<<<<<<<<<<<<<<<<<............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................../////<<<<<<<<<<<<<<<<...................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................////<<<<<<<<<<..........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................./<<<<<<................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................;;;;;;;..................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................>///;;;;;;;;;;;;;;;;;;;;;;;;;;;...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................>/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
> │ > 
> ../;;;;;;;;;;;;;;...............................................................
> │ > │ 
> │ > 
> ..................>/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................
> │ > 
> .>/;;;;;;;;;;;;;;;;.............................................................
> │ > │ 
> │ > 
> ..................////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............
> │ > 
> >///;;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> .................>//////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............>
> │ > 
> ///////;;;;;;;;;;;;;;..............>/;;;;;;;....................................
> │ > │ 
> │ > 
> ................>////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........>/
> │ > 
> ////////;;;;;;;;;;;;;;;...........>///;;;;;;;;..................................
> │ > │ 
> │ > 
> ................/////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<.......>//
> │ > 
> /////////;;;;;;;;;;;;;;<.........>////;;;;;;;;<.................................
> │ > │ 
> │ > 
> ...............////////////////////////;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<........///
> │ > 
> /////////;<<<<<<<<<<<<<<.........//////;<<<<<<<.................................
> │ > │ 
> │ > 
> ................////////////////////////;;;;<<<<<<<<<<<<<<<<<<<<<<<...........//
> │ > 
> //////////<<<<<<<<<<<<<.........../////<<<<<<<..................................
> │ > │ 
> │ > 
> .................////////////////////////<<<<<<<<<<<<<<<<<<<<<<<<<............./
> │ > 
> /////////<<<<<<<<<<<<..............//<<<<<<<....................................
> │ > │ 
> │ > 
> ..................//////////////////////<<<<<<<<<<<<<<<<<<<<<<<<................
> │ > 
> ////////<<<<<<<<<<<<............................................................
> │ > │ 
> │ > 
> ...................///////////////////<<<<<<<<<<<<<<<<<<<<<<<<..................
> │ > 
> ./////<<<<<<<<<<<<..............................................................
> │ > │ 
> │ > 
> ..................../////////////////<<<<<<<<<<<<<<<<<<<<<<<....................
> │ > 
> ..///<<<<<<<<<<.................................................................
> │ > │ 
> │ > 
> .....................///////////////<<<<<<<<<<<<<<<<<<<<<<......................
> │ > 
> .../<<<.........................................................................
> │ > │ 
> │ > 
> .....................//////////////<<<<<<<<<<<<<<<<<<<<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................///////////<<<<<<<<<<<<<<<<<<<<<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................./////////<<<<<<<<<<<<<<<<<<<<............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................///////<<<<<<<<<<<<<<<..................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................////<<<<<<<<<<<........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................//<<<<<<<.............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................<<...................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................;;;;.....................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................>/;;;;;;;;;;;;;;;;;;;;;;;;................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................>////;/;;;;;;;;;;;;;;;;;;;;;;;;;...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................>////////;;;;;;;;;;;;;;;;;;;;;;;;;;.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................>////////;/;;;;;;;;;;;;;;;;;;;;;;;;;;.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;\....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................///////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;...................
> │ > 
> ..;;;;;;;;;;;;;;\...............................................................
> │ > │ 
> │ > 
> ..................>////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................
> │ > 
> .>/;;;;;;;;;;;;;;;..............................................................
> │ > │ 
> │ > 
> .................>///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..............
> │ > 
> >///;/;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> ................./////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...........>
> │ > 
> //////;;;;;;;;;;;;;;;;.............>/;;;;;;;....................................
> │ > │ 
> │ > 
> ................>//////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\........>/
> │ > 
> ///////;/;;;;;;;;;;;;;;...........>///;;;;;;;;..................................
> │ > │ 
> │ > 
> ...............>////////////////////////;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<.......>//
> │ > 
> /////////;;;;;;;;;<<<<<<.........>////;;;;;;<<<.................................
> │ > │ 
> │ > 
> ...............>//////////////////////////;;;;<<<<<<<<<<<<<<<<<<<<<<.........///
> │ > 
> //////////;<<<<<<<<<<<<<.........///////<<<<<<<.................................
> │ > │ 
> │ > 
> ...............///////////////////////////<<<<<<<<<<<<<<<<<<<<<<<<...........///
> │ > 
> //////////<<<<<<<<<<<<............/////<<<<<<...................................
> │ > │ 
> │ > 
> ................//////////////////////////<<<<<<<<<<<<<<<<<<<<<<.............../
> │ > 
> /////////<<<<<<<<<<<<..............///<<<<<<....................................
> │ > │ 
> │ > 
> .................///////////////////////<<<<<<<<<<<<<<<<<<<<<<<.................
> │ > 
> ///////<<<<<<<<<<<<..................<..........................................
> │ > │ 
> │ > 
> ..................//////////////////////<<<<<<<<<<<<<<<<<<<<<...................
> │ > 
> .//////<<<<<<<<<<<..............................................................
> │ > │ 
> │ > 
> ...................//////////////////<<<<<<<<<<<<<<<<<<<<<<.....................
> │ > 
> ...//<<<<<<<<<<.................................................................
> │ > │ 
> │ > 
> ....................////////////////<<<<<<<<<<<<<<<<<<<<<<......................
> │ > 
> ..../<<<........................................................................
> │ > │ 
> │ > 
> .....................///////////////<<<<<<<<<<<<<<<<<<<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................../////////////<<<<<<<<<<<<<<<<<<<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................//////////<<<<<<<<<<<<<<<<<<<<...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................////////<<<<<<<<<<<<<<<.................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................////<<<<<<<<<<<<......................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................////<<<<<<<...........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................<<<<................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................;;.......................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................>;;;;;;;;;;;;;;;;;;;;.....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................///;;;;;;;;;;;;;;;;;;;;;;;;;..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................>/////;;;;;;;;;;;;;;;;;;;;;;;;;............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................>////////;;;;;;;;;;;;;;;;;;;;;;;;;\.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................>////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................>///////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................
> │ > 
> .>/;;;;;;;;;;;;;................................................................
> │ > │ 
> │ > 
> ..................///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;................
> │ > 
> >//;;;;;;;;;;;;;;;..............................................................
> │ > │ 
> │ > 
> .................>////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............
> │ > 
> >////;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> .................///////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........>
> │ > 
> ///////;;;;;;;;;;;;;;;.............>/;;;;;;;....................................
> │ > │ 
> │ > 
> ................>/////////////////////////;;;;;;;;;;;;;;;;;;<<<<<<<<<.........>/
> │ > 
> ////////;;;;;;;;;;;;;;;;..........>//;;;;;;;;;..................................
> │ > │ 
> │ > 
> ...............>/////////////////////////////;;;<<<<<<<<<<<<<<<<<<<<.........>//
> │ > 
> //////////;;;<<<<<<<<<<<.........>/////;;;<<<<<.................................
> │ > │ 
> │ > 
> ...............//////////////////////////////<<<<<<<<<<<<<<<<<<<<<<.........////
> │ > 
> ////////////<<<<<<<<<<<..........///////<<<<<<<.................................
> │ > │ 
> │ > 
> ..............>////////////////////////////<<<<<<<<<<<<<<<<<<<<<<............///
> │ > 
> ///////////<<<<<<<<<<<............/////<<<<<<...................................
> │ > │ 
> │ > 
> ...............////////////////////////////<<<<<<<<<<<<<<<<<<<<...............//
> │ > 
> //////////<<<<<<<<<<<..............///<<<<<<....................................
> │ > │ 
> │ > 
> ................/////////////////////////<<<<<<<<<<<<<<<<<<<<<..................
> │ > 
> ////////<<<<<<<<<<<..................<..........................................
> │ > │ 
> │ > 
> .................///////////////////////<<<<<<<<<<<<<<<<<<<<<...................
> │ > 
> .//////<<<<<<<<<<<..............................................................
> │ > │ 
> │ > 
> ...................////////////////////<<<<<<<<<<<<<<<<<<<<.....................
> │ > 
> ...///<<<<<<<<<<................................................................
> │ > │ 
> │ > 
> ....................//////////////////<<<<<<<<<<<<<<<<<<<<......................
> │ > 
> ..../<<<<.......................................................................
> │ > │ 
> │ > 
> .....................////////////////<<<<<<<<<<<<<<<<<<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................//////////////<<<<<<<<<<<<<<<<<<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................///////////<<<<<<<<<<<<<<<<<<...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................////////<<<<<<<<<<<<<<<................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................//////<<<<<<<<<<<.....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................////<<<<<<<<.........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................//<<<<..............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................../;;;;;;;;;;;;;;;;.........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................>///;;;;;;;;;;;;;;;;;;;;;;;................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................//////;;;;;;;;;;;;;;;;;;;;;;;;.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................../////////;;;;;;;;;;;;;;;;;;;;;;;;...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................>///////////;/;;;;;;;;;;;;;;;;;;;;;;;........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................///////////////;;;;;;;;;;;;;;;;;;;;;;;;;.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................>/////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> .>;;;;;;;;;;;;;.................................................................
> │ > │ 
> │ > 
> ..................////////////////////;/;;;;;;;;;;;;;;;;;;;;;;;;................
> │ > 
> >//;/;;;;;;;;;;;;...............................................................
> │ > │ 
> │ > 
> .................>//////////////////////;/;;;;;;;;;;;;;;;;;;;;;;;;;\............
> │ > 
> //////;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> ................>//////////////////////////;;;;;;;;;;;;;;;;;;;<<<<<<<..........>
> │ > 
> ///////;;;;;;;;;;;;;;;.............>/;;;;;;;....................................
> │ > │ 
> │ > 
> ................/////////////////////////////;;;;<<<<<<<<<<<<<<<<<<<..........>/
> │ > 
> ///////////;;;;;;;;;;;<<..........>//;;;;;;;;;..................................
> │ > │ 
> │ > 
> ...............>//////////////////////////////<<<<<<<<<<<<<<<<<<<<<..........>//
> │ > 
> ///////////;<<<<<<<<<<<<.........>/////;;<<<<<<.................................
> │ > │ 
> │ > 
> ...............///////////////////////////////<<<<<<<<<<<<<<<<<<<............///
> │ > 
> ////////////<<<<<<<<<<<..........///////<<<<<<..................................
> │ > │ 
> │ > 
> ..............>//////////////////////////////<<<<<<<<<<<<<<<<<<<............////
> │ > 
> ///////////<<<<<<<<<<<............/////<<<<<<...................................
> │ > │ 
> │ > 
> ..............//////////////////////////////<<<<<<<<<<<<<<<<<<<...............//
> │ > 
> //////////<<<<<<<<<<<...............///<<<<<....................................
> │ > │ 
> │ > 
> ...............///////////////////////////<<<<<<<<<<<<<<<<<<<...................
> │ > 
> /////////<<<<<<<<<<................../..........................................
> │ > │ 
> │ > 
> ................//////////////////////////<<<<<<<<<<<<<<<<<<....................
> │ > 
> .///////<<<<<<<<<<..............................................................
> │ > │ 
> │ > 
> ..................//////////////////////<<<<<<<<<<<<<<<<<<<.....................
> │ > 
> ...////<<<<<<<<<................................................................
> │ > │ 
> │ > 
> ....................///////////////////<<<<<<<<<<<<<<<<<<.......................
> │ > 
> ...../<<<.......................................................................
> │ > │ 
> │ > 
> ...................../////////////////<<<<<<<<<<<<<<<<<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................///////////////<<<<<<<<<<<<<<<<<<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................////////////<<<<<<<<<<<<<<<<<...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................//////////<<<<<<<<<<<<<<...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................///////<<<<<<<<<<<...................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................/////<<<<<<<........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................//<<<<............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................>;;;;;;;;;;;;..............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................///;;;;;;;;;;;;;;;;;;;;;;..................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................>//////;;;;;;;;;;;;;;;;;;;;;;...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................../////////;/;;;;;;;;;;;;;;;;;;;;;\...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................>/////////////;;;;;;;;;;;;;;;;;;;;;;\........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................////////////////;/;;;;;;;;;;;;;;;;;;;;;;.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................>///////////////////;/;;;;;;;;;;;;;;;;;;;;;;..................
> │ > 
> .;;;;;;;;;;;;;..................................................................
> │ > │ 
> │ > 
> .................>///////////////////////;;;;;;;;;;;;;;;;;;;;;;;;\..............
> │ > 
> >///;;;;;;;;;;;;;...............................................................
> │ > │ 
> │ > 
> .................//////////////////////////;;;;;;;;;;;;;;;;;;;;;;<<<............
> │ > 
> /////;;;;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> ................>/////////////////////////////;;;;<<<<<<<<<<<<<<<<<<...........>
> │ > 
> ////////;/;;;;;;;;;;;;;............>/;;;;;;;....................................
> │ > │ 
> │ > 
> ................////////////////////////////////<<<<<<<<<<<<<<<<<<<...........>/
> │ > 
> //////////;;;;;;;<<<<<<<..........>//;;;;;;;;;..................................
> │ > │ 
> │ > 
> ...............>///////////////////////////////<<<<<<<<<<<<<<<<<<<...........>//
> │ > 
> /////////////<<<<<<<<<<..........>///////<<<<<<.................................
> │ > │ 
> │ > 
> ...............///////////////////////////////<<<<<<<<<<<<<<<<<<.............///
> │ > 
> ////////////<<<<<<<<<<...........////////<<<<<..................................
> │ > │ 
> │ > 
> ..............>///////////////////////////////<<<<<<<<<<<<<<<<<.............>///
> │ > 
> ///////////<<<<<<<<<<............///////<<<<<...................................
> │ > │ 
> │ > 
> ..............//////////////////////////////<<<<<<<<<<<<<<<<<<...............///
> │ > 
> ///////////<<<<<<<<<................///<<<<<....................................
> │ > │ 
> │ > 
> ..............//////////////////////////////<<<<<<<<<<<<<<<<<................../
> │ > 
> //////////<<<<<<<<<.................../.........................................
> │ > │ 
> │ > 
> ...............////////////////////////////<<<<<<<<<<<<<<<<<....................
> │ > 
> ..///////<<<<<<<<<..............................................................
> │ > │ 
> │ > 
> ................./////////////////////////<<<<<<<<<<<<<<<<......................
> │ > 
> ....////<<<<<<<<................................................................
> │ > │ 
> │ > 
> ...................//////////////////////<<<<<<<<<<<<<<<<.......................
> │ > 
> ....../<<<......................................................................
> │ > │ 
> │ > 
> .....................//////////////////<<<<<<<<<<<<<<<<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................../////////////////<<<<<<<<<<<<<<<<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................//////////////<<<<<<<<<<<<<<<...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................///////////<<<<<<<<<<<<...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................////////<<<<<<<<<<..................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................//////<<<<<<<......................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............................///<<<<..........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................<..............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................../;;;;;;;;..................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................>//;;;;;;;;;;;;;;;;;;;;;....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................//////;;;;;;;;;;;;;;;;;;;;;.................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................>//////////;/;;;;;;;;;;;;;;;;;;;.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................//////////////;/;;;;;;;;;;;;;;;;;;;;.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................>////////////////////;;;;;;;;;;;;;;;;;;;;.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................//////////////////////;;;;;;;;;;;;;;;;;;;;;;;.................
> │ > 
> .;;;;;;;;;;;;\..................................................................
> │ > │ 
> │ > 
> .................>/////////////////////////;;;;;;;;;;;;;;;;;;;;;;;..............
> │ > 
> >/;;/;;;;;;;;;;;;...............................................................
> │ > │ 
> │ > 
> .................////////////////////////////////;;;<<<<<<<<<<<<<<<<............
> │ > 
> /////;;/;;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> ................>/////////////////////////////////<<<<<<<<<<<<<<<<<............>
> │ > 
> ////////;;;;;;;;;;;;;;;............;;;;;;;;;....................................
> │ > │ 
> │ > 
> ................/////////////////////////////////<<<<<<<<<<<<<<<<.............>/
> │ > 
> ////////////;;<<<<<<<<<<..........>////;;;;;;;;.................................
> │ > │ 
> │ > 
> ...............>////////////////////////////////<<<<<<<<<<<<<<<<..............//
> │ > 
> //////////////<<<<<<<<<...........//////;<<<<<<.................................
> │ > │ 
> │ > 
> ...............////////////////////////////////<<<<<<<<<<<<<<<<..............>//
> │ > 
> /////////////<<<<<<<<<...........>///////<<<<<..................................
> │ > │ 
> │ > 
> ..............>///////////////////////////////<<<<<<<<<<<<<<<<..............>///
> │ > 
> ////////////<<<<<<<<<............///////<<<<<...................................
> │ > │ 
> │ > 
> ..............///////////////////////////////<<<<<<<<<<<<<<<<................///
> │ > 
> ///////////<<<<<<<<<................///<<<<<....................................
> │ > │ 
> │ > 
> .............>///////////////////////////////<<<<<<<<<<<<<<<.................../
> │ > 
> //////////<<<<<<<<<.............................................................
> │ > │ 
> │ > 
> ..............//////////////////////////////<<<<<<<<<<<<<<<.....................
> │ > 
> ..///////<<<<<<<<<..............................................................
> │ > │ 
> │ > 
> ................///////////////////////////<<<<<<<<<<<<<<<......................
> │ > 
> ..../////<<<<<<<................................................................
> │ > │ 
> │ > 
> ..................////////////////////////<<<<<<<<<<<<<<<.......................
> │ > 
> ......./<<......................................................................
> │ > │ 
> │ > 
> ..................../////////////////////<<<<<<<<<<<<<<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................//////////////////<<<<<<<<<<<<<<<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................///////////////<<<<<<<<<<<<<<...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................///////////<<<<<<<<<<<<..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................//////////<<<<<<<<<.................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................///////<<<<<<.....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................////<<<<........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................................<............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................;;;;;......................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................>/;/;;;;;;;;;;;;;;..........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................//////;/;;;;;;;;;;;;;;;;;...................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................>//////////;;/;;;;;;;;;;;;;;;;;..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................////////////////;;;;;;;;;;;;;;;;;;;;.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................>///////////////////////;;;;;;;;;;;;;;;;;.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................../////////////////////////;;;;;;;;;;;;;;;;;;;;;................
> │ > 
> .;;;;;;;;;;;....................................................................
> │ > │ 
> │ > 
> .................>///////////////////////////////;;;;;<<<<<<<<<<<<<.............
> │ > 
> >//;/;;;;;;;;;;;................................................................
> │ > │ 
> │ > 
> .................//////////////////////////////////<<<<<<<<<<<<<<<.............>
> │ > 
> //////;//;;;;;;;;;;;............................................................
> │ > │ 
> │ > 
> ................>/////////////////////////////////<<<<<<<<<<<<<<<..............>
> │ > 
> /////////;/;;;;;;;;;<<<<...........;;;;;;;;.....................................
> │ > │ 
> │ > 
> ................//////////////////////////////////<<<<<<<<<<<<<<..............>/
> │ > 
> //////////////<<<<<<<<<...........>///;;;;;;;<<.................................
> │ > │ 
> │ > 
> ...............>/////////////////////////////////<<<<<<<<<<<<<<<..............//
> │ > 
> //////////////<<<<<<<<<...........///////;<<<<<.................................
> │ > │ 
> │ > 
> .............../////////////////////////////////<<<<<<<<<<<<<<<..............>//
> │ > 
> /////////////<<<<<<<<<...........>///////<<<<<..................................
> │ > │ 
> │ > 
> ..............>////////////////////////////////<<<<<<<<<<<<<<<..............>///
> │ > 
> ////////////<<<<<<<<<............///////<<<<<...................................
> │ > │ 
> │ > 
> ..............>///////////////////////////////<<<<<<<<<<<<<<<...............////
> │ > 
> ////////////<<<<<<<<................////<<<<<...................................
> │ > │ 
> │ > 
> ..............////////////////////////////////<<<<<<<<<<<<<<.................../
> │ > 
> ///////////<<<<<<<<.............................................................
> │ > │ 
> │ > 
> .............>///////////////////////////////<<<<<<<<<<<<<<.....................
> │ > 
> ..////////<<<<<<<<..............................................................
> │ > │ 
> │ > 
> .............../////////////////////////////<<<<<<<<<<<<<<......................
> │ > 
> .....////<<<<<<<................................................................
> │ > │ 
> │ > 
> .................//////////////////////////<<<<<<<<<<<<<<.......................
> │ > 
> .......//<<.....................................................................
> │ > │ 
> │ > 
> ....................///////////////////////<<<<<<<<<<<<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................////////////////////<<<<<<<<<<<<<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................../////////////////<<<<<<<<<<<<...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................../////////////<<<<<<<<<<..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................//////////<<<<<<<<.................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................///////<<<<<....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................////<<<.......................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................................<..........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;..........................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................//;/;;;;;;;;;...............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................>//////;;;/;;;;;;;;;;;;;.....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................////////////;;;;;;;;;;;;;;;;;................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................>/////////////////////;;;;;;;;;;;;;;..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................>///////////////////////;;;/;;;;;;;;;;;;;;....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................../////////////////////////////;;/;;;;;;;;;;;;;;;...............
> │ > 
> ;;;;;;;;;;;.....................................................................
> │ > │ 
> │ > 
> .................>//////////////////////////////////<<<<<<<<<<<<<<..............
> │ > 
> >/;/;;;;;;;;;;;;................................................................
> │ > │ 
> │ > 
> .................//////////////////////////////////<<<<<<<<<<<<<<..............>
> │ > 
> ///////;;/;;;;;;;;;;;...........................................................
> │ > │ 
> │ > 
> ................>//////////////////////////////////<<<<<<<<<<<<<...............>
> │ > 
> //////////;;/;;;<<<<<<<............/;;;;;;;\....................................
> │ > │ 
> │ > 
> ................//////////////////////////////////<<<<<<<<<<<<<...............>/
> │ > 
> ///////////////<<<<<<<<...........>//;;/;;;;<<<.................................
> │ > │ 
> │ > 
> ...............>//////////////////////////////////<<<<<<<<<<<<................//
> │ > 
> //////////////<<<<<<<<............>///////<<<<..................................
> │ > │ 
> │ > 
> ...............>/////////////////////////////////<<<<<<<<<<<<<...............>//
> │ > 
> /////////////<<<<<<<<............>///////<<<<<..................................
> │ > │ 
> │ > 
> .............../////////////////////////////////<<<<<<<<<<<<<................>//
> │ > 
> /////////////<<<<<<<<............////////<<<<...................................
> │ > │ 
> │ > 
> ..............>////////////////////////////////<<<<<<<<<<<<<.................///
> │ > 
> ////////////<<<<<<<<................////<<<<<...................................
> │ > │ 
> │ > 
> ............../////////////////////////////////<<<<<<<<<<<<...................//
> │ > 
> ///////////<<<<<<<<.............................................................
> │ > │ 
> │ > 
> .............>////////////////////////////////<<<<<<<<<<<<<.....................
> │ > 
> ../////////<<<<<<<<.............................................................
> │ > │ 
> │ > 
> .............////////////////////////////////<<<<<<<<<<<<<......................
> │ > 
> ...../////<<<<<<................................................................
> │ > │ 
> │ > 
> ................/////////////////////////////<<<<<<<<<<<<.......................
> │ > 
> ........./<.....................................................................
> │ > │ 
> │ > 
> .................../////////////////////////<<<<<<<<<<<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................../////////////////////<<<<<<<<<<<<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................///////////////////<<<<<<<<<<...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................//////////////<<<<<<<<<.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............................//////////<<<<<<<................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................///////<<<<<..................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................////<<<.....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................................./........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................;/;;;;;;;;...................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................//////;///;;;;;;;;;;.........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................>/////////////;;;;;;;;;;;;;;;.................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................>////////////////////;//;;;;;;;;;;;;..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................../////////////////////////////;/;;;;;;;;;;;;...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................>///////////////////////////////////<<<<<<<<<<<<...............
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................>//////////////////////////////////<<<<<<<<<<<<................
> │ > 
> /;;/;;;;;;;;;;;.................................................................
> │ > │ 
> │ > 
> .................///////////////////////////////////<<<<<<<<<<<<...............>
> │ > 
> ///////;;;;;;;;;;;;;;...........................................................
> │ > │ 
> │ > 
> ................>//////////////////////////////////<<<<<<<<<<<<................>
> │ > 
> /////////////;;<<<<<<<<............;;;;;;;;.....................................
> │ > │ 
> │ > 
> ................>//////////////////////////////////<<<<<<<<<<<................>/
> │ > 
> ///////////////<<<<<<<............>//;;/;;<<<<<.................................
> │ > │ 
> │ > 
> ................//////////////////////////////////<<<<<<<<<<<<................>/
> │ > 
> ///////////////<<<<<<<............>///////<<<<..................................
> │ > │ 
> │ > 
> ...............>//////////////////////////////////<<<<<<<<<<<.................//
> │ > 
> //////////////<<<<<<<............>///////<<<<<..................................
> │ > │ 
> │ > 
> ...............//////////////////////////////////<<<<<<<<<<<.................>//
> │ > 
> /////////////<<<<<<<.............>///////<<<<...................................
> │ > │ 
> │ > 
> ...............//////////////////////////////////<<<<<<<<<<<.................///
> │ > 
> /////////////<<<<<<<................////<<<<<...................................
> │ > │ 
> │ > 
> ..............>/////////////////////////////////<<<<<<<<<<<..................///
> │ > 
> ////////////<<<<<<<.............................................................
> │ > │ 
> │ > 
> ............../////////////////////////////////<<<<<<<<<<<......................
> │ > 
> ..//////////<<<<<<<.............................................................
> │ > │ 
> │ > 
> .............//////////////////////////////////<<<<<<<<<<<......................
> │ > 
> ....../////<<<<<................................................................
> │ > │ 
> │ > 
> ..............////////////////////////////////<<<<<<<<<<<.......................
> │ > 
> ........../<....................................................................
> │ > │ 
> │ > 
> ................./////////////////////////////<<<<<<<<<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................////////////////////////<<<<<<<<<<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................////////////////////<<<<<<<<<<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................////////////////<<<<<<<.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................///////////<<<<<<...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................................////////<<<<.................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................................///<<....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................;;;;;........................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................>//////;;;;;;;;;;.............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................>//////////////;;;;/;;;;;;....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................//////////////////////////;;;;;;;;;;..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................//////////////////////////////////;/<<<<<<<<<.................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................>///////////////////////////////////<<<<<<<<<<.................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................////////////////////////////////////<<<<<<<<<<.................
> │ > 
> ;/;;;;;;;;;;;;;.................................................................
> │ > │ 
> │ > 
> .................///////////////////////////////////<<<<<<<<<<.................>
> │ > 
> ///////;;;;;;;;;;;;;;<..........................................................
> │ > │ 
> │ > 
> ................>///////////////////////////////////<<<<<<<<<<................./
> │ > 
> //////////////;<<<<<<<.............;;;;;;;;.....................................
> │ > │ 
> │ > 
> ................>///////////////////////////////////<<<<<<<<<................../
> │ > 
> ///////////////<<<<<<<............>//;;//;<<<<..................................
> │ > │ 
> │ > 
> ................///////////////////////////////////<<<<<<<<<<.................>/
> │ > 
> ///////////////<<<<<<.............>///////<<<<..................................
> │ > │ 
> │ > 
> ...............>//////////////////////////////////<<<<<<<<<<..................//
> │ > 
> //////////////<<<<<<<.............////////<<<<..................................
> │ > │ 
> │ > 
> ...............>//////////////////////////////////<<<<<<<<<<..................//
> │ > 
> ///////////////<<<<<.............>///////<<<<...................................
> │ > │ 
> │ > 
> ...............///////////////////////////////////<<<<<<<<<..................>//
> │ > 
> /////////////<<<<<<<................/////<<<<...................................
> │ > │ 
> │ > 
> ...............//////////////////////////////////<<<<<<<<<<..................///
> │ > 
> /////////////<<<<<<.............................................................
> │ > │ 
> │ > 
> ..............>//////////////////////////////////<<<<<<<<<......................
> │ > 
> .///////////<<<<<<<.............................................................
> │ > │ 
> │ > 
> ..............>/////////////////////////////////<<<<<<<<<<......................
> │ > 
> ......./////<<<<................................................................
> │ > │ 
> │ > 
> ..............//////////////////////////////////<<<<<<<<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............////////////////////////////////<<<<<<<<<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................///////////////////////////<<<<<<<<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................//////////////////////<<<<<<<<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................./////////////////<<<<<<............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................////////////<<<<<..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................................///////<<<................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................................//<<..................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................;;;...........................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................//;;;;;;/;;;;;;;;.............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................////////////////;;//;;;;;;;;;;;...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................>///////////////////////////////;;;/;<<<<<.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................>////////////////////////////////////<<<<<<<<..................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<<<<<<..................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................////////////////////////////////////<<<<<<<<<.................>
> │ > 
> /;;;;;;;;;;;;;..................................................................
> │ > │ 
> │ > 
> .................////////////////////////////////////<<<<<<<<..................>
> │ > 
> ///////;;;;;;;;/<<<<<<..........................................................
> │ > │ 
> │ > 
> ................>///////////////////////////////////<<<<<<<<<................../
> │ > 
> ////////////////<<<<<<.............;;;;;;;;.....................................
> │ > │ 
> │ > 
> ................>///////////////////////////////////<<<<<<<<.................../
> │ > 
> ///////////////<<<<<<.............>//;;;//<<<<..................................
> │ > │ 
> │ > 
> ................////////////////////////////////////<<<<<<<<..................>/
> │ > 
> ///////////////<<<<<<.............>///////<<<<..................................
> │ > │ 
> │ > 
> ................///////////////////////////////////<<<<<<<<<..................>/
> │ > 
> //////////////<<<<<<..............////////<<<...................................
> │ > │ 
> │ > 
> ................///////////////////////////////////<<<<<<<<...................//
> │ > 
> //////////////<<<<<<..............///////<<<<...................................
> │ > │ 
> │ > 
> ...............>///////////////////////////////////<<<<<<<<...................//
> │ > 
> //////////////<<<<<<................/////<<<<...................................
> │ > │ 
> │ > 
> ...............>//////////////////////////////////<<<<<<<<...................>//
> │ > 
> /////////////<<<<<<.............................................................
> │ > │ 
> │ > 
> ...............///////////////////////////////////<<<<<<<<......................
> │ > 
> .////////////<<<<<<.............................................................
> │ > │ 
> │ > 
> ...............///////////////////////////////////<<<<<<<<......................
> │ > 
> ......../////<<<................................................................
> │ > │ 
> │ > 
> ..............>//////////////////////////////////<<<<<<<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............>//////////////////////////////////<<<<<<<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................//////////////////////////////<<<<<<<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................./////////////////////////<<<<<<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................///////////////////<<<<............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................................////////////<<<<.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................................//////<<...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................................../.................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................>;;;;;;;;;;;;/;;;;;;;;.........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................>////////////////////;;/;;/;;/;;;;;;;;<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................>////////////////////////////////////<<<<<<....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<<<<<...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<<<<<...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<<<<...................;
> │ > 
> ;;;;;/;;;;;;;...................................................................
> │ > │ 
> │ > 
> .................////////////////////////////////////<<<<<<<...................>
> │ > 
> ////////;;;///;;<<<<<...........................................................
> │ > │ 
> │ > 
> ................>////////////////////////////////////<<<<<<<.................../
> │ > 
> ////////////////<<<<<..............;;;;;;;;.....................................
> │ > │ 
> │ > 
> ................>////////////////////////////////////<<<<<<..................../
> │ > 
> ///////////////<<<<<<.............>//;;;;;<<<<..................................
> │ > │ 
> │ > 
> ................>////////////////////////////////////<<<<<<..................../
> │ > 
> ///////////////<<<<<..............>///////<<<<..................................
> │ > │ 
> │ > 
> ................>///////////////////////////////////<<<<<<<...................>/
> │ > 
> ///////////////<<<<<..............>///////<<<...................................
> │ > │ 
> │ > 
> ................////////////////////////////////////<<<<<<<...................>/
> │ > 
> ///////////////<<<<<..............////////<<<...................................
> │ > │ 
> │ > 
> ................////////////////////////////////////<<<<<<....................>/
> │ > 
> ///////////////<<<<<...............///////<<=...................................
> │ > │ 
> │ > 
> ................////////////////////////////////////<<<<<<....................//
> │ > 
> //////////////<<<<<.............................................................
> │ > │ 
> │ > 
> ...............>///////////////////////////////////<<<<<<<...................../
> │ > 
> //////////////<<<<<.............................................................
> │ > │ 
> │ > 
> ...............>///////////////////////////////////<<<<<<.......................
> │ > 
> ........./////<<................................................................
> │ > │ 
> │ > 
> ...............>///////////////////////////////////<<<<<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............>///////////////////////////////////<<<<<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............///////////////////////////////////<<<<<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................////////////////////////////<<<<<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................////////////////////<<<...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................................../////////////<<............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................................////<<.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................//////////////////////////////////////<<<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................//////////////////////////////////////<<<<.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<<<.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<<<.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<<<....................;
> │ > 
> ;/;;;;;;;;;;....................................................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<<<..................../
> │ > 
> ////////////;;;;<<<<............................................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<<<..................../
> │ > 
> ////////////////<<<<...............;;;;;;;;.....................................
> │ > │ 
> │ > 
> ................>/////////////////////////////////////<<<<<..................../
> │ > 
> ////////////////<<<<..............>//;;;;;<<<<..................................
> │ > │ 
> │ > 
> ................>/////////////////////////////////////<<<<...................../
> │ > 
> ////////////////<<<<..............>///////<<<...................................
> │ > │ 
> │ > 
> ................>////////////////////////////////////<<<<<...................../
> │ > 
> ///////////////<<<<<..............>///////<<<...................................
> │ > │ 
> │ > 
> ................>////////////////////////////////////<<<<<...................../
> │ > 
> ///////////////<<<<<..............>///////<<<...................................
> │ > │ 
> │ > 
> ................>////////////////////////////////////<<<<<...................../
> │ > 
> ///////////////<<<<<..............////////<<....................................
> │ > │ 
> │ > 
> ................>////////////////////////////////////<<<<<....................>/
> │ > 
> ///////////////<<<<.............................................................
> │ > │ 
> │ > 
> ................>////////////////////////////////////<<<<<....................//
> │ > 
> ///////////////<<<<.............................................................
> │ > │ 
> │ > 
> ................>////////////////////////////////////<<<<.......................
> │ > 
> ............///<................................................................
> │ > │ 
> │ > 
> ................>////////////////////////////////////<<<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................////////////////////////////////////<<<<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................////////////////////////////////////<<<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................///////////////////////////////////<<<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................///////////////////////<<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................................///////////<...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................;//////////////////////////////////////<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................>//////////////////////////////////////<<<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................>//////////////////////////////////////<<<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................>//////////////////////////////////////<<<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................>//////////////////////////////////////<<<.....................;
> │ > 
> ;;;;;;;;;;;;;;;;<<<.............................................................
> │ > │ 
> │ > 
> .................//////////////////////////////////////<<<...................../
> │ > 
> ////////////////<<<<............................................................
> │ > │ 
> │ > 
> .................//////////////////////////////////////<<<...................../
> │ > 
> ////////////////<<<<...............;;;;;;;;;<...................................
> │ > │ 
> │ > 
> .................//////////////////////////////////////<<<...................../
> │ > 
> ////////////////<<<<..............;;;;;;;;;<<...................................
> │ > │ 
> │ > 
> .................//////////////////////////////////////<<<...................../
> │ > 
> ////////////////<<<<..............>////////<<...................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<<...................../
> │ > 
> ////////////////<<<<..............>////////<<...................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<<...................../
> │ > 
> ////////////////<<<<..............>////////<<...................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<<...................../
> │ > 
> ////////////////<<<<..............////////<<....................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<<...................../
> │ > 
> ////////////////<<<<............................................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<<.....................>
> │ > 
> ////////////////<<..............................................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////<<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................>////////////////////////////////////<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................////////////////////////////<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................//////<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................................;;;;;;;;;<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................;;;;;;;;;;;;;;;;;;;;;/////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................;;;;;;;;;//////////////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................///////////////////////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................>//////////////////////////////////////<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................>//////////////////////////////////////<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................>//////////////////////////////////////<<.......................
> │ > 
> ..;;;;;;;;;;;;;;<<<.............................................................
> │ > │ 
> │ > 
> ................>//////////////////////////////////////<<......................;
> │ > 
> ;;//////////////<<<.............................................................
> │ > │ 
> │ > 
> .................//////////////////////////////////////<<....................../
> │ > 
> ////////////////<<<....................;;;;<<...................................
> │ > │ 
> │ > 
> .................//////////////////////////////////////<<....................../
> │ > 
> ////////////////<<<...............;;;;;////<<...................................
> │ > │ 
> │ > 
> .................//////////////////////////////////////<<......................>
> │ > 
> ////////////////<<<...............>////////<<...................................
> │ > │ 
> │ > 
> .................>//////////////////////////////////////<......................>
> │ > 
> ////////////////<<<................////////<<...................................
> │ > │ 
> │ > 
> .................>//////////////////////////////////////<......................>
> │ > 
> /////////////////<<<...............////////<<...................................
> │ > │ 
> │ > 
> .................>//////////////////////////////////////<......................>
> │ > 
> /////////////////<<<.............../////////....................................
> │ > │ 
> │ > 
> .................>//////////////////////////////////////<.......................
> │ > 
> /////////////////<<<............................................................
> │ > │ 
> │ > 
> ..................//////////////////////////////////////<.......................
> │ > 
> /////////////////<<.............................................................
> │ > │ 
> │ > 
> ..................//////////////////////////////////////<<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................//////////////////////////////////////<<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................//////////////////////////////////////<<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................>/////////////////////////////////////<<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................>/////////////////////////////////////<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................//////////////////////////////////////<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................................................<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................................;;;;;;;;;;;;;<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................;;;;;;;;;;;;;;//////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............;;;;;;;;;;;;;///////////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............>///////////////////////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................///////////////////////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................///////////////////////////////////////<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................>///////////////////////////////////////<.......................
> │ > 
> ....;;;;;;;;;;;;<<..............................................................
> │ > │ 
> │ > 
> ................>///////////////////////////////////////<......................;
> │ > 
> ;;;;////////////<<..............................................................
> │ > │ 
> │ > 
> .................///////////////////////////////////////<....................../
> │ > 
> ////////////////<<<....................;;;<<....................................
> │ > │ 
> │ > 
> .................///////////////////////////////////////<....................../
> │ > 
> /////////////////<<...............;;;;;////<<...................................
> │ > │ 
> │ > 
> .................>//////////////////////////////////////<<.....................>
> │ > 
> /////////////////<<...............>////////<<...................................
> │ > │ 
> │ > 
> .................>///////////////////////////////////////<.....................>
> │ > 
> /////////////////<<................////////<<...................................
> │ > │ 
> │ > 
> ..................///////////////////////////////////////<......................
> │ > 
> /////////////////<<................////////<<...................................
> │ > │ 
> │ > 
> ..................///////////////////////////////////////<......................
> │ > 
> /////////////////<<<...............>////////....................................
> │ > │ 
> │ > 
> ..................>//////////////////////////////////////<......................
> │ > 
> >/////////////////<<............................................................
> │ > │ 
> │ > 
> ..................>///////////////////////////////////////<.....................
> │ > 
> >/////////////////<.............................................................
> │ > │ 
> │ > 
> ...................///////////////////////////////////////<.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................///////////////////////////////////////<.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................>//////////////////////////////////////<.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................>//////////////////////////////////////<.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................>///////////////////////////////////////<....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................////////////////////////////................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................................;;;;;<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................................;;;;;;;;;;/////<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................;;;;;;;;;;///////////////<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................;;;;;;;;;;//////////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............;;;;////////////////////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............>///////////////////////////////////////<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............>////////////////////////////////////////<.......................
> │ > 
> ................<...............................................................
> │ > │ 
> │ > 
> ................////////////////////////////////////////<.......................
> │ > 
> .....;;;;;;;;;;;<...............................................................
> │ > │ 
> │ > 
> ................>///////////////////////////////////////<<....................;;
> │ > 
> ;;;;;///////////<<..............................................................
> │ > │ 
> │ > 
> .................////////////////////////////////////////<...................../
> │ > 
> ////////////////<<.....................;;;<<....................................
> │ > │ 
> │ > 
> .................>///////////////////////////////////////<...................../
> │ > 
> /////////////////<................;;;;;////<....................................
> │ > │ 
> │ > 
> .................>///////////////////////////////////////<<....................>
> │ > 
> /////////////////<<...............>////////<<...................................
> │ > │ 
> │ > 
> ..................////////////////////////////////////////<.....................
> │ > 
> /////////////////<<................////////<<...................................
> │ > │ 
> │ > 
> ..................>///////////////////////////////////////<.....................
> │ > 
> //////////////////<................>////////<...................................
> │ > │ 
> │ > 
> ..................>///////////////////////////////////////<<....................
> │ > 
> >/////////////////<<................//////......................................
> │ > │ 
> │ > 
> ...................////////////////////////////////////////<....................
> │ > 
> .//////////////////<............................................................
> │ > │ 
> │ > 
> ...................>///////////////////////////////////////<....................
> │ > 
> .>///////////////...............................................................
> │ > │ 
> │ > 
> ...................>///////////////////////////////////////<<...................
> │ > 
> .///............................................................................
> │ > │ 
> │ > 
> ....................////////////////////////////////////////<...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................>///////////////////////////////////////<...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................>///////////////////////////////////////<<..................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................../////////////////////////////////////......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................>/////////////////////.....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................///////...................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................................................<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................................;;;;;;;<<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................................;;;;;;;;;////////<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................;;;;;;;;;////////////////<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;//////////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............;;;;;;;/////////////////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............../////////////////////////////////////////<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............>////////////////////////////////////////<.......................
> │ > 
> .............;;;<...............................................................
> │ > │ 
> │ > 
> ................/////////////////////////////////////////<......................
> │ > 
> .....;;;;;;;;///<...............................................................
> │ > │ 
> │ > 
> ................>////////////////////////////////////////<....................;;
> │ > 
> ;;;;;///////////<<..............................................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////////<...................>/
> │ > 
> /////////////////<.....................;;;<<....................................
> │ > │ 
> │ > 
> .................>////////////////////////////////////////<..................../
> │ > 
> /////////////////<<...............;;;;;////<....................................
> │ > │ 
> │ > 
> ................../////////////////////////////////////////<...................>
> │ > 
> //////////////////<...............>////////<<...................................
> │ > │ 
> │ > 
> ..................>////////////////////////////////////////<....................
> │ > 
> //////////////////<................/////////<...................................
> │ > │ 
> │ > 
> ..................>////////////////////////////////////////<<...................
> │ > 
> >//////////////////<...............>////////<...................................
> │ > │ 
> │ > 
> ...................>////////////////////////////////////////<...................
> │ > 
> .//////////////////<................/////=......................................
> │ > │ 
> │ > 
> ...................>////////////////////////////////////////<<..................
> │ > 
> .>/////////////////<<...........................................................
> │ > │ 
> │ > 
> ....................>////////////////////////////////////////<..................
> │ > 
> ../////////////.................................................................
> │ > │ 
> │ > 
> ....................>////////////////////////////////////////<<.................
> │ > 
> ..>///..........................................................................
> │ > │ 
> │ > 
> ...................../////////////////////////////////////////<.................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................>////////////////////////////////////////<.................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................///////////////////////////////////////...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................>/////////////////////////////............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................////////////////////.....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................>//////////..............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................................;;;<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................................;;;;;;///<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................................;;;;;;;/////////<<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................;;;;;;;/////////////////<<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................;;;;;;;/////////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................;;;;;;;///////////////////////////////<<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............;;;///////////////////////////////////////<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............//////////////////////////////////////////<......................
> │ > 
> ............;;;<................................................................
> │ > │ 
> │ > 
> ...............>/////////////////////////////////////////<<.....................
> │ > 
> .....;;;;;;;////<...............................................................
> │ > │ 
> │ > 
> ................>/////////////////////////////////////////<....................;
> │ > 
> ;;;;;///////////<<..............................................................
> │ > │ 
> │ > 
> ................./////////////////////////////////////////<<..................;/
> │ > 
> /////////////////<.....................;;;<<....................................
> │ > │ 
> │ > 
> .................>/////////////////////////////////////////<.................../
> │ > 
> /////////////////<<...............;;;;;////<....................................
> │ > │ 
> │ > 
> ..................//////////////////////////////////////////<...................
> │ > 
> //////////////////<<..............>////////<<...................................
> │ > │ 
> │ > 
> ..................>/////////////////////////////////////////<<..................
> │ > 
> >//////////////////<...............>////////<...................................
> │ > │ 
> │ > 
> ...................>/////////////////////////////////////////<..................
> │ > 
> .//////////////////<<...............////////<<..................................
> │ > │ 
> │ > 
> ..................../////////////////////////////////////////<<.................
> │ > 
> .>//////////////////<...............>////.......................................
> │ > │ 
> │ > 
> ....................>/////////////////////////////////////////<.................
> │ > 
> ..///////////////////...........................................................
> │ > │ 
> │ > 
> ...................../////////////////////////////////////////<<................
> │ > 
> ..>////////////.................................................................
> │ > │ 
> │ > 
> .....................>/////////////////////////////////////////<................
> │ > 
> ...>////........................................................................
> │ > │ 
> │ > 
> ......................>/////////////////////////////////////////<...............
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................./////////////////////////////////////////................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................>/////////////////////////////////.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................//////////////////////////..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................>//////////////////.....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................>//////////............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................////..................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................;;;/;...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................................;;;;/;//////..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................;;;;///////////////.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............................;;/;;///////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................;;;;/;/////////////////////////........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................;;;;//;///////////////////////////////.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............;;/;;//////////////////////////////////////<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............>>//////////////////////////////////////////......................
> │ > 
> ...........;;;//................................................................
> │ > │ 
> │ > 
> ...............>>//////////////////////////////////////////.....................
> │ > 
> ......;;/////////...............................................................
> │ > │ 
> │ > 
> ................>///////////////////////////////////////////....................
> │ > 
> ;;;///////////////..............................................................
> │ > │ 
> │ > 
> .................>//////////////////////////////////////////<.................;>
> │ > 
> //////////////////<...................;;///<....................................
> │ > │ 
> │ > 
> .................>>//////////////////////////////////////////..................>
> │ > 
> ///////////////////...............;;;;//////....................................
> │ > │ 
> │ > 
> ..................>>//////////////////////////////////////////..................
> │ > 
> >///////////////////...............>/////////...................................
> │ > │ 
> │ > 
> ...................>//////////////////////////////////////////<.................
> │ > 
> >>///////////////////..............>>////////<..................................
> │ > │ 
> │ > 
> ....................>//////////////////////////////////////////.................
> │ > 
> .>>//////////////////...............>>////////..................................
> │ > │ 
> │ > 
> ....................>>//////////////////////////////////////////................
> │ > 
> ..>///////////////////...............>///.......................................
> │ > │ 
> │ > 
> .....................>///////////////////////////////////////////...............
> │ > 
> ...>////////////////............................................................
> │ > │ 
> │ > 
> ......................>//////////////////////////////////////////<..............
> │ > 
> ...>>/////////..................................................................
> │ > │ 
> │ > 
> ......................>>//////////////////////////////////////////..............
> │ > 
> ....>////.......................................................................
> │ > │ 
> │ > 
> .......................>>/////////////////////////////////////////..............
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................>>//////////////////////////////////....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................>////////////////////////////..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................>>//////////////////////...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................>>////////////////....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................>///////////.........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................>////...............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................................................;............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................................;/;;///...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................................;;;//////////..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................;;;///////////////<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............................;;;/;///////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................;;;/;/////////////////////////<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;/////////////////////////////////.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................;;;//////////////////////////////////////......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............;>///////////////////////////////////////////.....................
> │ > 
> ...........;;;;/................................................................
> │ > │ 
> │ > 
> ...............>///////////////////////////////////////////<....................
> │ > 
> ......;;/////////...............................................................
> │ > │ 
> │ > 
> ................>///////////////////////////////////////////<...................
> │ > 
> .;;;//////////////..............................................................
> │ > │ 
> │ > 
> .................>///////////////////////////////////////////<................;>
> │ > 
> ///////////////////...................;;///<....................................
> │ > │ 
> │ > 
> .................>>///////////////////////////////////////////.................>
> │ > 
> >///////////////////..............;;;;//////....................................
> │ > │ 
> │ > 
> ..................>>///////////////////////////////////////////.................
> │ > 
> >///////////////////<.............>>/////////...................................
> │ > │ 
> │ > 
> ...................>>///////////////////////////////////////////................
> │ > 
> .>///////////////////<.............>>/////////..................................
> │ > │ 
> │ > 
> ....................>>///////////////////////////////////////////...............
> │ > 
> .>>///////////////////..............>>////////..................................
> │ > │ 
> │ > 
> .....................>///////////////////////////////////////////<..............
> │ > 
> ..>>///////////////////..............>////......................................
> │ > │ 
> │ > 
> ......................>///////////////////////////////////////////<.............
> │ > 
> ...>>//////////////.............................................................
> │ > │ 
> │ > 
> .......................>///////////////////////////////////////////.............
> │ > 
> ....>>////////..................................................................
> │ > │ 
> │ > 
> ........................>//////////////////////////////////////////.............
> │ > 
> .....>////......................................................................
> │ > │ 
> │ > 
> ........................>>/////////////////////////////////////.................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................>>///////////////////////////////......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................>>//////////////////////////..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................>>////////////////////...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................>>///////////////...................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................>>/////////........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................>/////............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................../................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................;;/<............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................................;;//////<...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................................;;;//////////<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................;/;;//////////////<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................;;/////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................;;//;////////////////////////........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................;;;///////////////////////////////<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................;/;////////////////////////////////////<.....................
> │ > 
> ..............;.................................................................
> │ > │ 
> │ > 
> ..............;;;;/////////////////////////////////////////<....................
> │ > 
> ..........;/////................................................................
> │ > │ 
> │ > 
> ..............;>////////////////////////////////////////////<...................
> │ > 
> ......;;;;///////...............................................................
> │ > │ 
> │ > 
> ................>////////////////////////////////////////////<..................
> │ > 
> ..;///////////////..............................................................
> │ > │ 
> │ > 
> .................>////////////////////////////////////////////.................;
> │ > 
> ;//////////////////...................;;;//<....................................
> │ > │ 
> │ > 
> ..................>////////////////////////////////////////////................>
> │ > 
> >///////////////////..............;;;///////<...................................
> │ > │ 
> │ > 
> ...................>////////////////////////////////////////////<..............>
> │ > 
> >>///////////////////.............>>/////////<..................................
> │ > │ 
> │ > 
> ....................>////////////////////////////////////////////<..............
> │ > 
> >>>///////////////////.............>>/////////..................................
> │ > │ 
> │ > 
> .....................>////////////////////////////////////////////<.............
> │ > 
> .>>>///////////////////.............>>////////..................................
> │ > │ 
> │ > 
> ......................>////////////////////////////////////////////<............
> │ > 
> ..>>>/////////////////...............>>///......................................
> │ > │ 
> │ > 
> .......................>////////////////////////////////////////////............
> │ > 
> ...>>>////////////..............................................................
> │ > │ 
> │ > 
> ........................>///////////////////////////////////////////............
> │ > 
> ....>>>///////..................................................................
> │ > │ 
> │ > 
> .........................>>/////////////////////////////////////................
> │ > 
> .....>>////.....................................................................
> │ > │ 
> │ > 
> ..........................>/////////////////////////////////....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................>>////////////////////////////.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................>>///////////////////////...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................>////////////////////..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................>>//////////////..................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............................>>/////////......................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................>>////..........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................>/.............................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............................................;;;/.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................................;;;//////............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................................;;;///////////...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................;;////////////////..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................;;;////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................;;/;////////////////////////<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................;;//////////////////////////////<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................;/////////////////////////////////////.....................
> │ > 
> .............;;.................................................................
> │ > │ 
> │ > 
> .................;/;////////////////////////////////////////....................
> │ > 
> ..........;;////................................................................
> │ > │ 
> │ > 
> ...............;/////////////////////////////////////////////...................
> │ > 
> ......;;;////////...............................................................
> │ > │ 
> │ > 
> ...............>>/////////////////////////////////////////////..................
> │ > 
> ...;//////////////<.............................................................
> │ > │ 
> │ > 
> ................>>/////////////////////////////////////////////................;
> │ > 
> ;///////////////////..................;;;//<....................................
> │ > │ 
> │ > 
> ..................>>////////////////////////////////////////////<.............;;
> │ > 
> >////////////////////..............;/////////...................................
> │ > │ 
> │ > 
> ...................>>////////////////////////////////////////////<............\>
> │ > 
> >>////////////////////............;>//////////..................................
> │ > │ 
> │ > 
> ....................>>////////////////////////////////////////////<.............
> │ > 
> >>>////////////////////...........\>>//////////.................................
> │ > │ 
> │ > 
> .....................>>/////////////////////////////////////////////............
> │ > 
> .>>>////////////////////............>>>//////...................................
> │ > │ 
> │ > 
> .......................>/////////////////////////////////////////////...........
> │ > 
> ..>>>////////////////................>>///......................................
> │ > │ 
> │ > 
> ........................>////////////////////////////////////////////...........
> │ > 
> ...>>>////////////..............................................................
> │ > │ 
> │ > 
> .........................>>///////////////////////////////////////..............
> │ > 
> ....>>>>///////.................................................................
> │ > │ 
> │ > 
> ..........................>>///////////////////////////////////.................
> │ > 
> .....\>>>///....................................................................
> │ > │ 
> │ > 
> ...........................>>//////////////////////////////.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................>>//////////////////////////........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................>>//////////////////////...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............................>//////////////////..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................>>/////////////.................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................>>/////////....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................>>/////.......................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................................>//..........................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................................;;///..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................................;;;//////<............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................................;////////////<...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................;/////////////////..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................;;;////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................;;;////////////////////////<.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................;///////////////////////////////......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;///////////////////////////////////.....................
> │ > 
> .............;/.................................................................
> │ > │ 
> │ > 
> ...................;;;//////////////////////////////////////<...................
> │ > 
> ..........;;////................................................................
> │ > │ 
> │ > 
> ................;;////////////////////////////////////////////..................
> │ > 
> ......;;;////////...............................................................
> │ > │ 
> │ > 
> ...............;>//////////////////////////////////////////////.................
> │ > 
> ...;;//////////////......................<......................................
> │ > │ 
> │ > 
> ................>>//////////////////////////////////////////////................
> │ > 
> ;///////////////////..................;;;//<....................................
> │ > │ 
> │ > 
> .................>>>//////////////////////////////////////////////............;;
> │ > 
> >////////////////////..............;;;///////...................................
> │ > │ 
> │ > 
> ..................>>>//////////////////////////////////////////////...........>>
> │ > 
> >>////////////////////<..........;;;>/////////..................................
> │ > │ 
> │ > 
> ...................>>>//////////////////////////////////////////////...........>
> │ > 
> >>>/////////////////////..........>>>>/////////.................................
> │ > │ 
> │ > 
> .....................>>>/////////////////////////////////////////////<..........
> │ > 
> >>>>>//////////////////............>>>>//////...................................
> │ > │ 
> │ > 
> ......................>>>////////////////////////////////////////////...........
> │ > 
> .\>>>>///////////////................>>>//......................................
> │ > │ 
> │ > 
> ........................>>>////////////////////////////////////////.............
> │ > 
> ...>>>>///////////..............................................................
> │ > │ 
> │ > 
> .........................>>>////////////////////////////////////................
> │ > 
> ....>>>>>//////.................................................................
> │ > │ 
> │ > 
> ..........................>>>////////////////////////////////...................
> │ > 
> ......>>>>//....................................................................
> │ > │ 
> │ > 
> ............................>>>////////////////////////////.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................>>>////////////////////////........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................>>>////////////////////...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................>>>////////////////.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................>>>////////////................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................................>>>////////..................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................>>>////.....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................................>//.......................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............................................;<...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................................;;;//<..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................................;;///////<............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................................;////////////<...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................;/////////////////..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................;/////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................;;/////////////////////////.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................;;/////////////////////////////......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................;;//////////////////////////////////....................
> │ > 
> ............;;<.................................................................
> │ > │ 
> │ > 
> .....................;;//////////////////////////////////////...................
> │ > 
> .........;//////................................................................
> │ > │ 
> │ > 
> ..................;///////////////////////////////////////////<.................
> │ > 
> .......;//////////..............................................................
> │ > │ 
> │ > 
> ................;///////////////////////////////////////////////................
> │ > 
> ....;;/////////////......................;......................................
> │ > │ 
> │ > 
> ................>>>//////////////////////////////////////////////<..............
> │ > 
> .;;/////////////////<.................;;///<....................................
> │ > │ 
> │ > 
> ................>>>>///////////////////////////////////////////////............;
> │ > 
> >/////////////////////.............;;////////...................................
> │ > │ 
> │ > 
> ................;>>>>>//////////////////////////////////////////////<........;;>
> │ > 
> >>/////////////////////<.........;;;>/////////<.................................
> │ > │ 
> │ > 
> ..................>>>>>//////////////////////////////////////////////<........>>
> │ > 
> >>>>////////////////////..........>>>>/////////.................................
> │ > │ 
> │ > 
> ...................>>>>>//////////////////////////////////////////////..........
> │ > 
> >>>>>//////////////////............>>>>>/////...................................
> │ > │ 
> │ > 
> .....................>>>>>//////////////////////////////////////////............
> │ > 
> .>>>>>>/////////////.................>>>>/......................................
> │ > │ 
> │ > 
> ......................>>>>>>/////////////////////////////////////...............
> │ > 
> ...>>>>>//////////..............................................................
> │ > │ 
> │ > 
> ........................>>>>>//////////////////////////////////.................
> │ > 
> ....>>>>>>/////.................................................................
> │ > │ 
> │ > 
> ..........................>>>>>//////////////////////////////...................
> │ > 
> ......>>>>>//...................................................................
> │ > │ 
> │ > 
> ...........................>>>>>///////////////////////////.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................>>>>>///////////////////////.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................>>>>>///////////////////..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................>>>>>///////////////............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................>>>>>>///////////..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................................=>>>>///////.................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................................>>>>///...................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................................=>/.....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................................;/................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................................;////...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................................;;///////<.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................................;;////////////............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................;;///////////////<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................;/////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................;;;////////////////////////.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................;/////////////////////////////<.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................;;/////////////////////////////////....................
> │ > 
> ...........;;/..................................................................
> │ > │ 
> │ > 
> .......................;;/////////////////////////////////////..................
> │ > 
> .........;;/////................................................................
> │ > │ 
> │ > 
> ....................;;/////////////////////////////////////////.................
> │ > 
> .......;//////////..............................................................
> │ > │ 
> │ > 
> ..................;;/////////////////////////////////////////////...............
> │ > 
> ....;;/////////////......................;......................................
> │ > │ 
> │ > 
> ................;;>///////////////////////////////////////////////<.............
> │ > 
> ..;;/////////////////.................;;///<....................................
> │ > │ 
> │ > 
> ................;>>>////////////////////////////////////////////////...........;
> │ > 
> ;/////////////////////.............\;////////<..................................
> │ > │ 
> │ > 
> ................>>>>>>///////////////////////////////////////////////<.......;;;
> │ > 
> >>>/////////////////////.........;;;>//////////.................................
> │ > │ 
> │ > 
> ................>>>>>>>>//////////////////////////////////////////////.......>>>
> │ > 
> >>>>////////////////////.........>>>>>>////////.................................
> │ > │ 
> │ > 
> ..................>>>>>>>>//////////////////////////////////////////...........>
> │ > 
> >>>>>>////////////////.............>>>>>/////...................................
> │ > │ 
> │ > 
> ...................\>>>>>>>///////////////////////////////////////..............
> │ > 
> .>>>>>>>////////////.................>>>>//.....................................
> │ > │ 
> │ > 
> .....................>>>>>>>>///////////////////////////////////................
> │ > 
> ..>>>>>>>/////////..............................................................
> │ > │ 
> │ > 
> .......................>>>>>>>>///////////////////////////////..................
> │ > 
> ....>>>>>>>/////................................................................
> │ > │ 
> │ > 
> .........................>>>>>>>/////////////////////////////...................
> │ > 
> ......>>>>>>//..................................................................
> │ > │ 
> │ > 
> ..........................>>>>>>>>/////////////////////////.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................>>>>>>>>/////////////////////.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................>>>>>>>>/////////////////.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................>>>>>>>//////////////...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................>>>>>>>>//////////.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................>>>>>>>//////...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................................>>>>///.................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................................>>/..................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................................;/.................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................................;;////...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................................;;////////<.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................................;/////////////............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................;/////////////////..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................;;////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............................;/////////////////////////.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................;/////////////////////////////.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................;;////////////////////////////////<...................
> │ > 
> ...........;;/..................................................................
> │ > │ 
> │ > 
> ........................;;////////////////////////////////////..................
> │ > 
> ........;;//////................................................................
> │ > │ 
> │ > 
> ......................;/////////////////////////////////////////................
> │ > 
> ......;;//////////..............................................................
> │ > │ 
> │ > 
> ...................;;////////////////////////////////////////////<..............
> │ > 
> ....;;;////////////<....................;;......................................
> │ > │ 
> │ > 
> .................;;////////////////////////////////////////////////<............
> │ > 
> ..;;/////////////////................;;;////....................................
> │ > │ 
> │ > 
> ................;;>>>////////////////////////////////////////////////...........
> │ > 
> ;;/////////////////////............\;;///////<..................................
> │ > │ 
> │ > 
> ................;>>>>>>///////////////////////////////////////////////.......;;;
> │ > 
> ;>>/////////////////////.........;;;>//////////.................................
> │ > │ 
> │ > 
> ...............;>>>>>>>>/////////////////////////////////////////////........;>>
> │ > 
> >>>>>///////////////////.........;>>>>>////////.................................
> │ > │ 
> │ > 
> ................>>>>>>>>>>/////////////////////////////////////////...........>>
> │ > 
> >>>>>>>///////////////.............>>>>>>////...................................
> │ > │ 
> │ > 
> ..................>>>>>>>>>>>////////////////////////////////////...............
> │ > 
> >>>>>>>>>///////////................\>>>>>/.....................................
> │ > │ 
> │ > 
> ....................>>>>>>>>>>//////////////////////////////////................
> │ > 
> ..>>>>>>>>////////..............................................................
> │ > │ 
> │ > 
> ......................>>>>>>>>>>//////////////////////////////..................
> │ > 
> ....>>>>>>>>////................................................................
> │ > │ 
> │ > 
> ........................>>>>>>>>>>///////////////////////////...................
> │ > 
> ......>>>>>>>//.................................................................
> │ > │ 
> │ > 
> ..........................>>>>>>>>>>///////////////////////.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................>>>>>>>>>>///////////////////.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................>>>>>>>>>>////////////////........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................>>>>>>>>>>////////////..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................>>>>>>>>>>////////............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................=>>>>>>>>>/////.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................................>>>>>//...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................................../................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................................;;..................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................................;;////................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................................;;////////..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................................;////////////<............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................;////////////////<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................;////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................;////////////////////////<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................;////////////////////////////.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................;////////////////////////////////...................
> │ > 
> ..........;;//..................................................................
> │ > │ 
> │ > 
> ..........................;////////////////////////////////////.................
> │ > 
> ........;;//////................................................................
> │ > │ 
> │ > 
> ........................;///////////////////////////////////////<...............
> │ > 
> .....;;;//////////..............................................................
> │ > │ 
> │ > 
> ......................;///////////////////////////////////////////<.............
> │ > 
> ...\;;//////////////....................;<......................................
> │ > │ 
> │ > 
> ....................;;//////////////////////////////////////////////<...........
> │ > 
> ..;;;/////////////////...............;;;///<....................................
> │ > │ 
> │ > 
> ..................;;>////////////////////////////////////////////////...........
> │ > 
> ;;;/////////////////////...........;;;///////<..................................
> │ > │ 
> │ > 
> ................;;>>>>>//////////////////////////////////////////////.........;;
> │ > 
> ;;>/////////////////////..........;;;//////////.................................
> │ > │ 
> │ > 
> ...............;;>>>>>>>>//////////////////////////////////////////.........\;;>
> │ > 
> >>>>>//////////////////..........;;>>>>////////.................................
> │ > │ 
> │ > 
> ..............;>>>>>>>>>>>>///////////////////////////////////////...........>>>
> │ > 
> >>>>>>>///////////////.............>>>>>>////...................................
> │ > │ 
> │ > 
> ................>>>>>>>>>>>>>////////////////////////////////////...............
> │ > 
> >>>>>>>>>>//////////.................>>>>>/.....................................
> │ > │ 
> │ > 
> ..................>>>>>>>>>>>>>>///////////////////////////////.................
> │ > 
> .\>>>>>>>>>////////...................=.........................................
> │ > │ 
> │ > 
> ....................\>>>>>>>>>>>>>////////////////////////////..................
> │ > 
> ....>>>>>>>>>////...............................................................
> │ > │ 
> │ > 
> .......................>>>>>>>>>>>>>/////////////////////////...................
> │ > 
> ......>>>>>>>>>/................................................................
> │ > │ 
> │ > 
> .........................>>>>>>>>>>>>>/////////////////////.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................>>>>>>>>>>>>>//////////////////......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................>>>>>>>>>>>>>///////////////.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............................>>>>>>>>>>>>>>//////////.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................>>>>>>>>>>>>>///////..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................=>>>>>>>>>>>>////...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................................=>>>>>/.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................................;/<..................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................................;;////<................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................................;;////////<..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................................;;////////////<............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................................;;;///////////////<..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................;;////////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................;;///////////////////////<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................;;///////////////////////////<....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................;;///////////////////////////////<..................
> │ > 
> ..........;;//..................................................................
> │ > │ 
> │ > 
> ..........................;;;//////////////////////////////////.................
> │ > 
> .......;;;//////................................................................
> │ > │ 
> │ > 
> .........................;;//////////////////////////////////////...............
> │ > 
> .....;;;//////////..............................................................
> │ > │ 
> │ > 
> .......................;;//////////////////////////////////////////<............
> │ > 
> ...;;;;/////////////....................;/......................................
> │ > │ 
> │ > 
> .....................;;//////////////////////////////////////////////...........
> │ > 
> .;;;;/////////////////...............;;;////....................................
> │ > │ 
> │ > 
> ...................;;;///////////////////////////////////////////////...........
> │ > 
> ;;;;////////////////////...........;;;////////..................................
> │ > │ 
> │ > 
> ..................;;>>>>////////////////////////////////////////////..........;;
> │ > 
> ;;;>////////////////////..........;;;//////////.................................
> │ > │ 
> │ > 
> ................;;>>>>>>>>////////////////////////////////////////...........;;;
> │ > 
> >>>>>>/////////////////..........;;>>>>///////..................................
> │ > │ 
> │ > 
> ..............;;>>>>>>>>>>>>/////////////////////////////////////...........;>>>
> │ > 
> >>>>>>>>/////////////.............>>>>>>>>///...................................
> │ > │ 
> │ > 
> ..............>>>>>>>>>>>>>>>>>/////////////////////////////////...............>
> │ > 
> >>>>>>>>>>//////////................\>>>>>>/....................................
> │ > │ 
> │ > 
> ................\>>>>>>>>>>>>>>>>//////////////////////////////.................
> │ > 
> .>>>>>>>>>>>///////....................=........................................
> │ > │ 
> │ > 
> ...................>>>>>>>>>>>>>>>>///////////////////////////..................
> │ > 
> ...>>>>>>>>>>>>///..............................................................
> │ > │ 
> │ > 
> .....................\>>>>>>>>>>>>>>>>///////////////////////...................
> │ > 
> ......>>>>>>>>>>................................................................
> │ > │ 
> │ > 
> ........................>>>>>>>>>>>>>>>>////////////////////....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................>>>>>>>>>>>>>>>>/////////////////.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................>>>>>>>>>>>>>>>>/////////////......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............................>>>>>>>>>>>>>>>>/////////........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................>>>>>>>>>>>>>>>>/////.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................=>>>>>>>>>>>>>>>//..........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................................>>>>...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................................;//...................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................................;;/////.................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................................;;/////////...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................;;;////////////.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................;;;////////////////...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................;;;;///////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................;;;;///////////////////////<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................;;;;//////////////////////////<....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................;;;;///////////////////////////////..................
> │ > 
> .........;;;//..................................................................
> │ > │ 
> │ > 
> ..........................;;;;//////////////////////////////////................
> │ > 
> ......;;;;//////................................................................
> │ > │ 
> │ > 
> ........................;;;;//////////////////////////////////////..............
> │ > 
> ....;;;;;/////////..............................................................
> │ > │ 
> │ > 
> ......................;;;;;/////////////////////////////////////////............
> │ > 
> ...;;;;/////////////<..................<;<......................................
> │ > │ 
> │ > 
> .....................;;;;///////////////////////////////////////////............
> │ > 
> .;;;;;/////////////////..............;;;////....................................
> │ > │ 
> │ > 
> ...................;;;;;////////////////////////////////////////////............
> │ > 
> ;;;;////////////////////...........;;;;///////..................................
> │ > │ 
> │ > 
> ..................;;;;;>///////////////////////////////////////////...........;;
> │ > 
> ;;;>////////////////////..........;;;//////////.................................
> │ > │ 
> │ > 
> ................;;;;;>>>>>////////////////////////////////////////...........;;;
> │ > 
> ;;>>>>/////////////////..........;;;>>>>//////..................................
> │ > │ 
> │ > 
> ...............;;;>>>>>>>>>>>////////////////////////////////////...........;;>>
> │ > 
> >>>>>>>>>/////////////............>>>>>>>>///...................................
> │ > │ 
> │ > 
> .............;;;>>>>>>>>>>>>>>>>////////////////////////////////..............>>
> │ > 
> >>>>>>>>>>>/////////................>>>>>>>/....................................
> │ > │ 
> │ > 
> ..............\>>>>>>>>>>>>>>>>>>>/////////////////////////////.................
> │ > 
> .>>>>>>>>>>>>>/////....................>........................................
> │ > │ 
> │ > 
> .................>>>>>>>>>>>>>>>>>>>>/////////////////////////..................
> │ > 
> ...>>>>>>>>>>>>>//..............................................................
> │ > │ 
> │ > 
> ....................>>>>>>>>>>>>>>>>>>>>/////////////////////...................
> │ > 
> ......>>>>>>>>>>>...............................................................
> │ > │ 
> │ > 
> .......................>>>>>>>>>>>>>>>>>>>//////////////////....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................>>>>>>>>>>>>>>>>>>>//////////////.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................>>>>>>>>>>>>>>>>>>>>///////////.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............................>>>>>>>>>>>>>>>>>>>////////......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................>>>>>>>>>>>>>>>>>>>////.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................................>>>>>>>>>>>>>>>>>>/........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................................;;/....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................................;;/////<.................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................................;;;/////////...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................................;;;;////////////.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................;;;;;///////////////...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............................;;;;;///////////////////<........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................;;;;;;//////////////////////<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................;;;;;;;//////////////////////////....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................;;;;;;//////////////////////////////..................
> │ > 
> .........;;//<..................................................................
> │ > │ 
> │ > 
> .........................;;;;;;/////////////////////////////////................
> │ > 
> ......;;;;//////................................................................
> │ > │ 
> │ > 
> .......................;;;;;;;////////////////////////////////////<.............
> │ > 
> ...;;;;;;/////////<.............................................................
> │ > │ 
> │ > 
> ......................;;;;;;;///////////////////////////////////////............
> │ > 
> ..;;;;;//////////////..................;;.......................................
> │ > │ 
> │ > 
> .....................;;;;;;////////////////////////////////////////.............
> │ > 
> .;;;;;;////////////////.............;;;;////....................................
> │ > │ 
> │ > 
> ...................;;;;;;;////////////////////////////////////////..............
> │ > 
> ;;;;;;//////////////////...........;;;;///////<.................................
> │ > │ 
> │ > 
> ..................;;;;;;;/////////////////////////////////////////............\;
> │ > 
> ;;;;///////////////////...........;;;;/////////.................................
> │ > │ 
> │ > 
> .................;;;;;;;>>>//////////////////////////////////////............;;;
> │ > 
> ;;;>>>>///////////////...........;;;;>>>//////..................................
> │ > │ 
> │ > 
> ...............;;;;;;>>>>>>>>>>/////////////////////////////////............;;;>
> │ > 
> >>>>>>>>>////////////............\>>>>>>>>>//...................................
> │ > │ 
> │ > 
> ..............;;;;>>>>>>>>>>>>>>>///////////////////////////////.............>>>
> │ > 
> >>>>>>>>>>>>/////////...............>>>>>>>>....................................
> │ > │ 
> │ > 
> .............;;>>>>>>>>>>>>>>>>>>>>>///////////////////////////.................
> │ > 
> >>>>>>>>>>>>>>>/////...................>........................................
> │ > │ 
> │ > 
> ...............>>>>>>>>>>>>>>>>>>>>>>>>///////////////////////..................
> │ > 
> ...>>>>>>>>>>>>>>>/.............................................................
> │ > │ 
> │ > 
> ..................>>>>>>>>>>>>>>>>>>>>>>>>////////////////////..................
> │ > 
> ......>>>>>>>>>>>/..............................................................
> │ > │ 
> │ > 
> .....................>>>>>>>>>>>>>>>>>>>>>>>>////////////////...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................>>>>>>>>>>>>>>>>>>>>>>>>////////////....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................>>>>>>>>>>>>>>>>>>>>>>>/////////....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............................>>>>>>>>>>>>>>>>>>>>>>>/////.....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................>>>>>>>>>>>>>>>>>>>>>>//......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................................>>>>>>>>>>>>>>>>>>>>/......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................................;;/<....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................................;;;/////..................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................;;;;////////................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................;;;;;////////////.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................;;;;;;///////////////...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................;;;;;;;//////////////////.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................;;;;;;;;//////////////////////......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................;;;;;;;;//////////////////////////....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................;;;;;;;;/////////////////////////////<.................
> │ > 
> ........;;;//...................................................................
> │ > │ 
> │ > 
> ........................;;;;;;;;////////////////////////////////<...............
> │ > 
> .....;;;;;//////................................................................
> │ > │ 
> │ > 
> .......................;;;;;;;;////////////////////////////////////.............
> │ > 
> ..<;;;;;;/////////<.............................................................
> │ > │ 
> │ > 
> .....................\;;;;;;;;/////////////////////////////////////.............
> │ > 
> ..;;;;;;/////////////..................;;<......................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;/////////////////////////////////////..............
> │ > 
> \;;;;;;/////////////////............;;;;////....................................
> │ > │ 
> │ > 
> ...................;;;;;;;;;//////////////////////////////////////..............
> │ > 
> ;;;;;;/////////////////............;;;;////////.................................
> │ > │ 
> │ > 
> ..................;;;;;;;;;//////////////////////////////////////.............\;
> │ > 
> ;;;;;//////////////////...........;;;;/////////.................................
> │ > │ 
> │ > 
> .................;;;;;;;;;;>/////////////////////////////////////............\;;
> │ > 
> ;;;;;>>///////////////...........;;;;;>>>/////..................................
> │ > │ 
> │ > 
> ................;;;;;;;;>>>>>>>>////////////////////////////////............\;;;
> │ > 
> ;>>>>>>>>>////////////...........;>>>>>>>>>//...................................
> │ > │ 
> │ > 
> ...............;;;;;;>>>>>>>>>>>>>>/////////////////////////////............;>>>
> │ > 
> >>>>>>>>>>>>>////////...............>>>>>>>>/...................................
> │ > │ 
> │ > 
> ..............;;;;>>>>>>>>>>>>>>>>>>>>/////////////////////////................>
> │ > 
> >>>>>>>>>>>>>>>>////...................=>.......................................
> │ > │ 
> │ > 
> .............;>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////////////.................
> │ > 
> ..\>>>>>>>>>>>>>>>>.............................................................
> │ > │ 
> │ > 
> ................>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////////..................
> │ > 
> ......>>>>>>>>>=>...............................................................
> │ > │ 
> │ > 
> ....................>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////..................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................>>>>>>>>>>>>>>>>>>>>>>>>>>>///////////...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................>>>>>>>>>>>>>>>>>>>>>>>>>>>///////...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................>>>>>>>>>>>>>>>>>>>>>>>>>>>///....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................>>>>>>>>>>>>>>>>>>>>>>>>>/....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................................>>>>>=>=>>................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................................;;//.....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................................;;;/////<..................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................................;;;;/////////................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................;;;;;;///////////<.............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............................;;;;;;;///////////////...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................;;;;;;;;//////////////////.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................;;;;;;;;;//////////////////////......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................;;;;;;;;;;/////////////////////////....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................;;;;;;;;;;;///////////////////////////<.................
> │ > 
> ........;;;//...................................................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;///////////////////////////////...............
> │ > 
> .....;;;;;//////................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;/////////////////////////////////..............
> │ > 
> ..;;;;;;;/////////<.............................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;//////////////////////////////////..............
> │ > 
> .;;;;;;;/////////////..................;;<......................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;//////////////////////////////////...............
> │ > 
> ;;;;;;;;///////////////.............;;;;////<...................................
> │ > │ 
> │ > 
> ...................;;;;;;;;;;;;//////////////////////////////////..............;
> │ > 
> ;;;;;;;////////////////............;;;;////////.................................
> │ > │ 
> │ > 
> ..................;;;;;;;;;;;;///////////////////////////////////..............;
> │ > 
> ;;;;;;/////////////////...........;;;;;////////.................................
> │ > │ 
> │ > 
> .................;;;;;;;;;;;;///////////////////////////////////..............;;
> │ > 
> ;;;;;;>>//////////////...........;;;;;>>>/////..................................
> │ > │ 
> │ > 
> ................;;;;;;;;;;;;>>>>>///////////////////////////////.............;;;
> │ > 
> ;;>>>>>>>>>///////////...........;>>>>>>>>>>//..................................
> │ > │ 
> │ > 
> ...............;;;;;;;;;>>>>>>>>>>>>////////////////////////////............\;;>
> │ > 
> >>>>>>>>>>>>>>///////...............>>>>>>>>>...................................
> │ > │ 
> │ > 
> ..............;;;;;;;>>>>>>>>>>>>>>>>>>>///////////////////////...............\>
> │ > 
> >>>>>>>>>>>>>>>>>>///..................>=.......................................
> │ > │ 
> │ > 
> .............;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>////////////////////.................
> │ > 
> ..>>>>>>>>>>>>>>>>>>............................................................
> │ > │ 
> │ > 
> .............>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////////////////.................
> │ > 
> ......>>>>>>>>>>=...............................................................
> │ > │ 
> │ > 
> .................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////////..................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////..................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////..................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//..................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................>>>>>>>>>>>>>>>>>>>>>>>>>>>...................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................................>>>==.....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................................;;/<.....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................<;;;/////...................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................;;;;;////////<................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................;;;;;;;///////////..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................;;;;;;;;//////////////<...........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................;;;;;;;;;;/////////////////.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................;;;;;;;;;;;////////////////////<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................;;;;;;;;;;;;////////////////////////....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;///////////////////////////.................
> │ > 
> ........;;///...................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;//////////////////////////////...............
> │ > 
> .....;;;;;//////................................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;//////////////////////////////...............
> │ > 
> ..;;;;;;;//////////.............................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;///////////////////////////////...............
> │ > 
> \;;;;;;;;////////////<.................;;.......................................
> │ > │ 
> │ > 
> ...................\;;;;;;;;;;;;;///////////////////////////////................
> │ > 
> ;;;;;;;;///////////////............<;;;;////<...................................
> │ > │ 
> │ > 
> ...................;;;;;;;;;;;;;;///////////////////////////////...............;
> │ > 
> ;;;;;;;;///////////////...........\;;;;////////.................................
> │ > │ 
> │ > 
> ..................;;;;;;;;;;;;;;////////////////////////////////..............\;
> │ > 
> ;;;;;;;///////////////............;;;;;////////.................................
> │ > │ 
> │ > 
> .................;;;;;;;;;;;;;;;////////////////////////////////..............;;
> │ > 
> ;;;;;;;>//////////////...........\;;;;;>>>////..................................
> │ > │ 
> │ > 
> ................;;;;;;;;;;;;;;;>>>//////////////////////////////.............;;;
> │ > 
> ;;;;>>>>>>>>//////////...........;;>>>>>>>>>>/..................................
> │ > │ 
> │ > 
> ................;;;;;;;;;;;;>>>>>>>>>>//////////////////////////.............;;;
> │ > 
> >>>>>>>>>>>>>>>>/////..............\>>>>>>>>/...................................
> │ > │ 
> │ > 
> ...............;;;;;;;;;>>>>>>>>>>>>>>>>>>//////////////////////.............\>>
> │ > 
> >>>>>>>>>>>>>>>>>>>//..................\=.......................................
> │ > │ 
> │ > 
> ..............;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////////................
> │ > 
> .\>>>>>>>>>>>>>>>>>>/...........................................................
> │ > │ 
> │ > 
> .............;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////////////.................
> │ > 
> ......>>>>>>>>>>................................................................
> │ > │ 
> │ > 
> ...............>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////.................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................\>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////.................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//.................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/.................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................>>>>>>>>>>>>>>>>>>>>==........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................................>==......................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................................;;//......................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................................;;;;////....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................;;;;;////////.................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............................<;;;;;;;///////////..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .............................;;;;;;;;;//////////////............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...........................;;;;;;;;;;;/////////////////.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .........................;;;;;;;;;;;;;///////////////////<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................;;;;;;;;;;;;;;///////////////////////....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................\;;;;;;;;;;;;;;;//////////////////////////.................
> │ > 
> .......<;;//<...................................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;///////////////////////////................
> │ > 
> ....<;;;;;//////................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;////////////////////////////................
> │ > 
> ..;;;;;;;;/////////.............................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;////////////////////////////................
> │ > 
> ;;;;;;;;;/////////////.................;/.......................................
> │ > │ 
> │ > 
> ...................;;;;;;;;;;;;;;;;/////////////////////////////...............;
> │ > 
> ;;;;;;;;;/////////////.............<;;;;////<...................................
> │ > │ 
> │ > 
> ..................;;;;;;;;;;;;;;;;;/////////////////////////////...............;
> │ > 
> ;;;;;;;;//////////////............\;;;;;//////..................................
> │ > │ 
> │ > 
> ..................;;;;;;;;;;;;;;;;;/////////////////////////////..............\;
> │ > 
> ;;;;;;;;//////////////............;;;;;///////..................................
> │ > │ 
> │ > 
> .................;;;;;;;;;;;;;;;;;//////////////////////////////..............;;
> │ > 
> ;;;;;;;;>/////////////............;;;;;>>>////..................................
> │ > │ 
> │ > 
> .................;;;;;;;;;;;;;;;;;>/////////////////////////////..............;;
> │ > 
> ;;;;;;>>>>>>>/////////...........;;;>>>>>>>>>/..................................
> │ > │ 
> │ > 
> ................;;;;;;;;;;;;;;;;>>>>>>>/////////////////////////.............;;;
> │ > 
> ;;>>>>>>>>>>>>>>>/////.............\>>>>>>>>>=..................................
> │ > │ 
> │ > 
> ...............;;;;;;;;;;;;;>>>>>>>>>>>>>>>/////////////////////.............;>>
> │ > 
> >>>>>>>>>>>>>>>>>>>>>/..................>.......................................
> │ > │ 
> │ > 
> ...............;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>////////////////................
> │ > 
> .>>>>>>>>>>>>>>>>>>>/...........................................................
> │ > │ 
> │ > 
> ..............;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////////................
> │ > 
> ......>>>>>>>>>>................................................................
> │ > │ 
> │ > 
> ..............;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>..................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..................................>>>>>>>>>>>>>>>>>>............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................................>=.......................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................................<;;/<......................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................................;;;;;///<....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................;;;;;;///////<.................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............................;;;;;;;;//////////<..............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................<;;;;;;;;;;/////////////............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................<;;;;;;;;;;;;///////////////<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................;;;;;;;;;;;;;;;//////////////////<......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ......................;;;;;;;;;;;;;;;;//////////////////////....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;////////////////////////..................
> │ > 
> .......;;;//....................................................................
> │ > │ 
> │ > 
> ....................;;;;;;;;;;;;;;;;;;/////////////////////////.................
> │ > 
> ....;;;;;;//////................................................................
> │ > │ 
> │ > 
> ...................;;;;;;;;;;;;;;;;;;;/////////////////////////.................
> │ > 
> .<;;;;;;;;////////<.............................................................
> │ > │ 
> │ > 
> ...................;;;;;;;;;;;;;;;;;;;/////////////////////////................;
> │ > 
> ;;;;;;;;;;////////////.................;/.......................................
> │ > │ 
> │ > 
> ..................\;;;;;;;;;;;;;;;;;;//////////////////////////................;
> │ > 
> ;;;;;;;;;/////////////.............<;;;;////<...................................
> │ > │ 
> │ > 
> ..................;;;;;;;;;;;;;;;;;;;//////////////////////////................;
> │ > 
> ;;;;;;;;;/////////////............;;;;;;//////..................................
> │ > │ 
> │ > 
> ..................;;;;;;;;;;;;;;;;;;;///////////////////////////..............;;
> │ > 
> ;;;;;;;;;/////////////............;;;;;;//////..................................
> │ > │ 
> │ > 
> .................;;;;;;;;;;;;;;;;;;;;///////////////////////////..............;;
> │ > 
> ;;;;;;;;;>////////////............;;;;;;>>////..................................
> │ > │ 
> │ > 
> .................;;;;;;;;;;;;;;;;;;;;///////////////////////////..............;;
> │ > 
> ;;;;;;;;>>>>/>////////............;;;>>>>>>>>>..................................
> │ > │ 
> │ > 
> ................;;;;;;;;;;;;;;;;;;;;>>>>>///////////////////////.............\;;
> │ > 
> ;;;>>>>>>>>>>>>>/>////.............>>>>>>>>>=...................................
> │ > │ 
> │ > 
> ................;;;;;;;;;;;;;;;;>>>>>>>>>>>>>>//////////////////.............;;;
> │ > 
> >>>>>>>>>>>>>>>>>>>>>>..................=.......................................
> │ > │ 
> │ > 
> ...............;;;;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>//////////////................
> │ > 
> >>>>>>>>>>>>>>>>>>>>>...........................................................
> │ > │ 
> │ > 
> ...............;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////...............
> │ > 
> .....\>>>>>>>>=.................................................................
> │ > │ 
> │ > 
> ..............;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////...............
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/...............
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ....................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>...............
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................\>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................>>>>>>>>>>>>>>>>...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................................=.......................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................................;;//.......................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................................;;;;////<....................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................<;;;;;;///////..................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..............................<;;;;;;;;/////////<...............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ............................;;;;;;;;;;;////////////<............................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ..........................;;;;;;;;;;;;;///////////////<.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .......................<;;;;;;;;;;;;;;;//////////////////.......................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .....................;;;;;;;;;;;;;;;;;;/////////////////////....................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...................;;;;;;;;;;;;;;;;;;;;//////////////////////...................
> │ > 
> .......;;;//....................................................................
> │ > │ 
> │ > 
> ...................;;;;;;;;;;;;;;;;;;;;///////////////////////..................
> │ > 
> ....;;;;;;//////................................................................
> │ > │ 
> │ > 
> ..................\;;;;;;;;;;;;;;;;;;;;///////////////////////..................
> │ > 
> .;;;;;;;;;/////////.............................................................
> │ > │ 
> │ > 
> ..................;;;;;;;;;;;;;;;;;;;;;///////////////////////.................;
> │ > 
> ;;;;;;;;;;///////////..................;/.......................................
> │ > │ 
> │ > 
> ..................;;;;;;;;;;;;;;;;;;;;;////////////////////////................;
> │ > 
> ;;;;;;;;;;////////////.............<;;;;////<...................................
> │ > │ 
> │ > 
> ..................;;;;;;;;;;;;;;;;;;;;;////////////////////////...............\;
> │ > 
> ;;;;;;;;;;////////////............;;;;;;//////..................................
> │ > │ 
> │ > 
> .................;;;;;;;;;;;;;;;;;;;;;;////////////////////////...............;;
> │ > 
> ;;;;;;;;;;////////////............;;;;;;//////..................................
> │ > │ 
> │ > 
> .................;;;;;;;;;;;;;;;;;;;;;;/////////////////////////..............;;
> │ > 
> ;;;;;;;;;;>///////////............;;;;;;>>>///..................................
> │ > │ 
> │ > 
> .................;;;;;;;;;;;;;;;;;;;;;;/////////////////////////..............;;
> │ > 
> ;;;;;;;;;>>>>>>///////............;;;;>>>>>>>>..................................
> │ > │ 
> │ > 
> ................;;;;;;;;;;;;;;;;;;;;;;;>>>>/////////////////////..............;;
> │ > 
> ;;;;;;>>>>>>>>>>>>>>//.............>>>>>>>>>=...................................
> │ > │ 
> │ > 
> ................;;;;;;;;;;;;;;;;;;;>>>>>>>>>>>>>/////////////////.............;;
> │ > 
> ;;>>>>>>>>>>>>>>>>>>>>..................=.......................................
> │ > │ 
> │ > 
> ................;;;;;;;;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>////////////..............\
> │ > 
> >>>>>>>>>>>>>>>>>>>>............................................................
> │ > │ 
> │ > 
> ...............\;;;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>///////...............
> │ > 
> .....>>>>>>>>>=.................................................................
> │ > │ 
> │ > 
> ...............;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>///..............
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ...............;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>..............
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>=..................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ........................\>>>>>>>>>>>>>>>>>>>>>>>>>>>>>=.........................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> .................................\>>>>>>>>>>>>>=................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > 
> ................................................................................
> │ > 
> ................................................................................
> │ > │ 
> │ > │ 
> │ 00:02:30 v #3 runtime.execute_with_options / result / {
> exit_code = 0; std_trace_length = 449170 }
> │ 00:02:30 d #4 runtime.execute_with_options / { 
> file_name = jupyter; arguments = ["nbconvert", 
> "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.ipynb", "--to", "html", 
> "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert 
> "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.ipynb" --to html 
> --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:02:32 v #5 ! [NbConvertApp] Converting notebook 
> c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.ipynb to html
> │ 00:02:32 v #6 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.
> py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a 
> hard error in future nbformat versions. You may want to use `normalize()` on 
> your notebooks before validations (available since nbformat 5.1.4). Previous 
> versions of nbformat are fixing this issue transparently, and will stop doing so
> in the future.
> │ 00:02:32 v #7 !   validate(nb)
> │ 00:02:32 v #8 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\
> highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python
> 3
> │ 00:02:32 v #9 !   return _pygments_highlight(
> │ 00:02:33 v #10 ! [NbConvertApp] Writing 800315 bytes to
> c:\home\git\polyglot\apps\spiral\temp\cube\cube.dib.html
> │ 00:02:33 v #11 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 872 }
> │ 00:02:33 d #12 spiral.run / dib / jupyter nbconvert / {
> exit_code = 0; jupyter_result_length = 872 }
> │ 00:02:33 d #13 runtime.execute_with_options / { 
> file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.html'; (Get-Content $path 
> -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + 
> $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1;
> $path = 'c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.html'; (Get-Content
> $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + 
> $counter++ } | Set-Content $path"; cancellation_token = None; 
> environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace 
> = true; working_directory = None } }
> │ 00:02:33 v #14 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 0 }
> │ 00:02:33 d #15 spiral.run / dib / html cell ids / { 
> exit_code = 0; pwsh_replace_html_result_length = 0 }
> │ 00:02:33 d #16 spiral.run / dib / { exit_code = 0; 
> result_length = 450101 }
> │ 00:00:00 d #1 writeDibCode / output: Spi / path: 
> cube.dib
> │ 00:00:00 d #2 parseDibCode / output: Spi / file: 
> cube.dib
> │ 00:00:00 d #1 persistCodeProject / packages: 
> [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; 
> deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: 
> cube / hash:  / code.Length: 48866
> │ spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: 
> C:\home\git\polyglot\target\Builder\cube
> │ polyglot/scripts/core.ps1/ResolveLink #4 / Path: 
> C:\home\git\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target:
> / path_target: C:\home\git\polyglot / parent: 
> C:\home\git\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot
> │ spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: 
> C:\home\git\polyglot\target\Builder\cube / ProjectName: cube / Language: rs / 
> Runtime:  / root: C:\home\git\polyglot
> │ Fable 5.0.0-alpha.9: F# to Rust compiler (status: alpha)
> │ 
> │ Thanks to the contributor! @fdcastel
> │ Stand with Ukraine! https://standwithukraine.com.ua/
> │ 
> │ Parsing target\Builder\cube\cube.fsproj...
> │ Project and references (14 source files) parsed in 3707ms
> │ 
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.JSInt
> erop.dll for Fable plugins, skipping this assembly. Original error: The 
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Routing.dll for Fable plugins, skipping this assembly. Original error: The
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Routing.Abstractions.dll for Fable plugins, skipping this assembly. 
> Original error: The exception has been reported. This internal exception should 
> now be caught at an error recovery point on the stack. Original message: The 
> type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You 
> must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.ViewFeatures.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.dll for Fable plugins, skipping this assembly. Original error: The 
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.Core.dll for Fable plugins, skipping this assembly. Original error: 
> The exception has been reported. This internal exception should now be caught at
> an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Http.Abstractions.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.Forms.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.Endpoints.dll for Fable plugins, skipping this assembly. 
> Original error: The exception has been reported. This internal exception should 
> now be caught at an error recovery point on the stack. Original message: The 
> type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You 
> must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.dll for Fable plugins, skipping this assembly. Original error: 
> The exception has been reported. This internal exception should now be caught at
> an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ 
> │ Started Fable compilation...
> │ 
> │ Fable compilation finished in 9934ms
> │ 
> │ .\deps\spiral\lib\spiral\common.fsx(2199,0): (2199,2) warning
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\sm.fsx(561,0): (561,2) warning 
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\async_.fsx(250,0): (250,2) warning 
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\threading.fsx(139,0): (139,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\crypto.fsx(2426,0): (2426,2) warning
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\date_time.fsx(2546,0): (2546,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\platform.fsx(121,0): (121,2) warning
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\networking.fsx(5050,0): (5050,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\trace.fsx(2232,0): (2232,2) warning 
> FABLE: For Rust, support for F# static and module do bindings is disabled by 
> default. It can be enabled with the 'static_do_bindings' feature. Use at your 
> own risk!
> │ .\deps\spiral\lib\spiral\runtime.fsx(7321,0): (7321,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ .\deps\spiral\lib\spiral\file_system.fsx(19036,0): (19036,2) 
> warning FABLE: For Rust, support for F# static and module do bindings is 
> disabled by default. It can be enabled with the 'static_do_bindings' feature. 
> Use at your own risk!
> │ polyglot/scripts/core.ps1/ResolveLink #4 / Path: 
> C:\home\git\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target:
> / path_target: C:\home\git\polyglot / parent: 
> C:\home\git\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot
> │ spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: 
> C:\home\git\polyglot\target\Builder\cube / ProjectName: cube / Language: ts / 
> Runtime:  / root: C:\home\git\polyglot
> │ Fable 5.0.0-alpha.9: F# to TypeScript compiler
> │ Minimum @fable-org/fable-library-ts version (when installed 
> from npm): 1.10.0
> │ 
> │ Thanks to the contributor! @2sComplement
> │ Stand with Ukraine! https://standwithukraine.com.ua/
> │ 
> │ Parsing target\Builder\cube\cube.fsproj...
> │ Project and references (14 source files) parsed in 58800ms
> │ 
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.JSInt
> erop.dll for Fable plugins, skipping this assembly. Original error: The 
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Routing.dll for Fable plugins, skipping this assembly. Original error: The
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Routing.Abstractions.dll for Fable plugins, skipping this assembly. 
> Original error: The exception has been reported. This internal exception should 
> now be caught at an error recovery point on the stack. Original message: The 
> type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You 
> must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.ViewFeatures.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.dll for Fable plugins, skipping this assembly. Original error: The 
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.Core.dll for Fable plugins, skipping this assembly. Original error: 
> The exception has been reported. This internal exception should now be caught at
> an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Http.Abstractions.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.Forms.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.Endpoints.dll for Fable plugins, skipping this assembly. 
> Original error: The exception has been reported. This internal exception should 
> now be caught at an error recovery point on the stack. Original message: The 
> type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You 
> must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.dll for Fable plugins, skipping this assembly. Original error: 
> The exception has been reported. This internal exception should now be caught at
> an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ 
> │ Started Fable compilation...
> │ 
> │ Fable compilation finished in 9619ms
> │ 
> │ .\deps\spiral\lib\spiral\sm.fsx(38,20): (38,49) warning 
> FABLE: CultureInfo argument is ignored
> │ .\deps\spiral\lib\spiral\sm.fsx(307,20): (307,51) warning 
> FABLE: CultureInfo argument is ignored
> │ polyglot/scripts/core.ps1/ResolveLink #4 / Path: 
> C:\home\git\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target:
> / path_target: C:\home\git\polyglot / parent: 
> C:\home\git\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot
> │ spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: 
> C:\home\git\polyglot\target\Builder\cube / ProjectName: cube / Language: py / 
> Runtime:  / root: C:\home\git\polyglot
> │ Fable 5.0.0-alpha.9: F# to Python compiler (status: beta)
> │ 
> │ Thanks to the contributor! @ritcoder
> │ Stand with Ukraine! https://standwithukraine.com.ua/
> │ 
> │ Parsing target\Builder\cube\cube.fsproj...
> │ Project and references (14 source files) parsed in 22370ms
> │ 
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.JSInt
> erop.dll for Fable plugins, skipping this assembly. Original error: The 
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Routing.dll for Fable plugins, skipping this assembly. Original error: The
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Routing.Abstractions.dll for Fable plugins, skipping this assembly. 
> Original error: The exception has been reported. This internal exception should 
> now be caught at an error recovery point on the stack. Original message: The 
> type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You 
> must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.ViewFeatures.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.dll for Fable plugins, skipping this assembly. Original error: The 
> exception has been reported. This internal exception should now be caught at an 
> error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Mvc.Core.dll for Fable plugins, skipping this assembly. Original error: 
> The exception has been reported. This internal exception should now be caught at
> an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Http.Abstractions.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.Forms.dll for Fable plugins, skipping this assembly. Original 
> error: The exception has been reported. This internal exception should now be 
> caught at an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.Endpoints.dll for Fable plugins, skipping this assembly. 
> Original error: The exception has been reported. This internal exception should 
> now be caught at an error recovery point on the stack. Original message: The 
> type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You 
> must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ Could not scan C:/Program 
> Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNe
> tCore.Components.dll for Fable plugins, skipping this assembly. Original error: 
> The exception has been reported. This internal exception should now be caught at
> an error recovery point on the stack. Original message: The type 
> 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must 
> add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, 
> Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
> │ 
> │ Started Fable compilation...
> │ 
> │ Fable compilation finished in 10177ms
> │ 
> │ .\deps\spiral\lib\spiral\sm.fsx(38,20): (38,49) warning 
> FABLE: CultureInfo argument is ignored
> │ .\deps\spiral\lib\spiral\sm.fsx(307,20): (307,51) warning 
> FABLE: CultureInfo argument is ignored
> │ polyglot/apps/spiral/temp/cube/build.ps1 / $targetDir: 
> C:\home\git\polyglot\target\Builder\cube / $projectName: cube / $env:CI:''
> │ bun install v1.2.7 (5c0fa6dc)
> │ 
> │ Checked 11 installs across 13 packages (no changes) [52.00ms]
> │ [INFO]: 🎯  Checking for the Wasm target...
> │ [INFO]: 🌀  Compiling to Wasm...
> │ warning: 
> C:\home\git\polyglot\apps\chat\contract\tests\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> C:\home\git\polyglot\examples\rust\exercism\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: C:\home\git\polyglot\lib\math\Cargo.toml: the 
> cargo feature `edition2024` has been stabilized in the 1.85 release and is no 
> longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: C:\home\git\polyglot\workspace\Cargo.toml: the 
> cargo feature `edition2024` has been stabilized in the 1.85 release and is no 
> longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> C:\home\git\polyglot\apps\spiral\temp\extension\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> C:\home\git\polyglot\apps\chat\contract\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: C:\home\git\polyglot\apps\plot\Cargo.toml: the 
> cargo feature `edition2024` has been stabilized in the 1.85 release and is no 
> longer necessary to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> C:\home\git\polyglot\apps\spiral\temp\cube\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │ warning: 
> C:\home\git\polyglot\apps\spiral\temp\test\Cargo.toml: the cargo feature 
> `edition2024` has been stabilized in the 1.85 release and is no longer necessary
> to be listed in the manifest
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> d for more information about using this feature.
> │    Compiling spiral_temp_extension v0.0.1 
> (C:\home\git\polyglot\apps\spiral\temp\extension)
> │     Finished `dev` profile [unoptimized + debuginfo] 
> target(s) in 5.96s
> │ [INFO]: ⬇️  Installing wasm-bindgen...
> │ [INFO]: Optional field missing from Cargo.toml: 
> 'description'. This is not necessary, but recommended
> │ [INFO]: ✨   Done in 7.01s
> │ [INFO]: 📦   Your wasm pkg is ready to publish at 
> C:\home\git\polyglot\apps\spiral\temp\extension\pkg.
> │ ▲ [WARNING] "import.meta" is not available with the 
> "iife" output format and will be empty [empty-import-meta]
> │ 
> │     pkg/spiral_temp_extension.js:1445:66:
> │       1445 │ ...ath = new 
> URL('spiral_temp_extension_bg.wasm', import.meta.url);
> │            ╵
> ~~~~~~~~~~~
> │ 
> │   You need to set the output format to "esm" for 
> "import.meta" to work correctly.
> │ 
> │ 1 warning
> │ 
> │   dist\spiral_temp_extension_bg-G3V32LGU.wasm   4.5mb 
> ⚠️
> │   dist\devtools.js                             29.0kb
> │   dist\content_script.js                       26.4kb
> │   dist\service_worker.js                        2.2kb
> │ 
> │ ⚡ Done in 51ms
> │ $ playwright test
> │ 
> │ Running 3 tests using 3 workers
> │ 
> │ [1/3] [Desktop Chrome] › extension.spec.ts:3:5 › popup 
> localhost
> │ [2/3] [Desktop Chrome] › extension.spec.ts:10:5 › popup 
> extension
> │ [3/3] [Desktop Chrome] › extension.spec.ts:15:5 › libgen
> │   3 passed (8.6s)
> │ 
> │ To open last HTML report run:
> │ 
> │   npx playwright show-report
> │ 
> │ 00:00:00 d #1 spiral.main / { args = 
> Array(MutCell(["dib", "--path", "build.dib"])) }
> │ 00:00:00 d #2 runtime.execute_with_options / { 
> file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", 
> "c:/home/git/polyglot/apps/spiral/temp/test/build.dib", "--output-path", 
> "c:/home/git/polyglot/apps/spiral/temp/test/build.dib.ipynb"]; options = { 
> command = dotnet repl --exit-after-run --run 
> "c:/home/git/polyglot/apps/spiral/temp/test/build.dib" --output-path 
> "c:/home/git/polyglot/apps/spiral/temp/test/build.dib.ipynb"; cancellation_token
> = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), 
> ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; 
> working_directory = None } }
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ # test
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## include scripts
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### include notebook core
> │ > 
> │ > ── pwsh 
> ────────────────────────────────────────────────────────────────────────
> │ > . ../../../../scripts/nbs_header.ps1
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### Include core functions script
> │ > 
> │ > ── pwsh 
> ────────────────────────────────────────────────────────────────────────
> │ > . ../../../../scripts/core.ps1
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### Include spiral library
> │ > 
> │ > ── pwsh 
> ────────────────────────────────────────────────────────────────────────
> │ > . ../../../../deps/spiral/lib/spiral/lib.ps1
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## execute project commands
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### run notebook with retries using 
> spiral supervisor
> │ > 
> │ > ── pwsh 
> ────────────────────────────────────────────────────────────────────────
> │ > { . 
> ../../../../deps/spiral/workspace/target/release/spiral$(_exe) dib --path 
> │ > test.dib --retries 3 } | Invoke-Block
> │ > 
> │ > ── [ 16.00s - stdout ] 
> ─────────────────────────────────────────────────────────
> │ > │ 00:00:00 d #1 spiral.main / { args
> = 
> │ > Array(MutCell(["dib", "--path", "test.dib", "--retries", 
> "3"])) }
> │ > │ 00:00:00 d #2 
> runtime.execute_with_options / { 
> │ > file_name = dotnet; arguments = ["repl", 
> "--exit-after-run", "--run", 
> │ > "c:/home/git/polyglot/apps/spiral/temp/test/test.dib", 
> "--output-path", 
> │ > 
> "c:/home/git/polyglot/apps/spiral/temp/test/test.dib.ipynb"]; options = { 
> │ > command = dotnet repl --exit-after-run --run 
> │ > "c:/home/git/polyglot/apps/spiral/temp/test/test.dib" 
> --output-path 
> │ > 
> "c:/home/git/polyglot/apps/spiral/temp/test/test.dib.ipynb"; cancellation_token 
> │ > = None; environment_variables = 
> Array(MutCell([("TRACE_LEVEL", "Verbose"), 
> │ > ("AUTOMATION", "True")])); on_line = None; stdin = None; 
> trace = false; 
> │ > working_directory = None } }
> │ > │ > 
> │ > │ > ── markdown 
> │ > 
> ────────────────────────────────────────────────────────────────────
> │ > │ > │ # test (Polyglot)
> │ > │ > 
> │ > │ > ── spiral 
> │ > 
> ──────────────────────────────────────────────────────────────────────
> │ > │ > //// test
> │ > │ > 
> │ > │ > open testing
> │ > │ > 
> │ > │ > ── spiral 
> │ > 
> ──────────────────────────────────────────────────────────────────────
> │ > │ > //// test
> │ > │ > //// print_code
> │ > │ > 
> │ > │ > inl jp = [[ "J"; "P" ]]
> │ > │ > inl tf = [[ "T"; "F" ]]
> │ > │ > inl sn = [[ "S"; "N" ]]
> │ > │ > inl ie = [[ "I"; "E" ]]
> │ > │ > 
> │ > │ > (ie, ([[]] : _ string))
> │ > │ > ||> listm.foldBack fun ie' acc =>
> │ > │ >     inl ssnn acc' jp' =
> │ > │ >         (sn, acc')
> │ > │ >         ||> listm.foldBack fun sn' 
> acc' =>
> │ > │ >             inl c' ie' sn' tf' jp' =
> │ > │ >                 
> $'$"{!ie'}{!sn'}{!tf'}{!jp'}"'
> │ > │ > 
> │ > │ >             if listm.length acc' % 
> 4i32 = 2 then
> │ > │ >                 (tf, acc')
> │ > │ >                 ||> listm.foldBack fun
> tf' acc'' =>
> │ > │ >                     c' ie' sn' tf' jp'
> :: acc''
> │ > │ >             else
> │ > │ >                 (acc', tf)
> │ > │ >                 ||> listm.fold fun 
> acc'' tf' =>
> │ > │ >                     c' ie' sn' tf' jp'
> :: acc''
> │ > │ >     if acc = [[]] then
> │ > │ >         (acc, jp)
> │ > │ >         ||> listm.fold fun acc' jp' =>
> │ > │ >             ssnn acc' jp'
> │ > │ >     else
> │ > │ >         (jp, acc)
> │ > │ >         ||> listm.foldBack fun jp' 
> acc' =>
> │ > │ >             ssnn acc' jp'
> │ > │ > |> listm'.box
> │ > │ > |> listm'.to_array'
> │ > │ > |> _assert_eq' ;[[
> │ > │ >     "ISTJ"; "ISFJ"; "INFJ"; "INTJ"
> │ > │ >     "ISTP"; "ISFP"; "INFP"; "INTP"
> │ > │ >     "ESTP"; "ESFP"; "ENFP"; "ENTP"
> │ > │ >     "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"
> │ > │ > ]]
> │ > │ > 
> │ > │ > ── [ 1.33s - stdout ] 
> │ > ──────────────────────────────────────────────────────────
> │ > │ > │ type Mut0 = 
> {mutable l0 : string}
> │ > │ > │ let rec method1 (v0
> : bool) : bool =
> │ > │ > │     v0
> │ > │ > │ and method2 () : 
> string =
> │ > │ > │     let v0 : string
> = ""
> │ > │ > │     v0
> │ > │ > │ and closure0 (v0 : 
> Mut0, v1 : string) ()
> │ > : unit =
> │ > │ > │     let v2 : string
> = v0.l0
> │ > │ > │     let v4 : string
> = v2 + v1 
> │ > │ > │     v0.l0 <- v4
> │ > │ > │     ()
> │ > │ > │ and closure1 (v0 : 
> string) () : unit =
> │ > │ > │     let v1 : 
> (string -> unit) = 
> │ > System.Console.WriteLine
> │ > │ > │     v1 v0
> │ > │ > │ and method0 () : 
> unit =
> │ > │ > │     let v0 : string
> = "E"
> │ > │ > │     let v1 : string
> = "N"
> │ > │ > │     let v2 : string
> = "T"
> │ > │ > │     let v3 : string
> = "J"
> │ > │ > │     let v4 : string
> = 
> │ > $"{v0}{v1}{v2}{v3}"
> │ > │ > │     let v5 : string
> = "F"
> │ > │ > │     let v6 : string
> = 
> │ > $"{v0}{v1}{v5}{v3}"
> │ > │ > │     let v7 : string
> = "S"
> │ > │ > │     let v8 : string
> = 
> │ > $"{v0}{v7}{v5}{v3}"
> │ > │ > │     let v9 : string
> = 
> │ > $"{v0}{v7}{v2}{v3}"
> │ > │ > │     let v10 : 
> string = "P"
> │ > │ > │     let v11 : 
> string = 
> │ > $"{v0}{v1}{v2}{v10}"
> │ > │ > │     let v12 : 
> string = 
> │ > $"{v0}{v1}{v5}{v10}"
> │ > │ > │     let v13 : 
> string = 
> │ > $"{v0}{v7}{v5}{v10}"
> │ > │ > │     let v14 : 
> string = 
> │ > $"{v0}{v7}{v2}{v10}"
> │ > │ > │     let v15 : 
> string = "I"
> │ > │ > │     let v16 : 
> string = 
> │ > $"{v15}{v1}{v2}{v10}"
> │ > │ > │     let v17 : 
> string = 
> │ > $"{v15}{v1}{v5}{v10}"
> │ > │ > │     let v18 : 
> string = 
> │ > $"{v15}{v7}{v5}{v10}"
> │ > │ > │     let v19 : 
> string = 
> │ > $"{v15}{v7}{v2}{v10}"
> │ > │ > │     let v20 : 
> string = 
> │ > $"{v15}{v1}{v2}{v3}"
> │ > │ > │     let v21 : 
> string = 
> │ > $"{v15}{v1}{v5}{v3}"
> │ > │ > │     let v22 : 
> string = 
> │ > $"{v15}{v7}{v5}{v3}"
> │ > │ > │     let v23 : 
> string = 
> │ > $"{v15}{v7}{v2}{v3}"
> │ > │ > │     let v24 : 
> string list = []
> │ > │ > │     let v26 : 
> string list = v4 :: v24 
> │ > │ > │     let v30 : 
> string list = v6 :: v26 
> │ > │ > │     let v34 : 
> string list = v8 :: v30 
> │ > │ > │     let v38 : 
> string list = v9 :: v34 
> │ > │ > │     let v42 : 
> string list = v11 :: v38 
> │ > │ > │     let v46 : 
> string list = v12 :: v42 
> │ > │ > │     let v50 : 
> string list = v13 :: v46 
> │ > │ > │     let v54 : 
> string list = v14 :: v50 
> │ > │ > │     let v58 : 
> string list = v16 :: v54 
> │ > │ > │     let v62 : 
> string list = v17 :: v58 
> │ > │ > │     let v66 : 
> string list = v18 :: v62 
> │ > │ > │     let v70 : 
> string list = v19 :: v66 
> │ > │ > │     let v74 : 
> string list = v20 :: v70 
> │ > │ > │     let v78 : 
> string list = v21 :: v74 
> │ > │ > │     let v82 : 
> string list = v22 :: v78 
> │ > │ > │     let v86 : 
> string list = v23 :: v82 
> │ > │ > │     let v90 : 
> (string list -> (string 
> │ > [])) = List.toArray
> │ > │ > │     let v91 : 
> (string []) = v90 v86
> │ > │ > │     let v94 : 
> string = "ISTJ"
> │ > │ > │     let v95 : 
> string = "ISFJ"
> │ > │ > │     let v96 : 
> string = "INFJ"
> │ > │ > │     let v97 : 
> string = "INTJ"
> │ > │ > │     let v98 : 
> string = "ISTP"
> │ > │ > │     let v99 : 
> string = "ISFP"
> │ > │ > │     let v100 : 
> string = "INFP"
> │ > │ > │     let v101 : 
> string = "INTP"
> │ > │ > │     let v102 : 
> string = "ESTP"
> │ > │ > │     let v103 : 
> string = "ESFP"
> │ > │ > │     let v104 : 
> string = "ENFP"
> │ > │ > │     let v105 : 
> string = "ENTP"
> │ > │ > │     let v106 : 
> string = "ESTJ"
> │ > │ > │     let v107 : 
> string = "ESFJ"
> │ > │ > │     let v108 : 
> string = "ENFJ"
> │ > │ > │     let v109 : 
> string = "ENTJ"
> │ > │ > │     let v110 : 
> (string []) = [|v94; v95;
> │ > v96; v97; v98; v99; 
> │ > │ > v100; v101; v102; v103; v104; v105; 
> v106; v107; v108; 
> │ > v109|]
> │ > │ > │     let v112 : bool
> = v91 = v110 
> │ > │ > │     let v116 : bool
> =
> │ > │ > │         if v112 
> then
> │ > │ > │             true
> │ > │ > │         else
> │ > │ > │             
> method1(v112)
> │ > │ > │     let v117 : 
> string = method2()
> │ > │ > │     let v118 : Mut0
> = {l0 = v117} : Mut0
> │ > │ > │     let v121 : 
> string = "{ "
> │ > │ > │     let v122 : 
> string = $"{v121}"
> │ > │ > │     let v130 : unit
> = ()
> │ > │ > │     let v131 : 
> (unit -> unit) = 
> │ > closure0(v118, v122)
> │ > │ > │     let v132 : unit
> = (fun () -> v131 
> │ > (); v130) ()
> │ > │ > │     let v140 : 
> string = "name"
> │ > │ > │     let v141 : 
> string = $"{v140}"
> │ > │ > │     let v149 : unit
> = ()
> │ > │ > │     let v150 : 
> (unit -> unit) = 
> │ > closure0(v118, v141)
> │ > │ > │     let v151 : unit
> = (fun () -> v150 
> │ > (); v149) ()
> │ > │ > │     let v159 : 
> string = " = "
> │ > │ > │     let v160 : 
> string = $"{v159}"
> │ > │ > │     let v168 : unit
> = ()
> │ > │ > │     let v169 : 
> (unit -> unit) = 
> │ > closure0(v118, v160)
> │ > │ > │     let v170 : unit
> = (fun () -> v169 
> │ > (); v168) ()
> │ > │ > │     let v178 : 
> string = "__assert_eq'"
> │ > │ > │     let v179 : 
> string = $"{v178}"
> │ > │ > │     let v187 : unit
> = ()
> │ > │ > │     let v188 : 
> (unit -> unit) = 
> │ > closure0(v118, v179)
> │ > │ > │     let v189 : unit
> = (fun () -> v188 
> │ > (); v187) ()
> │ > │ > │     let v197 : 
> string = "; "
> │ > │ > │     let v198 : 
> string = $"{v197}"
> │ > │ > │     let v206 : unit
> = ()
> │ > │ > │     let v207 : 
> (unit -> unit) = 
> │ > closure0(v118, v198)
> │ > │ > │     let v208 : unit
> = (fun () -> v207 
> │ > (); v206) ()
> │ > │ > │     let v216 : 
> string = "actual"
> │ > │ > │     let v217 : 
> string = $"{v216}"
> │ > │ > │     let v225 : unit
> = ()
> │ > │ > │     let v226 : 
> (unit -> unit) = 
> │ > closure0(v118, v217)
> │ > │ > │     let v227 : unit
> = (fun () -> v226 
> │ > (); v225) ()
> │ > │ > │     let v234 : 
> string = $"{v159}"
> │ > │ > │     let v242 : unit
> = ()
> │ > │ > │     let v243 : 
> (unit -> unit) = 
> │ > closure0(v118, v234)
> │ > │ > │     let v244 : unit
> = (fun () -> v243 
> │ > (); v242) ()
> │ > │ > │     let v251 : 
> string = $"%A{v91}"
> │ > │ > │     let v255 : 
> string = $"{v251}"
> │ > │ > │     let v263 : unit
> = ()
> │ > │ > │     let v264 : 
> (unit -> unit) = 
> │ > closure0(v118, v255)
> │ > │ > │     let v265 : unit
> = (fun () -> v264 
> │ > (); v263) ()
> │ > │ > │     let v272 : 
> string = $"{v197}"
> │ > │ > │     let v280 : unit
> = ()
> │ > │ > │     let v281 : 
> (unit -> unit) = 
> │ > closure0(v118, v272)
> │ > │ > │     let v282 : unit
> = (fun () -> v281 
> │ > (); v280) ()
> │ > │ > │     let v290 : 
> string = "expected"
> │ > │ > │     let v291 : 
> string = $"{v290}"
> │ > │ > │     let v299 : unit
> = ()
> │ > │ > │     let v300 : 
> (unit -> unit) = 
> │ > closure0(v118, v291)
> │ > │ > │     let v301 : unit
> = (fun () -> v300 
> │ > (); v299) ()
> │ > │ > │     let v308 : 
> string = $"{v159}"
> │ > │ > │     let v316 : unit
> = ()
> │ > │ > │     let v317 : 
> (unit -> unit) = 
> │ > closure0(v118, v308)
> │ > │ > │     let v318 : unit
> = (fun () -> v317 
> │ > (); v316) ()
> │ > │ > │     let v325 : 
> string = $"%A{v110}"
> │ > │ > │     let v329 : 
> string = $"{v325}"
> │ > │ > │     let v337 : unit
> = ()
> │ > │ > │     let v338 : 
> (unit -> unit) = 
> │ > closure0(v118, v329)
> │ > │ > │     let v339 : unit
> = (fun () -> v338 
> │ > (); v337) ()
> │ > │ > │     let v347 : 
> string = " }"
> │ > │ > │     let v348 : 
> string = $"{v347}"
> │ > │ > │     let v356 : unit
> = ()
> │ > │ > │     let v357 : 
> (unit -> unit) = 
> │ > closure0(v118, v348)
> │ > │ > │     let v358 : unit
> = (fun () -> v357 
> │ > (); v356) ()
> │ > │ > │     let v364 : 
> string = v118.l0
> │ > │ > │     let v366 : unit
> = ()
> │ > │ > │     let v367 : 
> (unit -> unit) = 
> │ > closure1(v364)
> │ > │ > │     let v368 : unit
> = (fun () -> v367 
> │ > (); v366) ()
> │ > │ > │     let v370 : bool
> = v116 = false
> │ > │ > │     if v370 then
> │ > │ > │         
> failwith<unit> v364
> │ > │ > │ method0()
> │ > │ > │ 
> │ > │ > │ { name = 
> __assert_eq'; actual = 
> │ > [|"ISTJ"; "ISFJ"; "INFJ"; 
> │ > │ > "INTJ"; "ISTP"; "ISFP"; "INFP"; 
> "INTP"; "ESTP"; "ESFP";
> │ > │ > │   "ENFP"; "ENTP"; 
> "ESTJ"; "ESFJ"; 
> │ > "ENFJ"; "ENTJ"|]; expected 
> │ > │ > = [|"ISTJ"; "ISFJ"; "INFJ"; "INTJ"; 
> "ISTP"; "ISFP"; "INFP";
> │ > "INTP"; "ESTP"; 
> │ > │ > "ESFP";
> │ > │ > │   "ENFP"; "ENTP"; 
> "ESTJ"; "ESFJ"; 
> │ > "ENFJ"; "ENTJ"|] }
> │ > │ > │ 
> │ > │ > 
> │ > │ > ── spiral 
> │ > 
> ──────────────────────────────────────────────────────────────────────
> │ > │ > //// test
> │ > │ > //// print_code
> │ > │ > 
> │ > │ > inl i_e =
> │ > │ >     listm'.replicate 8i32 "I" ++ 
> listm'.replicate 8i32 "E"
> │ > │ > inl s_n =
> │ > │ >     [[ "S"; "S"; "N"; "N" ]]
> │ > │ >     |> listm'.replicate 4i32
> │ > │ >     |> listm'.collect id
> │ > │ > inl t_f =
> │ > │ >     [[ "T"; "F"; "F"; "T" ]]
> │ > │ >     |> listm'.replicate 4i32
> │ > │ >     |> listm'.collect id
> │ > │ > inl j_p =
> │ > │ >     [[ "J"; "J"; "J"; "J" ]]
> │ > │ >     ++ [[ "P"; "P"; "P"; "P" ]]
> │ > │ >     ++ [[ "P"; "P"; "P"; "P" ]]
> │ > │ >     ++ [[ "J"; "J"; "J"; "J" ]]
> │ > │ > inl mbti =
> │ > │ >     listm'.map4 (fun a b c d => 
> $'$"{!a}{!b}{!c}{!d}"') i_e
> │ > s_n t_f j_p
> │ > │ > 
> │ > │ > mbti
> │ > │ > |> listm'.box
> │ > │ > |> listm'.to_array'
> │ > │ > |> _assert_eq' ;[[
> │ > │ >     "ISTJ"; "ISFJ"; "INFJ"; "INTJ"
> │ > │ >     "ISTP"; "ISFP"; "INFP"; "INTP"
> │ > │ >     "ESTP"; "ESFP"; "ENFP"; "ENTP"
> │ > │ >     "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"
> │ > │ > ]]
> │ > │ > 
> │ > │ > ── [ 383.14ms - stdout ] 
> │ > ───────────────────────────────────────────────────────
> │ > │ > │ type Mut0 = 
> {mutable l0 : string}
> │ > │ > │ let rec method1 (v0
> : bool) : bool =
> │ > │ > │     v0
> │ > │ > │ and method2 () : 
> string =
> │ > │ > │     let v0 : string
> = ""
> │ > │ > │     v0
> │ > │ > │ and closure0 (v0 : 
> Mut0, v1 : string) ()
> │ > : unit =
> │ > │ > │     let v2 : string
> = v0.l0
> │ > │ > │     let v4 : string
> = v2 + v1 
> │ > │ > │     v0.l0 <- v4
> │ > │ > │     ()
> │ > │ > │ and closure1 (v0 : 
> string) () : unit =
> │ > │ > │     let v1 : 
> (string -> unit) = 
> │ > System.Console.WriteLine
> │ > │ > │     v1 v0
> │ > │ > │ and method0 () : 
> unit =
> │ > │ > │     let v0 : string
> = "I"
> │ > │ > │     let v1 : string
> = "S"
> │ > │ > │     let v2 : string
> = "T"
> │ > │ > │     let v3 : string
> = "J"
> │ > │ > │     let v4 : string
> = 
> │ > $"{v0}{v1}{v2}{v3}"
> │ > │ > │     let v5 : string
> = "F"
> │ > │ > │     let v6 : string
> = 
> │ > $"{v0}{v1}{v5}{v3}"
> │ > │ > │     let v7 : string
> = "N"
> │ > │ > │     let v8 : string
> = 
> │ > $"{v0}{v7}{v5}{v3}"
> │ > │ > │     let v9 : string
> = 
> │ > $"{v0}{v7}{v2}{v3}"
> │ > │ > │     let v10 : 
> string = "P"
> │ > │ > │     let v11 : 
> string = 
> │ > $"{v0}{v1}{v2}{v10}"
> │ > │ > │     let v12 : 
> string = 
> │ > $"{v0}{v1}{v5}{v10}"
> │ > │ > │     let v13 : 
> string = 
> │ > $"{v0}{v7}{v5}{v10}"
> │ > │ > │     let v14 : 
> string = 
> │ > $"{v0}{v7}{v2}{v10}"
> │ > │ > │     let v15 : 
> string = "E"
> │ > │ > │     let v16 : 
> string = 
> │ > $"{v15}{v1}{v2}{v10}"
> │ > │ > │     let v17 : 
> string = 
> │ > $"{v15}{v1}{v5}{v10}"
> │ > │ > │     let v18 : 
> string = 
> │ > $"{v15}{v7}{v5}{v10}"
> │ > │ > │     let v19 : 
> string = 
> │ > $"{v15}{v7}{v2}{v10}"
> │ > │ > │     let v20 : 
> string = 
> │ > $"{v15}{v1}{v2}{v3}"
> │ > │ > │     let v21 : 
> string = 
> │ > $"{v15}{v1}{v5}{v3}"
> │ > │ > │     let v22 : 
> string = 
> │ > $"{v15}{v7}{v5}{v3}"
> │ > │ > │     let v23 : 
> string = 
> │ > $"{v15}{v7}{v2}{v3}"
> │ > │ > │     let v24 : 
> string list = []
> │ > │ > │     let v26 : 
> string list = v23 :: v24 
> │ > │ > │     let v30 : 
> string list = v22 :: v26 
> │ > │ > │     let v34 : 
> string list = v21 :: v30 
> │ > │ > │     let v38 : 
> string list = v20 :: v34 
> │ > │ > │     let v42 : 
> string list = v19 :: v38 
> │ > │ > │     let v46 : 
> string list = v18 :: v42 
> │ > │ > │     let v50 : 
> string list = v17 :: v46 
> │ > │ > │     let v54 : 
> string list = v16 :: v50 
> │ > │ > │     let v58 : 
> string list = v14 :: v54 
> │ > │ > │     let v62 : 
> string list = v13 :: v58 
> │ > │ > │     let v66 : 
> string list = v12 :: v62 
> │ > │ > │     let v70 : 
> string list = v11 :: v66 
> │ > │ > │     let v74 : 
> string list = v9 :: v70 
> │ > │ > │     let v78 : 
> string list = v8 :: v74 
> │ > │ > │     let v82 : 
> string list = v6 :: v78 
> │ > │ > │     let v86 : 
> string list = v4 :: v82 
> │ > │ > │     let v90 : 
> (string list -> (string 
> │ > [])) = List.toArray
> │ > │ > │     let v91 : 
> (string []) = v90 v86
> │ > │ > │     let v94 : 
> string = "ISTJ"
> │ > │ > │     let v95 : 
> string = "ISFJ"
> │ > │ > │     let v96 : 
> string = "INFJ"
> │ > │ > │     let v97 : 
> string = "INTJ"
> │ > │ > │     let v98 : 
> string = "ISTP"
> │ > │ > │     let v99 : 
> string = "ISFP"
> │ > │ > │     let v100 : 
> string = "INFP"
> │ > │ > │     let v101 : 
> string = "INTP"
> │ > │ > │     let v102 : 
> string = "ESTP"
> │ > │ > │     let v103 : 
> string = "ESFP"
> │ > │ > │     let v104 : 
> string = "ENFP"
> │ > │ > │     let v105 : 
> string = "ENTP"
> │ > │ > │     let v106 : 
> string = "ESTJ"
> │ > │ > │     let v107 : 
> string = "ESFJ"
> │ > │ > │     let v108 : 
> string = "ENFJ"
> │ > │ > │     let v109 : 
> string = "ENTJ"
> │ > │ > │     let v110 : 
> (string []) = [|v94; v95;
> │ > v96; v97; v98; v99; 
> │ > │ > v100; v101; v102; v103; v104; v105; 
> v106; v107; v108; 
> │ > v109|]
> │ > │ > │     let v112 : bool
> = v91 = v110 
> │ > │ > │     let v116 : bool
> =
> │ > │ > │         if v112 
> then
> │ > │ > │             true
> │ > │ > │         else
> │ > │ > │             
> method1(v112)
> │ > │ > │     let v117 : 
> string = method2()
> │ > │ > │     let v118 : Mut0
> = {l0 = v117} : Mut0
> │ > │ > │     let v121 : 
> string = "{ "
> │ > │ > │     let v122 : 
> string = $"{v121}"
> │ > │ > │     let v130 : unit
> = ()
> │ > │ > │     let v131 : 
> (unit -> unit) = 
> │ > closure0(v118, v122)
> │ > │ > │     let v132 : unit
> = (fun () -> v131 
> │ > (); v130) ()
> │ > │ > │     let v140 : 
> string = "name"
> │ > │ > │     let v141 : 
> string = $"{v140}"
> │ > │ > │     let v149 : unit
> = ()
> │ > │ > │     let v150 : 
> (unit -> unit) = 
> │ > closure0(v118, v141)
> │ > │ > │     let v151 : unit
> = (fun () -> v150 
> │ > (); v149) ()
> │ > │ > │     let v159 : 
> string = " = "
> │ > │ > │     let v160 : 
> string = $"{v159}"
> │ > │ > │     let v168 : unit
> = ()
> │ > │ > │     let v169 : 
> (unit -> unit) = 
> │ > closure0(v118, v160)
> │ > │ > │     let v170 : unit
> = (fun () -> v169 
> │ > (); v168) ()
> │ > │ > │     let v178 : 
> string = "__assert_eq'"
> │ > │ > │     let v179 : 
> string = $"{v178}"
> │ > │ > │     let v187 : unit
> = ()
> │ > │ > │     let v188 : 
> (unit -> unit) = 
> │ > closure0(v118, v179)
> │ > │ > │     let v189 : unit
> = (fun () -> v188 
> │ > (); v187) ()
> │ > │ > │     let v197 : 
> string = "; "
> │ > │ > │     let v198 : 
> string = $"{v197}"
> │ > │ > │     let v206 : unit
> = ()
> │ > │ > │     let v207 : 
> (unit -> unit) = 
> │ > closure0(v118, v198)
> │ > │ > │     let v208 : unit
> = (fun () -> v207 
> │ > (); v206) ()
> │ > │ > │     let v216 : 
> string = "actual"
> │ > │ > │     let v217 : 
> string = $"{v216}"
> │ > │ > │     let v225 : unit
> = ()
> │ > │ > │     let v226 : 
> (unit -> unit) = 
> │ > closure0(v118, v217)
> │ > │ > │     let v227 : unit
> = (fun () -> v226 
> │ > (); v225) ()
> │ > │ > │     let v234 : 
> string = $"{v159}"
> │ > │ > │     let v242 : unit
> = ()
> │ > │ > │     let v243 : 
> (unit -> unit) = 
> │ > closure0(v118, v234)
> │ > │ > │     let v244 : unit
> = (fun () -> v243 
> │ > (); v242) ()
> │ > │ > │     let v251 : 
> string = $"%A{v91}"
> │ > │ > │     let v255 : 
> string = $"{v251}"
> │ > │ > │     let v263 : unit
> = ()
> │ > │ > │     let v264 : 
> (unit -> unit) = 
> │ > closure0(v118, v255)
> │ > │ > │     let v265 : unit
> = (fun () -> v264 
> │ > (); v263) ()
> │ > │ > │     let v272 : 
> string = $"{v197}"
> │ > │ > │     let v280 : unit
> = ()
> │ > │ > │     let v281 : 
> (unit -> unit) = 
> │ > closure0(v118, v272)
> │ > │ > │     let v282 : unit
> = (fun () -> v281 
> │ > (); v280) ()
> │ > │ > │     let v290 : 
> string = "expected"
> │ > │ > │     let v291 : 
> string = $"{v290}"
> │ > │ > │     let v299 : unit
> = ()
> │ > │ > │     let v300 : 
> (unit -> unit) = 
> │ > closure0(v118, v291)
> │ > │ > │     let v301 : unit
> = (fun () -> v300 
> │ > (); v299) ()
> │ > │ > │     let v308 : 
> string = $"{v159}"
> │ > │ > │     let v316 : unit
> = ()
> │ > │ > │     let v317 : 
> (unit -> unit) = 
> │ > closure0(v118, v308)
> │ > │ > │     let v318 : unit
> = (fun () -> v317 
> │ > (); v316) ()
> │ > │ > │     let v325 : 
> string = $"%A{v110}"
> │ > │ > │     let v329 : 
> string = $"{v325}"
> │ > │ > │     let v337 : unit
> = ()
> │ > │ > │     let v338 : 
> (unit -> unit) = 
> │ > closure0(v118, v329)
> │ > │ > │     let v339 : unit
> = (fun () -> v338 
> │ > (); v337) ()
> │ > │ > │     let v347 : 
> string = " }"
> │ > │ > │     let v348 : 
> string = $"{v347}"
> │ > │ > │     let v356 : unit
> = ()
> │ > │ > │     let v357 : 
> (unit -> unit) = 
> │ > closure0(v118, v348)
> │ > │ > │     let v358 : unit
> = (fun () -> v357 
> │ > (); v356) ()
> │ > │ > │     let v364 : 
> string = v118.l0
> │ > │ > │     let v366 : unit
> = ()
> │ > │ > │     let v367 : 
> (unit -> unit) = 
> │ > closure1(v364)
> │ > │ > │     let v368 : unit
> = (fun () -> v367 
> │ > (); v366) ()
> │ > │ > │     let v370 : bool
> = v116 = false
> │ > │ > │     if v370 then
> │ > │ > │         
> failwith<unit> v364
> │ > │ > │ method0()
> │ > │ > │ 
> │ > │ > │ { name = 
> __assert_eq'; actual = 
> │ > [|"ISTJ"; "ISFJ"; "INFJ"; 
> │ > │ > "INTJ"; "ISTP"; "ISFP"; "INFP"; 
> "INTP"; "ESTP"; "ESFP";
> │ > │ > │   "ENFP"; "ENTP"; 
> "ESTJ"; "ESFJ"; 
> │ > "ENFJ"; "ENTJ"|]; expected 
> │ > │ > = [|"ISTJ"; "ISFJ"; "INFJ"; "INTJ"; 
> "ISTP"; "ISFP"; "INFP";
> │ > "INTP"; "ESTP"; 
> │ > │ > "ESFP";
> │ > │ > │   "ENFP"; "ENTP"; 
> "ESTJ"; "ESFJ"; 
> │ > "ENFJ"; "ENTJ"|] }
> │ > │ > │ 
> │ > │ > 
> │ > │ > ── spiral 
> │ > 
> ──────────────────────────────────────────────────────────────────────
> │ > │ > //// test
> │ > │ > //// print_code
> │ > │ > 
> │ > │ > fun i =>
> │ > │ >     inl i_e =
> │ > │ >         if i < 8
> │ > │ >         then "I"
> │ > │ >         else "E"
> │ > │ >     inl s_n = 
> │ > │ >         inl group = (i / 2) % 2
> │ > │ >         if group = 0
> │ > │ >         then "S"
> │ > │ >         else "N"
> │ > │ >     inl t_f =
> │ > │ >         match i % 4 with
> │ > │ >         | 0 => "T"
> │ > │ >         | 1 => "F"
> │ > │ >         | 2 => "F"
> │ > │ >         | _ => "T"
> │ > │ >     inl j_p =
> │ > │ >         if i < 4
> │ > │ >         then "J"
> │ > │ >         elif i < 12
> │ > │ >         then "P"
> │ > │ >         else "J"
> │ > │ >     $'$"{!i_e}{!s_n}{!t_f}{!j_p}"'
> │ > │ > |> listm.init 16i32
> │ > │ > |> listm'.box
> │ > │ > |> listm'.to_array'
> │ > │ > |> _assert_eq' ;[[
> │ > │ >     "ISTJ"; "ISFJ"; "INFJ"; "INTJ"
> │ > │ >     "ISTP"; "ISFP"; "INFP"; "INTP"
> │ > │ >     "ESTP"; "ESFP"; "ENFP"; "ENTP"
> │ > │ >     "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"
> │ > │ > ]]
> │ > │ > 
> │ > │ > ── [ 368.96ms - stdout ] 
> │ > ───────────────────────────────────────────────────────
> │ > │ > │ type Mut0 = 
> {mutable l0 : string}
> │ > │ > │ let rec method1 (v0
> : bool) : bool =
> │ > │ > │     v0
> │ > │ > │ and method2 () : 
> string =
> │ > │ > │     let v0 : string
> = ""
> │ > │ > │     v0
> │ > │ > │ and closure0 (v0 : 
> Mut0, v1 : string) ()
> │ > : unit =
> │ > │ > │     let v2 : string
> = v0.l0
> │ > │ > │     let v4 : string
> = v2 + v1 
> │ > │ > │     v0.l0 <- v4
> │ > │ > │     ()
> │ > │ > │ and closure1 (v0 : 
> string) () : unit =
> │ > │ > │     let v1 : 
> (string -> unit) = 
> │ > System.Console.WriteLine
> │ > │ > │     v1 v0
> │ > │ > │ and method0 () : 
> unit =
> │ > │ > │     let v0 : string
> = "I"
> │ > │ > │     let v1 : string
> = "S"
> │ > │ > │     let v2 : string
> = "T"
> │ > │ > │     let v3 : string
> = "J"
> │ > │ > │     let v4 : string
> = 
> │ > $"{v0}{v1}{v2}{v3}"
> │ > │ > │     let v5 : string
> = "F"
> │ > │ > │     let v6 : string
> = 
> │ > $"{v0}{v1}{v5}{v3}"
> │ > │ > │     let v7 : string
> = "N"
> │ > │ > │     let v8 : string
> = 
> │ > $"{v0}{v7}{v5}{v3}"
> │ > │ > │     let v9 : string
> = 
> │ > $"{v0}{v7}{v2}{v3}"
> │ > │ > │     let v10 : 
> string = "P"
> │ > │ > │     let v11 : 
> string = 
> │ > $"{v0}{v1}{v2}{v10}"
> │ > │ > │     let v12 : 
> string = 
> │ > $"{v0}{v1}{v5}{v10}"
> │ > │ > │     let v13 : 
> string = 
> │ > $"{v0}{v7}{v5}{v10}"
> │ > │ > │     let v14 : 
> string = 
> │ > $"{v0}{v7}{v2}{v10}"
> │ > │ > │     let v15 : 
> string = "E"
> │ > │ > │     let v16 : 
> string = 
> │ > $"{v15}{v1}{v2}{v10}"
> │ > │ > │     let v17 : 
> string = 
> │ > $"{v15}{v1}{v5}{v10}"
> │ > │ > │     let v18 : 
> string = 
> │ > $"{v15}{v7}{v5}{v10}"
> │ > │ > │     let v19 : 
> string = 
> │ > $"{v15}{v7}{v2}{v10}"
> │ > │ > │     let v20 : 
> string = 
> │ > $"{v15}{v1}{v2}{v3}"
> │ > │ > │     let v21 : 
> string = 
> │ > $"{v15}{v1}{v5}{v3}"
> │ > │ > │     let v22 : 
> string = 
> │ > $"{v15}{v7}{v5}{v3}"
> │ > │ > │     let v23 : 
> string = 
> │ > $"{v15}{v7}{v2}{v3}"
> │ > │ > │     let v24 : 
> string list = []
> │ > │ > │     let v26 : 
> string list = v23 :: v24 
> │ > │ > │     let v30 : 
> string list = v22 :: v26 
> │ > │ > │     let v34 : 
> string list = v21 :: v30 
> │ > │ > │     let v38 : 
> string list = v20 :: v34 
> │ > │ > │     let v42 : 
> string list = v19 :: v38 
> │ > │ > │     let v46 : 
> string list = v18 :: v42 
> │ > │ > │     let v50 : 
> string list = v17 :: v46 
> │ > │ > │     let v54 : 
> string list = v16 :: v50 
> │ > │ > │     let v58 : 
> string list = v14 :: v54 
> │ > │ > │     let v62 : 
> string list = v13 :: v58 
> │ > │ > │     let v66 : 
> string list = v12 :: v62 
> │ > │ > │     let v70 : 
> string list = v11 :: v66 
> │ > │ > │     let v74 : 
> string list = v9 :: v70 
> │ > │ > │     let v78 : 
> string list = v8 :: v74 
> │ > │ > │     let v82 : 
> string list = v6 :: v78 
> │ > │ > │     let v86 : 
> string list = v4 :: v82 
> │ > │ > │     let v90 : 
> (string list -> (string 
> │ > [])) = List.toArray
> │ > │ > │     let v91 : 
> (string []) = v90 v86
> │ > │ > │     let v94 : 
> string = "ISTJ"
> │ > │ > │     let v95 : 
> string = "ISFJ"
> │ > │ > │     let v96 : 
> string = "INFJ"
> │ > │ > │     let v97 : 
> string = "INTJ"
> │ > │ > │     let v98 : 
> string = "ISTP"
> │ > │ > │     let v99 : 
> string = "ISFP"
> │ > │ > │     let v100 : 
> string = "INFP"
> │ > │ > │     let v101 : 
> string = "INTP"
> │ > │ > │     let v102 : 
> string = "ESTP"
> │ > │ > │     let v103 : 
> string = "ESFP"
> │ > │ > │     let v104 : 
> string = "ENFP"
> │ > │ > │     let v105 : 
> string = "ENTP"
> │ > │ > │     let v106 : 
> string = "ESTJ"
> │ > │ > │     let v107 : 
> string = "ESFJ"
> │ > │ > │     let v108 : 
> string = "ENFJ"
> │ > │ > │     let v109 : 
> string = "ENTJ"
> │ > │ > │     let v110 : 
> (string []) = [|v94; v95;
> │ > v96; v97; v98; v99; 
> │ > │ > v100; v101; v102; v103; v104; v105; 
> v106; v107; v108; 
> │ > v109|]
> │ > │ > │     let v112 : bool
> = v91 = v110 
> │ > │ > │     let v116 : bool
> =
> │ > │ > │         if v112 
> then
> │ > │ > │             true
> │ > │ > │         else
> │ > │ > │             
> method1(v112)
> │ > │ > │     let v117 : 
> string = method2()
> │ > │ > │     let v118 : Mut0
> = {l0 = v117} : Mut0
> │ > │ > │     let v121 : 
> string = "{ "
> │ > │ > │     let v122 : 
> string = $"{v121}"
> │ > │ > │     let v130 : unit
> = ()
> │ > │ > │     let v131 : 
> (unit -> unit) = 
> │ > closure0(v118, v122)
> │ > │ > │     let v132 : unit
> = (fun () -> v131 
> │ > (); v130) ()
> │ > │ > │     let v140 : 
> string = "name"
> │ > │ > │     let v141 : 
> string = $"{v140}"
> │ > │ > │     let v149 : unit
> = ()
> │ > │ > │     let v150 : 
> (unit -> unit) = 
> │ > closure0(v118, v141)
> │ > │ > │     let v151 : unit
> = (fun () -> v150 
> │ > (); v149) ()
> │ > │ > │     let v159 : 
> string = " = "
> │ > │ > │     let v160 : 
> string = $"{v159}"
> │ > │ > │     let v168 : unit
> = ()
> │ > │ > │     let v169 : 
> (unit -> unit) = 
> │ > closure0(v118, v160)
> │ > │ > │     let v170 : unit
> = (fun () -> v169 
> │ > (); v168) ()
> │ > │ > │     let v178 : 
> string = "__assert_eq'"
> │ > │ > │     let v179 : 
> string = $"{v178}"
> │ > │ > │     let v187 : unit
> = ()
> │ > │ > │     let v188 : 
> (unit -> unit) = 
> │ > closure0(v118, v179)
> │ > │ > │     let v189 : unit
> = (fun () -> v188 
> │ > (); v187) ()
> │ > │ > │     let v197 : 
> string = "; "
> │ > │ > │     let v198 : 
> string = $"{v197}"
> │ > │ > │     let v206 : unit
> = ()
> │ > │ > │     let v207 : 
> (unit -> unit) = 
> │ > closure0(v118, v198)
> │ > │ > │     let v208 : unit
> = (fun () -> v207 
> │ > (); v206) ()
> │ > │ > │     let v216 : 
> string = "actual"
> │ > │ > │     let v217 : 
> string = $"{v216}"
> │ > │ > │     let v225 : unit
> = ()
> │ > │ > │     let v226 : 
> (unit -> unit) = 
> │ > closure0(v118, v217)
> │ > │ > │     let v227 : unit
> = (fun () -> v226 
> │ > (); v225) ()
> │ > │ > │     let v234 : 
> string = $"{v159}"
> │ > │ > │     let v242 : unit
> = ()
> │ > │ > │     let v243 : 
> (unit -> unit) = 
> │ > closure0(v118, v234)
> │ > │ > │     let v244 : unit
> = (fun () -> v243 
> │ > (); v242) ()
> │ > │ > │     let v251 : 
> string = $"%A{v91}"
> │ > │ > │     let v255 : 
> string = $"{v251}"
> │ > │ > │     let v263 : unit
> = ()
> │ > │ > │     let v264 : 
> (unit -> unit) = 
> │ > closure0(v118, v255)
> │ > │ > │     let v265 : unit
> = (fun () -> v264 
> │ > (); v263) ()
> │ > │ > │     let v272 : 
> string = $"{v197}"
> │ > │ > │     let v280 : unit
> = ()
> │ > │ > │     let v281 : 
> (unit -> unit) = 
> │ > closure0(v118, v272)
> │ > │ > │     let v282 : unit
> = (fun () -> v281 
> │ > (); v280) ()
> │ > │ > │     let v290 : 
> string = "expected"
> │ > │ > │     let v291 : 
> string = $"{v290}"
> │ > │ > │     let v299 : unit
> = ()
> │ > │ > │     let v300 : 
> (unit -> unit) = 
> │ > closure0(v118, v291)
> │ > │ > │     let v301 : unit
> = (fun () -> v300 
> │ > (); v299) ()
> │ > │ > │     let v308 : 
> string = $"{v159}"
> │ > │ > │     let v316 : unit
> = ()
> │ > │ > │     let v317 : 
> (unit -> unit) = 
> │ > closure0(v118, v308)
> │ > │ > │     let v318 : unit
> = (fun () -> v317 
> │ > (); v316) ()
> │ > │ > │     let v325 : 
> string = $"%A{v110}"
> │ > │ > │     let v329 : 
> string = $"{v325}"
> │ > │ > │     let v337 : unit
> = ()
> │ > │ > │     let v338 : 
> (unit -> unit) = 
> │ > closure0(v118, v329)
> │ > │ > │     let v339 : unit
> = (fun () -> v338 
> │ > (); v337) ()
> │ > │ > │     let v347 : 
> string = " }"
> │ > │ > │     let v348 : 
> string = $"{v347}"
> │ > │ > │     let v356 : unit
> = ()
> │ > │ > │     let v357 : 
> (unit -> unit) = 
> │ > closure0(v118, v348)
> │ > │ > │     let v358 : unit
> = (fun () -> v357 
> │ > (); v356) ()
> │ > │ > │     let v364 : 
> string = v118.l0
> │ > │ > │     let v366 : unit
> = ()
> │ > │ > │     let v367 : 
> (unit -> unit) = 
> │ > closure1(v364)
> │ > │ > │     let v368 : unit
> = (fun () -> v367 
> │ > (); v366) ()
> │ > │ > │     let v370 : bool
> = v116 = false
> │ > │ > │     if v370 then
> │ > │ > │         
> failwith<unit> v364
> │ > │ > │ method0()
> │ > │ > │ 
> │ > │ > │ { name = 
> __assert_eq'; actual = 
> │ > [|"ISTJ"; "ISFJ"; "INFJ"; 
> │ > │ > "INTJ"; "ISTP"; "ISFP"; "INFP"; 
> "INTP"; "ESTP"; "ESFP";
> │ > │ > │   "ENFP"; "ENTP"; 
> "ESTJ"; "ESFJ"; 
> │ > "ENFJ"; "ENTJ"|]; expected 
> │ > │ > = [|"ISTJ"; "ISFJ"; "INFJ"; "INTJ"; 
> "ISTP"; "ISFP"; "INFP";
> │ > "INTP"; "ESTP"; 
> │ > │ > "ESFP";
> │ > │ > │   "ENFP"; "ENTP"; 
> "ESTJ"; "ESFJ"; 
> │ > "ENFJ"; "ENTJ"|] }
> │ > │ > │ 
> │ > │ > 
> │ > │ > ── fsharp 
> │ > 
> ──────────────────────────────────────────────────────────────────────
> │ > │ > type PhonologicalFeature =
> │ > │ >     | VowelFeature of
> │ > │ >         height: Height
> │ > │ >         * backness: Backness
> │ > │ >         * roundedness: Roundedness
> │ > │ >         * tone: Option<Tone>
> │ > │ >         * stress: Option<Stress>
> │ > │ >         * length: Option<Length>
> │ > │ >     | ConsonantFeature of
> │ > │ >         place: PlaceOfArticulation
> │ > │ >         * manner: MannerOfArticulation
> │ > │ >         * voicing: Voicing
> │ > │ >         * length: Option<Length>
> │ > │ >     | VowelHarmonyFeature
> │ > │ >     | PitchAccentFeature
> │ > │ > 
> │ > │ > and Stress = Primary | Secondary
> │ > │ > and Length = Long | Short | HalfLong
> │ > │ > 
> │ > │ > and Height =
> │ > │ >     | High | NearHigh | HighMid
> │ > │ >     | Mid | LowMid | NearLow
> │ > │ >     | Low
> │ > │ > 
> │ > │ > and Backness = Front | Central | Back
> │ > │ > 
> │ > │ > and Roundedness = Rounded | Unrounded
> │ > │ > 
> │ > │ > and PlaceOfArticulation =
> │ > │ >     | Bilabial | Labiodental | Dental
> │ > │ >     | Alveolar | Postalveolar | 
> Retroflex
> │ > │ >     | Palatal | Velar | Uvular
> │ > │ >     | Pharyngeal | Epiglottal | 
> Glottal
> │ > │ > 
> │ > │ > and MannerOfArticulation =
> │ > │ >     | Plosive | Nasal | Trill
> │ > │ >     | TapOrFlap | Fricative | 
> LateralFricative
> │ > │ >     | Approximant | LateralApproximant
> │ > │ > 
> │ > │ > and Voicing = Voiced | Voiceless
> │ > │ > 
> │ > │ > and SecondaryArticulation =
> │ > │ >     | Labialization | Palatalization |
> Velarization
> │ > │ >     | Pharyngealization | Aspiration
> │ > │ > 
> │ > │ > and Tone =
> │ > │ >     | LevelTone of int
> │ > │ >     | ContourTone of int list
> │ > │ > 
> │ > │ > and MorphologicalFeature =
> │ > │ >     | RootFeature of string
> │ > │ >     | AffixFeature of AffixType * 
> string
> │ > │ >     | IncorporationFeature of string *
> MorphologicalFeature
> │ > │ >     | NonConcatenativePattern of 
> string * string
> │ > │ >     | AgglutinativeAffixFeature of 
> AgglutinativeAffixType *
> │ > string
> │ > │ >     | HonorificFeature of 
> HonorificType * string
> │ > │ > 
> │ > │ > and AgglutinativeAffixType = Suffix | 
> Prefix
> │ > │ > 
> │ > │ > and HonorificType = VerbHonorific | 
> NounHonorific
> │ > │ > 
> │ > │ > and AffixType =
> │ > │ >     | Prefix | Suffix | Infix
> │ > │ >     | Circumfix
> │ > │ > 
> │ > │ > type SyntacticFeature =
> │ > │ >     | WordFeature of 
> MorphologicalFeature list * 
> │ > LexicalCategory
> │ > │ >     | PhraseFeature of PhraseType * 
> SyntacticFeature list
> │ > │ >     | GrammaticalRelation of 
> GrammaticalRelationType * 
> │ > SyntacticFeature list
> │ > │ >     | SOVOrderFeature
> │ > │ >     | TopicCommentFeature
> │ > │ > 
> │ > │ > and GrammaticalRelationType =
> │ > │ >     | Ergative | Absolutive | 
> Nominative
> │ > │ >     | Accusative
> │ > │ > 
> │ > │ > and LexicalCategory =
> │ > │ >     | Noun | Verb | Adjective
> │ > │ >     | Adverb | Pronoun | Preposition
> │ > │ >     | Conjunction | Determiner | 
> Interjection
> │ > │ > 
> │ > │ > and PhraseType =
> │ > │ >     | NP | VP | AP
> │ > │ >     | PP | CP
> │ > │ > 
> │ > │ > and SemanticFeature =
> │ > │ >     | Meaning of string
> │ > │ >     | SemanticRole of SemanticRoleType
> * SemanticFeature
> │ > │ > 
> │ > │ > and SemanticRoleType =
> │ > │ >     | Agent | Patient | Instrument
> │ > │ >     | Location | Time | Cause
> │ > │ > 
> │ > │ > and PragmaticFeature =
> │ > │ >     | UseContext of string
> │ > │ >     | PolitenessLevel of Politeness
> │ > │ >     | SpeechAct of SpeechActType
> │ > │ >     | SpeechLevel of SpeechLevelType
> │ > │ > 
> │ > │ > and Politeness = Formal | Informal | 
> Neutral
> │ > │ > 
> │ > │ > and SpeechActType =
> │ > │ >     | Assertive | Directive | 
> Commissive
> │ > │ >     | Expressive | Declarative
> │ > │ > 
> │ > │ > and SpeechLevelType =
> │ > │ >     | FormalHigh | FormalLow | 
> InformalHigh
> │ > │ >     | InformalLow | Neutral
> │ > │ > 
> │ > │ > type LinguisticFeature =
> │ > │ >     | Phonological of 
> PhonologicalFeature
> │ > │ >     | Morphological of 
> MorphologicalFeature
> │ > │ >     | Syntactic of SyntacticFeature
> │ > │ >     | Semantic of SemanticFeature
> │ > │ >     | Pragmatic of PragmaticFeature
> │ > │ > 
> │ > │ > type LanguageConstruct =
> │ > │ >     | LanguageElement of 
> LinguisticFeature
> │ > │ >     | LanguageStructure of 
> LanguageConstruct list
> │ > │ >     | TranslationElement of 
> TranslationFeature
> │ > │ > 
> │ > │ > and TranslationFeature =
> │ > │ >     | LinkedPhonological of 
> PhonologicalFeature * 
> │ > PhonologicalFeature
> │ > │ >     | LinkedMorphological of 
> MorphologicalFeature * 
> │ > MorphologicalFeature
> │ > │ >     | LinkedSyntactic of 
> SyntacticFeature * 
> │ > SyntacticFeature
> │ > │ >     | LinkedSemantic of 
> SemanticFeature * SemanticFeature
> │ > │ > 
> │ > │ > type Discourse = DiscourseUnit of 
> LanguageConstruct list
> │ > │ > 
> │ > │ > type LanguageModel =
> │ > │ >     | Model of discourse: Discourse
> │ > │ > 
> │ > │ > ── fsharp 
> │ > 
> ──────────────────────────────────────────────────────────────────────
> │ > │ > let testEnglish =
> │ > │ >     Model(
> │ > │ >         DiscourseUnit [[
> │ > │ >             LanguageElement 
> (Phonological (ConsonantFeature
> │ > (Alveolar, Nasal, 
> │ > │ > Voiced, Some(HalfLong))));
> │ > │ >             LanguageElement 
> (Phonological (VowelFeature 
> │ > (High, Front, Unrounded,
> │ > │ > Some(LevelTone 1), Some(Primary), 
> Some(Short))));
> │ > │ >             LanguageElement 
> (Phonological (VowelFeature 
> │ > (Low, Front, Unrounded, 
> │ > │ > Some(LevelTone 2), Some(Secondary), 
> Some(Long))));
> │ > │ >             LanguageElement 
> (Phonological (ConsonantFeature
> │ > (Velar, Plosive, 
> │ > │ > Voiceless, Some(HalfLong))));
> │ > │ >             LanguageElement 
> (Morphological (RootFeature 
> │ > "I"));
> │ > │ >             LanguageElement 
> (Morphological (RootFeature 
> │ > "see"));
> │ > │ >             LanguageElement 
> (Morphological (RootFeature 
> │ > "a"));
> │ > │ >             LanguageElement 
> (Morphological (RootFeature 
> │ > "cat"));
> │ > │ >             LanguageElement (Syntactic
> (PhraseFeature (NP, 
> │ > [[WordFeature 
> │ > │ > ([[RootFeature "I"]], Pronoun)]])));
> │ > │ >             LanguageElement (Syntactic
> (PhraseFeature (VP, 
> │ > [[WordFeature 
> │ > │ > ([[RootFeature "see"]], Verb)]])));
> │ > │ >             LanguageElement (Syntactic
> (PhraseFeature (NP, 
> │ > [[WordFeature 
> │ > │ > ([[RootFeature "a"; RootFeature 
> "cat"]], Noun)]])));
> │ > │ >             LanguageElement (Semantic 
> (Meaning "Perception 
> │ > act of a feline by 
> │ > │ > the speaker"));
> │ > │ >             LanguageElement (Pragmatic
> (UseContext 
> │ > "Statement of an action being
> │ > │ > observed"))
> │ > │ >         ]]
> │ > │ >     )
> │ > │ > 
> │ > │ > let testPortuguese =
> │ > │ >     Model(
> │ > │ >         DiscourseUnit [[
> │ > │ >             LanguageElement 
> (Phonological (VowelFeature 
> │ > (High, Front, Unrounded,
> │ > │ > Some(LevelTone 1), Some(Primary), 
> Some(Short))));
> │ > │ >             LanguageElement 
> (Phonological (VowelFeature 
> │ > (Low, Front, Unrounded, 
> │ > │ > Some(LevelTone 2), Some(Secondary), 
> Some(Long))));
> │ > │ >             LanguageElement 
> (Phonological (VowelFeature 
> │ > (Mid, Back, Rounded, 
> │ > │ > Some(LevelTone 3), Some(Primary), 
> Some(Short))));
> │ > │ >             LanguageElement 
> (Phonological (ConsonantFeature
> │ > (Velar, Plosive, 
> │ > │ > Voiceless, Some(HalfLong))));
> │ > │ >             LanguageElement 
> (Morphological (RootFeature 
> │ > "Eu"));
> │ > │ >             LanguageElement 
> (Morphological (RootFeature 
> │ > "ver" |> ignore; 
> │ > │ > AffixFeature (Suffix, "o")));
> │ > │ >             LanguageElement 
> (Morphological (RootFeature 
> │ > "um"));
> │ > │ >             LanguageElement 
> (Morphological (RootFeature 
> │ > "gato"));
> │ > │ >             LanguageElement (Syntactic
> (PhraseFeature (NP, 
> │ > [[WordFeature 
> │ > │ > ([[RootFeature "Eu"]], Pronoun)]])));
> │ > │ >             LanguageElement (Syntactic
> (PhraseFeature (VP, 
> │ > [[WordFeature 
> │ > │ > ([[RootFeature "vejo"]], Verb)]])));
> │ > │ >             LanguageElement (Syntactic
> (PhraseFeature (NP, 
> │ > [[WordFeature 
> │ > │ > ([[RootFeature "um"; RootFeature 
> "gato"]], Noun)]])));
> │ > │ >             LanguageElement (Semantic 
> (Meaning "Ação de 
> │ > percepção de um felino 
> │ > │ > pelo falante"));
> │ > │ >             LanguageElement (Pragmatic
> (UseContext 
> │ > "Declaração de uma ação sendo
> │ > │ > observada"))
> │ > │ >         ]]
> │ > │ >     )
> │ > │ > 
> │ > │ > let testKorean =
> │ > │ >     Model(
> │ > │ >         DiscourseUnit [[
> │ > │ >             LanguageElement 
> (Phonological (ConsonantFeature
> │ > (Alveolar, Nasal, 
> │ > │ > Voiced, Some(Short))));
> │ > │ >             LanguageElement 
> (Phonological (VowelFeature 
> │ > (High, Back, Rounded, 
> │ > │ > None, None, Some(Short))));
> │ > │ >             LanguageElement 
> (Phonological (VowelFeature 
> │ > (Mid, Front, Unrounded, 
> │ > │ > None, None, Some(Long))));
> │ > │ >             LanguageElement 
> (Phonological (ConsonantFeature
> │ > (Bilabial, Plosive, 
> │ > │ > Voiceless, Some(Short))));
> │ > │ >             LanguageElement 
> (Morphological (RootFeature 
> │ > "나"));
> │ > │ >             LanguageElement 
> (Morphological (RootFeature 
> │ > "보다"));
> │ > │ >             LanguageElement 
> (Morphological (AffixFeature 
> │ > (Suffix, "아")));
> │ > │ >             LanguageElement 
> (Morphological (RootFeature 
> │ > "고양이"));
> │ > │ >             LanguageElement (Syntactic
> (PhraseFeature (NP, 
> │ > [[WordFeature 
> │ > │ > ([[RootFeature "나"]], Pronoun)]])));
> │ > │ >             LanguageElement (Syntactic
> (PhraseFeature (VP, 
> │ > [[WordFeature 
> │ > │ > ([[RootFeature "보다"; AffixFeature 
> (Suffix, "아")]], 
> │ > Verb)]])));
> │ > │ >             LanguageElement (Syntactic
> (PhraseFeature (NP, 
> │ > [[WordFeature 
> │ > │ > ([[RootFeature "고양이"]], Noun)]])));
> │ > │ >             LanguageElement (Semantic 
> (Meaning "화자에 의한
> │ > 고양이의 관찰 
> │ > │ > 행위"));
> │ > │ >             LanguageElement (Pragmatic
> (UseContext 
> │ > "관찰되고 있는 행동의 진술"))
> │ > │ >         ]]
> │ > │ >     )
> │ > │ > 
> │ > │ > ── markdown 
> │ > 
> ────────────────────────────────────────────────────────────────────
> │ > │ > │ ## main
> │ > │ > 
> │ > │ > ── spiral 
> │ > 
> ──────────────────────────────────────────────────────────────────────
> │ > │ > inl main (_args : array_base string) =
> │ > │ >     0i32
> │ > │ > 
> │ > │ > inl main () =
> │ > │ >     $'let main args = !main args' : ()
> │ > │ > 
> │ > │ > ── spiral 
> │ > 
> ──────────────────────────────────────────────────────────────────────
> │ > │ > inl app () =
> │ > │ >     "test" |> console.write_line
> │ > │ >     0i32
> │ > │ > 
> │ > │ > inl main () =
> │ > │ >     print_static "<test>"
> │ > │ > 
> │ > │ >     app
> │ > │ >     |> dyn
> │ > │ >     |> ignore
> │ > │ > 
> │ > │ >     print_static "</test>"
> │ > │ 00:00:13 v #3 
> runtime.execute_with_options / result / {
> │ > exit_code = 0; std_trace_length = 40093 }
> │ > │ 00:00:13 d #4 
> runtime.execute_with_options / { 
> │ > file_name = jupyter; arguments = ["nbconvert", 
> │ > 
> "c:/home/git/polyglot/apps/spiral/temp/test/test.dib.ipynb", "--to", "html", 
> │ > "--HTMLExporter.theme=dark"]; options = { command = jupyter
> nbconvert 
> │ > "c:/home/git/polyglot/apps/spiral/temp/test/test.dib.ipynb"
> --to html 
> │ > --HTMLExporter.theme=dark; cancellation_token = None; 
> environment_variables = 
> │ > Array(MutCell([])); on_line = None; stdin = None; trace = 
> true; 
> │ > working_directory = None } }
> │ > │ 00:00:14 v #5 ! [NbConvertApp] 
> Converting notebook 
> │ > c:/home/git/polyglot/apps/spiral/temp/test/test.dib.ipynb 
> to html
> │ > │ 00:00:14 v #6 ! 
> │ > 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.
> │ > py:96: MissingIDFieldWarning: Cell is missing an id field, 
> this will become a 
> │ > hard error in future nbformat versions. You may want to use
> `normalize()` on 
> │ > your notebooks before validations (available since nbformat
> 5.1.4). Previous 
> │ > versions of nbformat are fixing this issue transparently, 
> and will stop doing so
> │ > in the future.
> │ > │ 00:00:14 v #7 !   validate(nb)
> │ > │ 00:00:15 v #8 ! 
> │ > 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\
> │ > highlight.py:71: UserWarning: IPython3 lexer unavailable, 
> falling back on Python
> │ > 3
> │ > │ 00:00:15 v #9 !   return 
> _pygments_highlight(
> │ > │ 00:00:15 v #10 ! [NbConvertApp] 
> Writing 341058 bytes to
> │ > c:\home\git\polyglot\apps\spiral\temp\test\test.dib.html
> │ > │ 00:00:15 v #11 
> runtime.execute_with_options / result / 
> │ > { exit_code = 0; std_trace_length = 872 }
> │ > │ 00:00:15 d #12 spiral.run / dib / 
> jupyter nbconvert / {
> │ > exit_code = 0; jupyter_result_length = 872 }
> │ > │ 00:00:15 d #13 
> runtime.execute_with_options / { 
> │ > file_name = pwsh; arguments = ["-c", "$counter = 1; $path =│ > 'c:/home/git/polyglot/apps/spiral/temp/test/test.dib.html';
> (Get-Content $path 
> │ > -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { 
> $_.Groups[1].Value + 
> │ > $counter++ } | Set-Content $path"]; options = { command = 
> pwsh -c "$counter = 1;
> │ > $path = 
> 'c:/home/git/polyglot/apps/spiral/temp/test/test.dib.html'; (Get-Content
> │ > $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { 
> $_.Groups[1].Value + 
> │ > $counter++ } | Set-Content $path"; cancellation_token = 
> None; 
> │ > environment_variables = Array(MutCell([])); on_line = None;
> stdin = None; trace 
> │ > = true; working_directory = None } }
> │ > │ 00:00:15 v #14 
> runtime.execute_with_options / result / 
> │ > { exit_code = 0; std_trace_length = 0 }
> │ > │ 00:00:15 d #15 spiral.run / dib / 
> html cell ids / { 
> │ > exit_code = 0; pwsh_replace_html_result_length = 0 }
> │ > │ 00:00:15 d #16 spiral.run / dib / 
> { exit_code = 0; 
> │ > result_length = 41024 }
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### parse the .dib file into .spi 
> format with dibparser
> │ > 
> │ > ── pwsh 
> ────────────────────────────────────────────────────────────────────────
> │ > { . ../../../../apps/parser/dist/DibParser$(_exe) test.dib 
> spi } | Invoke-Block
> │ > 
> │ > ── [ 452.95ms - stdout ] 
> ───────────────────────────────────────────────────────
> │ > │ 00:00:00 d #1 writeDibCode / 
> output: Spi / path: 
> │ > test.dib
> │ > │ 00:00:00 d #2 parseDibCode / 
> output: Spi / file: 
> │ > test.dib
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### build .fsx file from .spi using 
> supervisor
> │ > 
> │ > ── pwsh 
> ────────────────────────────────────────────────────────────────────────
> │ > { . ../../../../apps/spiral/dist/Supervisor$(_exe) 
> --build-file test.spi 
> │ > test.fsx } | Invoke-Block
> │ > 
> │ > ── [ 4.24s - stdout ] 
> ──────────────────────────────────────────────────────────
> │ > │ <test>
> │ > │ </test>
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## compile and format the project
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### compile project with fable 
> targeting optimized rust
> │ > 
> │ > ── pwsh 
> ────────────────────────────────────────────────────────────────────────
> │ > dotnet fable --optimize --lang rs --extension .rs
> │ > 
> │ > ── [ 5.54s - stdout ] 
> ──────────────────────────────────────────────────────────
> │ > │ Fable 5.0.0-alpha.9: F# to Rust compiler
> (status: alpha)
> │ > │ 
> │ > │ Thanks to the contributor! 
> @kirill-gerasimenko
> │ > │ Stand with Ukraine! 
> https://standwithukraine.com.ua/
> │ > │ 
> │ > │ Parsing test.fsproj...
> │ > │ Project and references (1 source files) 
> parsed in 2889ms
> │ > │ 
> │ > │ Started Fable compilation...
> │ > │ 
> │ > │ Fable compilation finished in 1369ms
> │ > │ 
> │ > │ .\test.fsx(11,0): (11,2) warning FABLE: 
> For Rust, support for
> │ > F# static and module do bindings is disabled by default. It
> can be enabled with 
> │ > the 'static_do_bindings' feature. Use at your own risk!
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### fix formatting issues in the .rs 
> file using regex and 
> │ > set-content
> │ > 
> │ > ── pwsh 
> ────────────────────────────────────────────────────────────────────────
> │ > (Get-Content test.rs) `
> │ >     -replace [[regex]]::Escape("),);"), "));" `
> │ >     | FixRust `
> │ > | Set-Content test.rs
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### format the rust code using cargo 
> fmt
> │ > 
> │ > ── pwsh 
> ────────────────────────────────────────────────────────────────────────
> │ > cargo fmt --
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ## build and test the project
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### build the project in release mode 
> using nightly rust 
> │ > compiler
> │ > 
> │ > ── pwsh 
> ────────────────────────────────────────────────────────────────────────
> │ > cargo build --release
> │ > 
> │ > ── [ 7.25s - stdout ] 
> ──────────────────────────────────────────────────────────
> │ > │ warning: 
> C:\home\git\polyglot\workspace\Cargo.toml: the 
> │ > cargo feature `edition2024` has been stabilized in the 1.85
> release and is no 
> │ > longer necessary to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │ warning: 
> │ > C:\home\git\polyglot\apps\chat\contract\Cargo.toml: the 
> cargo feature 
> │ > `edition2024` has been stabilized in the 1.85 release and 
> is no longer necessary
> │ > to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │ warning: 
> C:\home\git\polyglot\apps\plot\Cargo.toml: the 
> │ > cargo feature `edition2024` has been stabilized in the 1.85
> release and is no 
> │ > longer necessary to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │ warning: 
> │ > C:\home\git\polyglot\examples\rust\exercism\Cargo.toml: the
> cargo feature 
> │ > `edition2024` has been stabilized in the 1.85 release and 
> is no longer necessary
> │ > to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │ warning: 
> │ > C:\home\git\polyglot\apps\spiral\temp\extension\Cargo.toml:
> the cargo feature 
> │ > `edition2024` has been stabilized in the 1.85 release and 
> is no longer necessary
> │ > to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │ warning: 
> │ > C:\home\git\polyglot\apps\spiral\temp\cube\Cargo.toml: the 
> cargo feature 
> │ > `edition2024` has been stabilized in the 1.85 release and 
> is no longer necessary
> │ > to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │ warning: 
> │ > C:\home\git\polyglot\apps\spiral\temp\test\Cargo.toml: the 
> cargo feature 
> │ > `edition2024` has been stabilized in the 1.85 release and 
> is no longer necessary
> │ > to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │ warning: 
> │ > C:\home\git\polyglot\apps\chat\contract\tests\Cargo.toml: 
> the cargo feature 
> │ > `edition2024` has been stabilized in the 1.85 release and 
> is no longer necessary
> │ > to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │ warning: 
> C:\home\git\polyglot\lib\math\Cargo.toml: the 
> │ > cargo feature `edition2024` has been stabilized in the 1.85
> release and is no 
> │ > longer necessary to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │    Compiling fable_library_rust 
> v0.1.0 
> │ > 
> (C:\home\git\polyglot\lib\rust\fable\fable_modules\fable-library-rust)
> │ > │    Compiling spiral_temp_test 
> v0.0.1 
> │ > (C:\home\git\polyglot\apps\spiral\temp\test)
> │ > │     Finished `release` profile 
> [optimized] target(s) in 
> │ > 7.18s
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### run release tests with output 
> enabled
> │ > 
> │ > ── pwsh 
> ────────────────────────────────────────────────────────────────────────
> │ > { cargo test --release -- --show-output } | Invoke-Block
> │ > 
> │ > ── [ 19.61s - stdout ] 
> ─────────────────────────────────────────────────────────
> │ > │ warning: 
> C:\home\git\polyglot\lib\math\Cargo.toml: the 
> │ > cargo feature `edition2024` has been stabilized in the 1.85
> release and is no 
> │ > longer necessary to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │ warning: 
> │ > C:\home\git\polyglot\apps\chat\contract\tests\Cargo.toml: 
> the cargo feature 
> │ > `edition2024` has been stabilized in the 1.85 release and 
> is no longer necessary
> │ > to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │ warning: 
> C:\home\git\polyglot\apps\plot\Cargo.toml: the 
> │ > cargo feature `edition2024` has been stabilized in the 1.85
> release and is no 
> │ > longer necessary to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │ warning: 
> │ > C:\home\git\polyglot\apps\spiral\temp\extension\Cargo.toml:
> the cargo feature 
> │ > `edition2024` has been stabilized in the 1.85 release and 
> is no longer necessary
> │ > to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │ warning: 
> │ > C:\home\git\polyglot\apps\spiral\temp\test\Cargo.toml: the 
> cargo feature 
> │ > `edition2024` has been stabilized in the 1.85 release and 
> is no longer necessary
> │ > to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │ warning: 
> │ > C:\home\git\polyglot\apps\spiral\temp\cube\Cargo.toml: the 
> cargo feature 
> │ > `edition2024` has been stabilized in the 1.85 release and 
> is no longer necessary
> │ > to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │ warning: 
> C:\home\git\polyglot\workspace\Cargo.toml: the 
> │ > cargo feature `edition2024` has been stabilized in the 1.85
> release and is no 
> │ > longer necessary to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │ warning: 
> │ > C:\home\git\polyglot\examples\rust\exercism\Cargo.toml: the
> cargo feature 
> │ > `edition2024` has been stabilized in the 1.85 release and 
> is no longer necessary
> │ > to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │ warning: 
> │ > C:\home\git\polyglot\apps\chat\contract\Cargo.toml: the 
> cargo feature 
> │ > `edition2024` has been stabilized in the 1.85 release and 
> is no longer necessary
> │ > to be listed in the manifest
> │ > │   See 
> │ > 
> https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-fiel
> │ > d for more information about using this feature.
> │ > │    Compiling fable_library_rust 
> v0.1.0 
> │ > 
> (C:\home\git\polyglot\lib\rust\fable\fable_modules\fable-library-rust)
> │ > │    Compiling spiral_temp_test 
> v0.0.1 
> │ > (C:\home\git\polyglot\apps\spiral\temp\test)
> │ > │     Finished `release` profile 
> [optimized] target(s) in 
> │ > 19.41s
> │ > │      Running unittests main.rs 
> │ > 
> (C:\home\git\polyglot\workspace\target\release\deps\spiral_temp_test-6f297c6a0c2
> │ > 32188.exe)
> │ > │ 
> │ > │ running 3 tests
> │ > │ test test_parse_number ... ok
> │ > │ test prop_parse_format_idempotent ... ok
> │ > │ test 
> │ > 
> adding_and_then_removing_an_item_from_the_cart_leaves_the_cart_unchanged ... ok
> │ > │ 
> │ > │ successes:
> │ > │ 
> │ > │ ---- prop_parse_format_idempotent stdout
> ----
> │ > │ input=Comment("")
> │ > │ input=Integer(-5491099299679688102)
> │ > │ input=Integer(8379110228097664985)
> │ > │ input=StringLiteral(")[3$9S:(&77h{i$x")
> │ > │ input=Integer(-1634081358060128388)
> │ > │ input=Comment("\"vjw/:Gd([")
> │ > │ input=Integer(1181536584025437262)
> │ > │ input=Comment("?c:.&dqU<'%X!")
> │ > │ input=Operator("-")
> │ > │ 
> input=Comment("?c,|Q9aOI@T%Dj`%{!zRQ0SsO8J{I|")
> │ > │ input=StringLiteral("{%(Tg@.17Fy")
> │ > │ input=Identifier("UwEp9Et1Qa")
> │ > │ input=Identifier("zeWY2fIzAglMUOU")
> │ > │ input=Comment("/A%I\"0lIa02/fq%I)")
> │ > │ 
> input=StringLiteral("Y/P<$Em.{-HRDZ){MZ<<*S;2")
> │ > │ 
> input=Comment("`0:br{nY.iD/\"S\\p\"u~%z")
> │ > │ input=StringLiteral("km._%wW5")
> │ > │ input=Operator("=")
> │ > │ input=StringLiteral("{V?B/Ly3l*:N")
> │ > │ input=Integer(-1787606027335244208)
> │ > │ input=Comment("?;7X}/T.P*a%A\\(p*.U")
> │ > │ input=Identifier("wTFtH0ii02AH4w89eQO")
> │ > │ input=Operator("*")
> │ > │ input=Identifier("ECFat7r3YxBjCCFm3E4M")
> │ > │ input=Comment("+|{&?a&xNt.$2gu/3#V't")
> │ > │ input=Operator("(")
> │ > │ 
> input=StringLiteral("P>_=/V0`kl{!$nr/<(YzO&)y")
> │ > │ input=Operator("+")
> │ > │ input=Integer(-6753590660525902183)
> │ > │ input=Identifier("r8pCylV6Wy0Q9")
> │ > │ input=Identifier("FF64J6vtc3GrQ")
> │ > │ input=Integer(-6751423457116678474)
> │ > │ input=Comment(":u")
> │ > │ input=Operator(")")
> │ > │ input=Operator("+")
> │ > │ input=StringLiteral("dx$X`pM`")
> │ > │ input=Integer(383881523891696030)
> │ > │ input=Integer(-8476708027339182419)
> │ > │ input=Identifier("FcWbjW3u")
> │ > │ input=Comment(".!5BC^2(*evx\"$/&}~k?9=")
> │ > │ input=Comment("YE$O&!i%[{(-.$Q")
> │ > │ input=Operator("=")
> │ > │ input=Comment("+5*GK{%Bb$'t?{2:fLJ")
> │ > │ input=Operator("-")
> │ > │ 
> input=Comment("\"A%5!<|\\:6'VFv<\\{`?}|<5z`%")
> │ > │ 
> input=StringLiteral("7Jz&{t.9Z?=ULi@Nw|%tX")
> │ > │ input=Operator("/")
> │ > │ input=Integer(1083988699152007875)
> │ > │ input=Operator(")")
> │ > │ input=StringLiteral("<=i%UN{s2{=O")
> │ > │ input=Integer(-8574312478227516106)
> │ > │ input=Comment("{XB'H-*%")
> │ > │ input=Operator("=")
> │ > │ input=Comment(">$={")
> │ > │ input=Identifier("tvA6FNx4N9IG")
> │ > │ input=Integer(-4315502924142066427)
> │ > │ input=Operator("+")
> │ > │ input=StringLiteral("/%=/Q<t=Wrh{<H4")
> │ > │ input=Identifier("dgUqp0nM8LZ")
> │ > │ input=Identifier("jonBMD0QKwzoMkVkotW2")
> │ > │ input=Operator("*")
> │ > │ input=Integer(6390662807139021902)
> │ > │ input=Identifier("Bjwfl9NNcjPrzn")
> │ > │ input=Integer(3696858319521255057)
> │ > │ input=Operator("/")
> │ > │ 
> input=StringLiteral("TcdjP3%T'11{9&{NDSs'&R}mFHl)")
> │ > │ input=Integer(-6497922322790885730)
> │ > │ input=StringLiteral("EX")
> │ > │ 
> input=Identifier("FR4SwO16b9e7QT0XSW6jp2DTwdPzyri")
> │ > │ input=Identifier("RmUTOc000CCQc2qKd3E")
> │ > │ input=Integer(-7855364211559823524)
> │ > │ 
> input=Identifier("ws2uWv09NRPQM8KTqGMpAydDmN")
> │ > │ input=Operator("=")
> │ > │ input=Integer(-6662301018828546960)
> │ > │ 
> input=Identifier("q03H8prP17X10ItgMzKcQBYx9f")
> │ > │ input=Integer(-4558059088402672219)
> │ > │ input=Comment("/$3/=%%j$V/gOuu`\"")
> │ > │ input=Comment("P~[4l\\5.{$)dkZ;ay$$%,o=.
> NZm$&'e")
> │ > │ input=StringLiteral("wo=Qn8v")
> │ > │ input=Comment("/+?Dy'Fw")
> │ > │ input=Integer(-1205046852755692529)
> │ > │ 
> input=Comment("C{Pp1c`eL>R:Vs<TbXQ+\"]fFN")
> │ > │ input=Operator("*")
> │ > │ input=StringLiteral("~e!}Nga*v<{")
> │ > │ 
> input=StringLiteral("I8_;.5?/<J%|El}K^VLg*`Z")
> │ > │ input=Identifier("ahf87tpH7FkuPpsfU2W")
> │ > │ input=StringLiteral("X!x>=10=s3")
> │ > │ input=Operator("+")
> │ > │ input=Comment("o#Qf")
> │ > │ input=Operator("-")
> │ > │ input=Comment("5AA")
> │ > │ input=StringLiteral("*P{")
> │ > │ input=Identifier("dc7")
> │ > │ input=Operator("(")
> │ > │ input=Integer(2808843462451926414)
> │ > │ input=Comment(")?%~B\\`$<{{\\1sj'=")
> │ > │ input=StringLiteral("Y`|Kh-")
> │ > │ 
> input=StringLiteral("CdpfCC'Y**pSCi]Mq/@")
> │ > │ input=Comment("\"c$")
> │ > │ 
> input=StringLiteral("2G{$'!&=%VI<@o4{d`<MRL?RL$~")
> │ > │ input=StringLiteral("v")
> │ > │ input=Operator(")")
> │ > │ input=StringLiteral("v}o(*HJ#F")
> │ > │ input=Integer(5794123135866554476)
> │ > │ input=Comment("{!y/8{htB5J8$2")
> │ > │ input=Identifier("MMSC3zsOE26U55n")
> │ > │ input=Integer(8564946316397897036)
> │ > │ input=StringLiteral("n9$u[lcS<")
> │ > │ input=Operator("(")
> │ > │ 
> input=Comment("3TG<l%\"{wq=X9}Q?{LKGQ5/'@G?")
> │ > │ input=Identifier("DS")
> │ > │ 
> input=Comment("!C/P^TK.Z}$gGq{`$a6>Q[%.*Pc[J]7:")
> │ > │ input=Identifier("m5Km07xtqhVUJn6N")
> │ > │ input=Comment("fBb\"CVf,\"")
> │ > │ input=Operator("(")
> │ > │ input=Operator("+")
> │ > │ input=Identifier("wkMbJerYohNtg")
> │ > │ input=StringLiteral("Z_O/5:y*6A#*:")
> │ > │ input=StringLiteral("'.d?BO41UF{+<;@&`")
> │ > │ 
> input=Identifier("aFso34JldzD716RbUy0t1")
> │ > │ input=Comment("r.hSC-y/<1l{qV`'8`4Z+cDB 
> $'?M%A")
> │ > │ input=Identifier("GciS")
> │ > │ input=Operator("=")
> │ > │ 
> input=Identifier("TBYfbZn8xpQyd0vEawGOYI657F37rN2C")
> │ > │ input=Identifier("Od4YAms87R")
> │ > │ 
> input=Comment("52>c$9.*8:&J{hpNz\"%\\a*q]%wO/?1s\\")
> │ > │ 
> input=Identifier("DB7rk7LyOss9vPV3ddJhR8Ej")
> │ > │ input=Integer(7085578393077824465)
> │ > │ input=Operator("*")
> │ > │ input=Integer(4479787872611549978)
> │ > │ input=Integer(-5624142405154604949)
> │ > │ input=StringLiteral("=l#%E?s3:Ib'h 
> fJ<W}'(6/tI*")
> │ > │ input=Operator("(")
> │ > │ input=Operator("*")
> │ > │ input=Operator("-")
> │ > │ 
> input=Identifier("z34F3doRL2na1Z5X64ZtPCiuf2Bdr7uC2")
> │ > │ input=Identifier("B6I8f2MIddu5or59Ba7")
> │ > │ 
> input=Comment("T<WL~rQCsZ2AeXn\\KX@?{5<\"NOv")
> │ > │ input=Operator("=")
> │ > │ input=StringLiteral("qNOKh:,")
> │ > │ input=Identifier("cs9JRk2njlKqVeBA44")
> │ > │ input=Operator(")")
> │ > │ input=Integer(-1045108911930306925)
> │ > │ input=Identifier("b")
> │ > │ 
> input=Identifier("b7eIjnkNRgP8pExqE23e6E92QJ1pbbCj")
> │ > │ input=Identifier("yZ")
> │ > │ 
> input=Identifier("zBuG1iPaA2KaALS5Qm2De")
> │ > │ input=Integer(-1151736706829803094)
> │ > │ input=Identifier("mnTBKb0lm8")
> │ > │ input=Operator("+")
> │ > │ input=Integer(3480085098081516547)
> │ > │ input=Integer(710456899134220329)
> │ > │ input=Operator("*")
> │ > │ input=Identifier("J963PkInvd0mUc2YVM")
> │ > │ input=Operator("=")
> │ > │ input=Operator("+")
> │ > │ input=Operator("*")
> │ > │ input=Integer(8285586589749137320)
> │ > │ input=Operator("+")
> │ > │ input=Integer(9146946205557788321)
> │ > │ input=Operator("/")
> │ > │ input=Integer(7585435845461657286)
> │ > │ input=Integer(-4718176019574950998)
> │ > │ input=Integer(1035305392867467074)
> │ > │ input=Integer(1272212486747247190)
> │ > │ 
> input=Identifier("Ch0dTxK934vHU3jK18cRaFVH3DiK")
> │ > │ input=StringLiteral(";/ 
> /j%AKO8Z]j8'AVHcj|L")
> │ > │ input=Operator("-")
> │ > │ input=Operator("=")
> │ > │ input=StringLiteral("d5& ] !U")
> │ > │ input=StringLiteral("!$^i-V*Xb~:l[)")
> │ > │ input=Integer(-1338139748078479980)
> │ > │ input=StringLiteral("e%v*t`'/0&G.-xGEBY]
> ")
> │ > │ input=StringLiteral("fXy'e")
> │ > │ 
> input=Comment("iE%??:ZA.HJo3;4XZjH\"3$K$6.m")
> │ > │ input=Integer(-6660815258355396822)
> │ > │ input=Operator("(")
> │ > │ input=Identifier("M3")
> │ > │ input=Integer(-8022430024529498327)
> │ > │ input=StringLiteral("=")
> │ > │ input=Identifier("NiF3KIB18hpumyLY2K")
> │ > │ input=Comment("\\kg.:yI?Mb-4{$$i&")
> │ > │ 
> input=Comment("]J.T:U=3Ob%`3o>\"_vY?D5!&=>")
> │ > │ input=Identifier("GA1")
> │ > │ 
> input=StringLiteral("&M*U.k2'2F%3IvWb&aV%.H^l?f%a")
> │ > │ input=Integer(12253634085365172)
> │ > │ input=Identifier("O5P8rpkW")
> │ > │ input=StringLiteral("&N{=&L/o;")
> │ > │ input=StringLiteral("$[")
> │ > │ input=Operator("/")
> │ > │ input=Identifier("fJ1")
> │ > │ input=Integer(-5484693271654579105)
> │ > │ 
> input=Comment("YC.QG<O&[h`&pH'qk@.).?{S)%\\GAg0j")
> │ > │ input=Comment("A40A1_lQ=95w/")
> │ > │ input=Identifier("Bg6rVkdfKcF9ML7DC")
> │ > │ 
> input=Identifier("QyVR30RRSCy1P48pCFvMZywTf4GAQ")
> │ > │ 
> input=Comment("vr%V2<lul$Y<r%&<*W\\{}'?rc")
> │ > │ 
> input=Comment("&C@qg:h=):yb'j;;{88/B.,'3_|4{E")
> │ > │ 
> input=StringLiteral("d~i1*KZh@|~1,$/05;(%vq")
> │ > │ input=Identifier("KT96M6G")
> │ > │ input=Integer(-8387014486006015761)
> │ > │ input=Identifier("YGj4sEXwSoXfi1")
> │ > │ input=Comment("U_4i:~Us8n$d<")
> │ > │ input=Comment("R%(&:z*-/E7X.]4&2{W")
> │ > │ input=Operator(")")
> │ > │ 
> input=StringLiteral("H`st|-S%G<d'o<`]x{'?jb%&6%aJ.")
> │ > │ 
> input=Identifier("xY340AlU44qhH8spKqVepn")
> │ > │ input=Operator("+")
> │ > │ input=Comment("<Cscm^")
> │ > │ 
> input=Comment("x8\"$'^%=&o$4.T%bgaPUy9`-{G<47`")
> │ > │ 
> input=StringLiteral("l+S{{e0#5q3h$,o$fL$9Gm")
> │ > │ input=Comment("")
> │ > │ 
> input=Identifier("QGLuYuUZHg91iwogKHaxNDf")
> │ > │ input=StringLiteral("/ 
> Mxl`<4oVq.A<e+pEkZ0v:4+L0")
> │ > │ 
> input=Identifier("eDLkOl9h9a5pDEJ4JZttZgL8k0Q2F")
> │ > │ input=Integer(5739147397538091196)
> │ > │ input=Operator("+")
> │ > │ input=Operator("(")
> │ > │ input=Operator("/")
> │ > │ input=StringLiteral("-&Pj/'")
> │ > │ input=Operator("+")
> │ > │ 
> input=StringLiteral("n'vJ6?:u=G-(e<[hkR!-_#3:?4^^")
> │ > │ 
> input=Comment("4'+@/9f9<)4^<&&~=c:p{*{ac0!9ne")
> │ > │ input=Operator("/")
> │ > │ input=Identifier("eM7Z25")
> │ > │ input=Operator("=")
> │ > │ input=Integer(-7982922571252409179)
> │ > │ 
> input=StringLiteral("B_kL{[a`6eM^@:[SE[IX=")
> │ > │ input=Operator(")")
> │ > │ input=Operator(")")
> │ > │ input=StringLiteral("R")
> │ > │ input=Identifier("I")
> │ > │ input=Integer(-965005534850667641)
> │ > │ input=StringLiteral(",i'l);KS^p^'")
> │ > │ input=Identifier("cg1V7hKJ")
> │ > │ input=Operator("(")
> │ > │ input=Comment("z#\\=lNL$&$okwY")
> │ > │ 
> input=StringLiteral("<>M0s`8d4@=*$}$x?T/w+l<]--$<")
> │ > │ input=Operator("/")
> │ > │ input=Comment("M\">z&M:4I^:Pu")
> │ > │ input=Operator("+")
> │ > │ input=Comment("pNSO45&)0tO\\e`^ 
> ]{4EU>6E<%$%*")
> │ > │ input=Integer(-1695621145093210279)
> │ > │ input=Operator("+")
> │ > │ input=Integer(7883738429121975897)
> │ > │ input=StringLiteral("ZX.($]'?]l?D")
> │ > │ 
> input=StringLiteral("ty]^9&/%vGEY/OOV$^cK#}")
> │ > │ 
> input=Comment("~&$8\"2~'<[:Y9.o\\L*5r\"S}{")
> │ > │ input=Operator(")")
> │ > │ input=StringLiteral(":M?Jn")
> │ > │ input=Comment("Q?9.")
> │ > │ input=Integer(7162419005757960625)
> │ > │ 
> input=Comment("]4{\"B'NS4\\Z:Q$*.*#\\{'[S@jYO+v*6r")
> │ > │ input=Operator("-")
> │ > │ input=StringLiteral("1W(/<yja*")
> │ > │ input=Operator("+")
> │ > │ 
> │ > │ 
> │ > │ successes:
> │ > │     
> │ > 
> adding_and_then_removing_an_item_from_the_cart_leaves_the_cart_unchanged
> │ > │     prop_parse_format_idempotent
> │ > │     test_parse_number
> │ > │ 
> │ > │ test result: ok. 3 passed; 0 failed; 0 
> ignored; 0 measured; 0
> │ > filtered out; finished in 0.12s
> │ > │ 
> │ > │ 
> │ > 
> │ > ── markdown 
> ────────────────────────────────────────────────────────────────────
> │ > │ ### execute the binary in release mode
> │ > 
> │ > ── pwsh 
> ────────────────────────────────────────────────────────────────────────
> │ > { . 
> $ScriptDir/../../../../workspace/target/release/spiral_temp_test$(_exe) } | 
> │ > Invoke-Block
> │ > 
> │ > ── [ 20.36ms - stdout ] 
> ────────────────────────────────────────────────────────
> │ > │ app=test
> │ > │ 
> │ 00:00:55 v #3 runtime.execute_with_options / result / {
> exit_code = 0; std_trace_length = 94833 }
> │ 00:00:55 d #4 runtime.execute_with_options / { 
> file_name = jupyter; arguments = ["nbconvert", 
> "c:/home/git/polyglot/apps/spiral/temp/test/build.dib.ipynb", "--to", "html", 
> "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert 
> "c:/home/git/polyglot/apps/spiral/temp/test/build.dib.ipynb" --to html 
> --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = 
> Array(MutCell([])); on_line = None; stdin = None; trace = true; 
> working_directory = None } }
> │ 00:00:56 v #5 ! [NbConvertApp] Converting notebook 
> c:/home/git/polyglot/apps/spiral/temp/test/build.dib.ipynb to html
> │ 00:00:56 v #6 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.
> py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a 
> hard error in future nbformat versions. You may want to use `normalize()` on 
> your notebooks before validations (available since nbformat 5.1.4). Previous 
> versions of nbformat are fixing this issue transparently, and will stop doing so
> in the future.
> │ 00:00:56 v #7 !   validate(nb)
> │ 00:00:57 v #8 ! 
> C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\
> highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python
> 3
> │ 00:00:57 v #9 !   return _pygments_highlight(
> │ 00:00:57 v #10 ! [NbConvertApp] Writing 373422 bytes to
> c:\home\git\polyglot\apps\spiral\temp\test\build.dib.html
> │ 00:00:57 v #11 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 874 }
> │ 00:00:57 d #12 spiral.run / dib / jupyter nbconvert / {
> exit_code = 0; jupyter_result_length = 874 }
> │ 00:00:57 d #13 runtime.execute_with_options / { 
> file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 
> 'c:/home/git/polyglot/apps/spiral/temp/test/build.dib.html'; (Get-Content $path 
> -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + 
> $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1;
> $path = 'c:/home/git/polyglot/apps/spiral/temp/test/build.dib.html'; 
> (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { 
> $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = 
> None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; 
> trace = true; working_directory = None } }
> │ 00:00:58 v #14 runtime.execute_with_options / result / 
> { exit_code = 0; std_trace_length = 0 }
> │ 00:00:58 d #15 spiral.run / dib / html cell ids / { 
> exit_code = 0; pwsh_replace_html_result_length = 0 }
> │ 00:00:58 d #16 spiral.run / dib / { exit_code = 0; 
> result_length = 95766 }
> │ polyglot/scripts/core.ps1/GetFullPath / Path: ./build.py / 
> Location: C:\home\git\polyglot\apps\spiral\temp\blender / ResolvedLocation: 
> C:\home\git\polyglot\apps\spiral\temp\blender
> │ polyglot/scripts/core.ps1/GetFullPath / FullPath: 
> C:\home\git\polyglot\apps\spiral\temp\blender\build.py
> │ blender / Path: 
> C:\home\git\polyglot\apps\spiral\temp\blender\build.py
> │ TBBmalloc: skip allocation functions replacement in 
> ucrtbase.dll: unknown prologue for function _aligned_free
> │ Blender 4.4.0 (hash 05377985c527 built 2025-03-18 03:22:03)
> │ Fra:1 Mem:10.15M (Peak 10.15M) | Time:00:00.00 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Synchronizing object | Cube
> │ Fra:1 Mem:10.23M (Peak 10.23M) | Time:00:00.01 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Initializing
> │ Fra:1 Mem:10.07M (Peak 10.23M) | Time:00:00.01 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Waiting for render to start
> │ Fra:1 Mem:10.08M (Peak 10.23M) | Time:00:00.01 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Loading render kernels (may take a few minutes 
> the first time)
> │ Fra:1 Mem:10.08M (Peak 10.23M) | Time:00:00.01 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Updating Scene
> │ Fra:1 Mem:10.08M (Peak 10.23M) | Time:00:00.01 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Updating Shaders
> │ Fra:1 Mem:10.16M (Peak 10.23M) | Time:00:00.01 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Updating Procedurals
> │ Fra:1 Mem:10.16M (Peak 10.23M) | Time:00:00.01 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Updating Background
> │ Fra:1 Mem:10.16M (Peak 10.23M) | Time:00:00.01 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Updating Camera
> │ Fra:1 Mem:10.16M (Peak 10.23M) | Time:00:00.01 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Updating Meshes Flags
> │ Fra:1 Mem:10.16M (Peak 10.23M) | Time:00:00.01 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Updating Objects
> │ Fra:1 Mem:10.16M (Peak 10.23M) | Time:00:00.01 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Updating Objects | Copying Transformations to 
> device
> │ Fra:1 Mem:10.16M (Peak 10.23M) | Time:00:00.01 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Updating Objects | Applying Static 
> Transformations
> │ Fra:1 Mem:10.16M (Peak 10.23M) | Time:00:00.01 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Updating Particle Systems
> │ Fra:1 Mem:10.16M (Peak 10.23M) | Time:00:00.01 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Updating Particle Systems | Copying Particles to
> device
> │ Fra:1 Mem:10.16M (Peak 10.23M) | Time:00:00.01 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Updating Meshes
> │ Fra:1 Mem:10.17M (Peak 10.23M) | Time:00:00.01 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Updating Mesh | Computing attributes
> │ Fra:1 Mem:10.18M (Peak 10.23M) | Time:00:00.01 | Mem:0.00M, 
> Peak:0.00M | Scene, ViewLayer | Updating Mesh | Copying Attributes to device
> │ Fra:1 Mem:10.18M (Peak 10.23M) | Time:00:00.01 | Mem:0.01M, 
> Peak:0.01M | Scene, ViewLayer | Updating Scene BVH | Building
> │ Fra:1 Mem:10.18M (Peak 10.23M) | Time:00:00.01 | Mem:0.01M, 
> Peak:0.01M | Scene, ViewLayer | Updating Scene BVH | Building BVH
> │ Fra:1 Mem:10.18M (Peak 10.23M) | Time:00:00.02 | Mem:0.04M, 
> Peak:0.04M | Scene, ViewLayer | Updating Scene BVH | Building BVH 0%
> │ Fra:1 Mem:10.18M (Peak 10.23M) | Time:00:00.02 | Mem:0.07M, 
> Peak:0.10M | Scene, ViewLayer | Updating Scene BVH | Copying BVH to device
> │ Fra:1 Mem:10.18M (Peak 10.23M) | Time:00:00.02 | Mem:0.07M, 
> Peak:0.10M | Scene, ViewLayer | Updating Mesh | Computing normals
> │ Fra:1 Mem:10.21M (Peak 10.23M) | Time:00:00.02 | Mem:0.07M, 
> Peak:0.10M | Scene, ViewLayer | Updating Mesh | Copying Mesh to device
> │ Fra:1 Mem:10.21M (Peak 10.23M) | Time:00:00.02 | Mem:0.11M, 
> Peak:0.11M | Scene, ViewLayer | Updating Objects Flags
> │ Fra:1 Mem:10.21M (Peak 10.23M) | Time:00:00.02 | Mem:0.11M, 
> Peak:0.11M | Scene, ViewLayer | Updating Primitive Offsets
> │ Fra:1 Mem:10.21M (Peak 10.23M) | Time:00:00.02 | Mem:0.11M, 
> Peak:0.11M | Scene, ViewLayer | Updating Images
> │ Fra:1 Mem:10.21M (Peak 10.23M) | Time:00:00.02 | Mem:0.11M, 
> Peak:0.11M | Scene, ViewLayer | Updating Camera Volume
> │ Fra:1 Mem:10.21M (Peak 10.23M) | Time:00:00.02 | Mem:0.11M, 
> Peak:0.11M | Scene, ViewLayer | Updating Lookup Tables
> │ Fra:1 Mem:10.21M (Peak 10.23M) | Time:00:00.02 | Mem:0.19M, 
> Peak:0.19M | Scene, ViewLayer | Updating Lights
> │ Fra:1 Mem:10.21M (Peak 10.23M) | Time:00:00.02 | Mem:0.19M, 
> Peak:0.19M | Scene, ViewLayer | Updating Lights | Computing tree
> │ Fra:1 Mem:10.21M (Peak 10.23M) | Time:00:00.02 | Mem:0.19M, 
> Peak:0.19M | Scene, ViewLayer | Updating Integrator
> │ Fra:1 Mem:10.21M (Peak 10.23M) | Time:00:00.02 | Mem:0.19M, 
> Peak:0.19M | Scene, ViewLayer | Updating Film
> │ Fra:1 Mem:10.22M (Peak 10.23M) | Time:00:00.02 | Mem:0.11M, 
> Peak:0.19M | Scene, ViewLayer | Updating Lookup Tables
> │ Fra:1 Mem:10.22M (Peak 10.23M) | Time:00:00.02 | Mem:0.19M, 
> Peak:0.19M | Scene, ViewLayer | Updating Baking
> │ Fra:1 Mem:10.22M (Peak 10.23M) | Time:00:00.02 | Mem:0.19M, 
> Peak:0.19M | Scene, ViewLayer | Updating Device | Writing constant memory
> │ Fra:1 Mem:10.22M (Peak 10.23M) | Time:00:00.02 | Mem:0.19M, 
> Peak:0.19M | Scene, ViewLayer | Loading denoising kernels (may take a few 
> minutes the first time)
> │ Fra:1 Mem:10.22M (Peak 10.23M) | Time:00:00.02 | Mem:0.19M, 
> Peak:0.19M | Scene, ViewLayer | Sample 0/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:00.19 | 
> Remaining:11:38.70 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:11.87 | 
> Remaining:09:54.82 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 80/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:12.59 | 
> Remaining:08:43.91 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 96/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:13.30 | 
> Remaining:07:52.45 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 112/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:14.01 | 
> Remaining:07:13.75 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 128/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:14.70 | 
> Remaining:06:42.82 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 144/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:15.35 | 
> Remaining:06:17.14 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 160/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:16.01 | 
> Remaining:05:56.03 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 176/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:16.63 | 
> Remaining:05:37.81 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 192/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:17.23 | 
> Remaining:05:21.75 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 208/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:17.83 | 
> Remaining:05:07.91 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 224/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:18.41 | 
> Remaining:04:55.46 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 240/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:18.97 | 
> Remaining:04:44.24 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 256/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:19.52 | 
> Remaining:04:34.09 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 272/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:20.04 | 
> Remaining:04:24.71 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 288/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:20.63 | 
> Remaining:04:17.10 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 304/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:21.14 | 
> Remaining:04:09.15 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 320/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:21.64 | 
> Remaining:04:01.88 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 336/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:22.12 | 
> Remaining:03:55.02 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 352/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:22.59 | 
> Remaining:03:48.61 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 368/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:23.04 | 
> Remaining:03:42.52 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 384/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:23.55 | 
> Remaining:03:37.39 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 400/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:23.97 | 
> Remaining:03:31.89 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 416/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:24.40 | 
> Remaining:03:26.74 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 432/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:24.81 | 
> Remaining:03:21.82 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 448/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:25.21 | 
> Remaining:03:17.17 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 464/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:25.61 | 
> Remaining:03:12.77 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 480/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:26.00 | 
> Remaining:03:08.56 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 496/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:26.38 | 
> Remaining:03:04.50 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 512/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:26.75 | 
> Remaining:03:00.65 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 528/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:27.11 | 
> Remaining:02:56.90 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 544/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:27.48 | 
> Remaining:02:53.36 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 560/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:27.82 | 
> Remaining:02:49.90 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 576/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:28.17 | 
> Remaining:02:46.64 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 592/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:28.52 | 
> Remaining:02:43.51 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 608/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:28.86 | 
> Remaining:02:40.46 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 624/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:29.19 | 
> Remaining:02:37.49 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 640/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:29.51 | 
> Remaining:02:34.63 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 656/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:29.82 | 
> Remaining:02:31.83 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 672/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:30.14 | 
> Remaining:02:29.20 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 688/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:30.45 | 
> Remaining:02:26.60 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 704/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:30.75 | 
> Remaining:02:24.07 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 720/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:31.03 | 
> Remaining:02:21.57 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 736/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:31.41 | 
> Remaining:02:19.57 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 752/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:31.69 | 
> Remaining:02:17.21 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 768/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:31.96 | 
> Remaining:02:14.92 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 784/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:32.23 | 
> Remaining:02:12.69 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 800/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:32.50 | 
> Remaining:02:10.56 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 816/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:32.76 | 
> Remaining:02:08.45 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 832/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:33.02 | 
> Remaining:02:06.38 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 848/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:33.27 | 
> Remaining:02:04.37 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 864/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:33.55 | 
> Remaining:02:02.54 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 880/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:33.80 | 
> Remaining:02:00.63 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 896/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:34.05 | 
> Remaining:01:58.78 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 912/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:34.29 | 
> Remaining:01:56.97 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 928/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:34.52 | 
> Remaining:01:55.18 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 944/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:34.74 | 
> Remaining:01:53.42 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 960/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:34.96 | 
> Remaining:01:51.70 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 976/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:35.18 | 
> Remaining:01:50.01 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 992/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:35.40 | 
> Remaining:01:48.37 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1008/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:35.61 | 
> Remaining:01:46.76 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1024/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:35.82 | 
> Remaining:01:45.19 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1040/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:36.03 | 
> Remaining:01:43.65 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1056/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:36.23 | 
> Remaining:01:42.14 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1072/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:36.44 | 
> Remaining:01:40.67 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1088/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:36.63 | 
> Remaining:01:39.21 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1104/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:36.82 | 
> Remaining:01:37.79 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1120/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:37.02 | 
> Remaining:01:36.39 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1136/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:37.20 | 
> Remaining:01:35.01 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1152/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:37.39 | 
> Remaining:01:33.67 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1168/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:37.58 | 
> Remaining:01:32.37 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1184/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:37.76 | 
> Remaining:01:31.08 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1200/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:37.94 | 
> Remaining:01:29.80 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1216/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:38.11 | 
> Remaining:01:28.55 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1232/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:38.28 | 
> Remaining:01:27.31 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1248/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:38.46 | 
> Remaining:01:26.12 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1264/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:38.63 | 
> Remaining:01:24.94 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1280/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:38.80 | 
> Remaining:01:23.77 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1296/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:38.96 | 
> Remaining:01:22.62 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1312/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:39.13 | 
> Remaining:01:21.50 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1328/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:39.29 | 
> Remaining:01:20.40 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1344/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:39.45 | 
> Remaining:01:19.33 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1360/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:39.61 | 
> Remaining:01:18.26 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1376/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:39.77 | 
> Remaining:01:17.20 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1392/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:39.93 | 
> Remaining:01:16.18 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1408/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:40.08 | 
> Remaining:01:15.16 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1424/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:40.23 | 
> Remaining:01:14.15 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1440/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:40.38 | 
> Remaining:01:13.17 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1456/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:40.53 | 
> Remaining:01:12.21 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1472/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:40.67 | 
> Remaining:01:11.25 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1488/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:40.82 | 
> Remaining:01:10.30 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1504/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:40.96 | 
> Remaining:01:09.37 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1520/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:41.10 | 
> Remaining:01:08.46 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1536/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:41.23 | 
> Remaining:01:07.55 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1552/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:41.37 | 
> Remaining:01:06.67 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1568/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:41.52 | 
> Remaining:01:05.80 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1584/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:41.65 | 
> Remaining:01:04.94 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1600/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:41.79 | 
> Remaining:01:04.09 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1616/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:41.91 | 
> Remaining:01:03.25 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1632/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.04 | 
> Remaining:01:02.41 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1648/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.17 | 
> Remaining:01:01.59 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1664/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.29 | 
> Remaining:01:00.78 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1680/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.42 | 
> Remaining:00:59.99 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1696/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.54 | 
> Remaining:00:59.20 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1712/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.66 | 
> Remaining:00:58.42 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1728/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.78 | 
> Remaining:00:57.66 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1744/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.90 | 
> Remaining:00:56.90 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1760/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.01 | 
> Remaining:00:56.16 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1776/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.13 | 
> Remaining:00:55.42 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1792/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.25 | 
> Remaining:00:54.69 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1808/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.36 | 
> Remaining:00:53.98 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1824/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.48 | 
> Remaining:00:53.28 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1840/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.59 | 
> Remaining:00:52.58 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1856/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.71 | 
> Remaining:00:51.89 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1872/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.82 | 
> Remaining:00:51.22 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1888/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.92 | 
> Remaining:00:50.54 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1904/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.03 | 
> Remaining:00:49.87 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1920/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.13 | 
> Remaining:00:49.21 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1936/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.23 | 
> Remaining:00:48.56 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1952/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.34 | 
> Remaining:00:47.92 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1968/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.45 | 
> Remaining:00:47.29 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 1984/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.55 | 
> Remaining:00:46.66 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2000/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.65 | 
> Remaining:00:46.04 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2016/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.75 | 
> Remaining:00:45.42 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2032/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.84 | 
> Remaining:00:44.82 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2048/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.94 | 
> Remaining:00:44.22 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2064/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.04 | 
> Remaining:00:43.63 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2080/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.13 | 
> Remaining:00:43.04 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2096/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.23 | 
> Remaining:00:42.46 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2112/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.32 | 
> Remaining:00:41.89 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2128/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.42 | 
> Remaining:00:41.33 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2144/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.51 | 
> Remaining:00:40.76 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2160/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.59 | 
> Remaining:00:40.21 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2176/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.68 | 
> Remaining:00:39.66 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2192/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.77 | 
> Remaining:00:39.11 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2208/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.85 | 
> Remaining:00:38.57 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2224/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.94 | 
> Remaining:00:38.04 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2240/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.02 | 
> Remaining:00:37.51 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2256/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.10 | 
> Remaining:00:36.99 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2272/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.19 | 
> Remaining:00:36.48 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2288/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.27 | 
> Remaining:00:35.96 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2304/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.34 | 
> Remaining:00:35.46 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2320/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.43 | 
> Remaining:00:34.96 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2336/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.51 | 
> Remaining:00:34.47 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2352/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.59 | 
> Remaining:00:33.98 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2368/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.66 | 
> Remaining:00:33.49 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2384/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.74 | 
> Remaining:00:33.01 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2400/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.81 | 
> Remaining:00:32.53 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2416/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.89 | 
> Remaining:00:32.06 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2432/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.96 | 
> Remaining:00:31.60 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2448/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.03 | 
> Remaining:00:31.13 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2464/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.11 | 
> Remaining:00:30.68 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2480/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.18 | 
> Remaining:00:30.22 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2496/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.25 | 
> Remaining:00:29.78 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2512/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.32 | 
> Remaining:00:29.33 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2528/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.40 | 
> Remaining:00:28.90 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2544/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.47 | 
> Remaining:00:28.47 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2560/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.54 | 
> Remaining:00:28.04 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2576/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.61 | 
> Remaining:00:27.61 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2592/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.69 | 
> Remaining:00:27.19 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2608/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.76 | 
> Remaining:00:26.77 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2624/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.83 | 
> Remaining:00:26.36 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2640/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.89 | 
> Remaining:00:25.95 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2656/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.96 | 
> Remaining:00:25.55 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2672/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.03 | 
> Remaining:00:25.14 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2688/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.10 | 
> Remaining:00:24.74 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2704/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.16 | 
> Remaining:00:24.35 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2720/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.22 | 
> Remaining:00:23.95 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2736/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.29 | 
> Remaining:00:23.57 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2752/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.35 | 
> Remaining:00:23.18 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2768/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.43 | 
> Remaining:00:22.81 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2784/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.49 | 
> Remaining:00:22.43 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2800/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.56 | 
> Remaining:00:22.06 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2816/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.62 | 
> Remaining:00:21.68 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2832/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.68 | 
> Remaining:00:21.32 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2848/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.74 | 
> Remaining:00:20.95 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2864/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.81 | 
> Remaining:00:20.59 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2880/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.87 | 
> Remaining:00:20.23 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2896/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.92 | 
> Remaining:00:19.88 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2912/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.98 | 
> Remaining:00:19.53 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2928/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.04 | 
> Remaining:00:19.18 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2944/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.09 | 
> Remaining:00:18.83 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2960/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.14 | 
> Remaining:00:18.48 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2976/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.20 | 
> Remaining:00:18.14 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 2992/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.25 | 
> Remaining:00:17.80 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3008/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.30 | 
> Remaining:00:17.46 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3024/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.35 | 
> Remaining:00:17.13 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3040/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.41 | 
> Remaining:00:16.80 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3056/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.46 | 
> Remaining:00:16.48 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3072/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.51 | 
> Remaining:00:16.15 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3088/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.56 | 
> Remaining:00:15.83 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3104/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.61 | 
> Remaining:00:15.51 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3120/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.66 | 
> Remaining:00:15.19 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3136/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.71 | 
> Remaining:00:14.88 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3152/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.76 | 
> Remaining:00:14.57 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3168/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.81 | 
> Remaining:00:14.26 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3184/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.86 | 
> Remaining:00:13.95 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3200/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.91 | 
> Remaining:00:13.64 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3216/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.95 | 
> Remaining:00:13.34 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3232/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.00 | 
> Remaining:00:13.04 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3248/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.04 | 
> Remaining:00:12.75 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3264/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.09 | 
> Remaining:00:12.45 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3280/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.13 | 
> Remaining:00:12.16 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3296/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.18 | 
> Remaining:00:11.87 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3312/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.22 | 
> Remaining:00:11.58 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3328/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.27 | 
> Remaining:00:11.29 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3344/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.31 | 
> Remaining:00:11.01 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3360/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.35 | 
> Remaining:00:10.73 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3376/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.40 | 
> Remaining:00:10.45 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3392/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.45 | 
> Remaining:00:10.17 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3408/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.49 | 
> Remaining:00:09.90 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3424/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.53 | 
> Remaining:00:09.63 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3440/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.57 | 
> Remaining:00:09.36 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3456/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.62 | 
> Remaining:00:09.09 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3472/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.66 | 
> Remaining:00:08.82 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3488/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.70 | 
> Remaining:00:08.56 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3504/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.75 | 
> Remaining:00:08.30 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3520/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.79 | 
> Remaining:00:08.04 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3536/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.84 | 
> Remaining:00:07.78 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3552/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.89 | 
> Remaining:00:07.52 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3568/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.93 | 
> Remaining:00:07.27 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3584/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.99 | 
> Remaining:00:07.02 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3600/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.03 | 
> Remaining:00:06.77 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3616/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.07 | 
> Remaining:00:06.52 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3632/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.11 | 
> Remaining:00:06.27 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3648/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.15 | 
> Remaining:00:06.02 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3664/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.19 | 
> Remaining:00:05.78 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3680/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.23 | 
> Remaining:00:05.54 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3696/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.27 | 
> Remaining:00:05.30 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3712/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.31 | 
> Remaining:00:05.06 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3728/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.35 | 
> Remaining:00:04.82 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3744/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.39 | 
> Remaining:00:04.59 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3760/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.44 | 
> Remaining:00:04.35 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3776/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.48 | 
> Remaining:00:04.12 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3792/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.52 | 
> Remaining:00:03.89 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3808/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.56 | 
> Remaining:00:03.66 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3824/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.59 | 
> Remaining:00:03.43 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3840/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.63 | 
> Remaining:00:03.21 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3856/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.67 | 
> Remaining:00:02.98 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3872/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.71 | 
> Remaining:00:02.76 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3888/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.74 | 
> Remaining:00:02.54 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3904/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.78 | 
> Remaining:00:02.32 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3920/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.82 | 
> Remaining:00:02.10 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3936/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.86 | 
> Remaining:00:01.88 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3952/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.89 | 
> Remaining:00:01.67 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3968/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.93 | 
> Remaining:00:01.45 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 3984/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.97 | 
> Remaining:00:01.24 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 4000/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.00 | 
> Remaining:00:01.03 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 4016/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.04 | 
> Remaining:00:00.82 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 4032/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.07 | 
> Remaining:00:00.61 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 4048/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.11 | 
> Remaining:00:00.41 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 4064/4096
> │ Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.15 | 
> Remaining:00:00.20 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 
> 4080/4096
> │ Fra:1 Mem:118.31M (Peak 166.31M) | Time:01:01.75 | 
> Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 4096/4096
> │ Fra:1 Mem:118.31M (Peak 166.31M) | Time:01:01.75 | 
> Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Finished
> │ Saved: 'C:\spiral_blender.png'
> │ Time: 01:02.10 (Saving: 00:00.34)
> │ 
> │ 
> │ Blender quit
> │ 
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> { pwsh ../apps/spiral/vscode/build.ps1 } | Invoke-Block
> 
> ── [ 4.61s - stdout ] ──────────────────────────────────────────────────────────
> │ bun install v1.2.7 (5c0fa6dc)
> │ 
> │ Checked 242 installs across 234 packages (no changes) 
> [279.00ms]
> │ polyglot/scripts/core.ps1/GetFullPath / Path: ./LICENSE / 
> Location: C:\home\git\polyglot\apps\spiral\vscode / ResolvedLocation: 
> C:\home\git\polyglot\apps\spiral\vscode
> │ polyglot/scripts/core.ps1/GetFullPath / FullPath: 
> C:\home\git\polyglot\apps\spiral\vscode\LICENSE
> │ polyglot/scripts/core.ps1/EnsureSymbolicLink / Parent: 
> C:\home\git\polyglot\apps\spiral\vscode / Path: 
> C:\home\git\polyglot\apps\spiral\vscode\LICENSE
> │ polyglot/scripts/core.ps1/GetFullPath / Path: 
> ../../../LICENSE / Location: C:\home\git\polyglot\apps\spiral\vscode / 
> ResolvedLocation: C:\home\git\polyglot\apps\spiral\vscode
> │ polyglot/scripts/core.ps1/GetFullPath / FullPath: 
> C:\home\git\polyglot\LICENSE
> │ polyglot/scripts/core.ps1/EnsureSymbolicLink / FullPath: 
> C:\home\git\polyglot\apps\spiral\vscode\LICENSE / Target: 
> C:\home\git\polyglot\LICENSE / ResolvedTarget: C:\home\git\polyglot\LICENSE
> │ polyglot/scripts/core.ps1/EnsureSymbolicLink / Symlink 
> already exists: C:\home\git\polyglot\apps\spiral\vscode\LICENSE -> 
> C:\home\git\polyglot\LICENSE
> │ 
> │   out\src\extension.js                  2.4kb
> │   out\media\cellOutputScrollButtons.js  1.9kb
> │ 
> │ ⚡ Done in 9ms
> │  WARNING  Neither a .vscodeignore file nor a "files" 
> property in package.json was found. To ensure only necessary files are included 
> in your extension, add a .vscodeignore file or specify the "files" property in 
> package.json. More info: https://aka.ms/vscode-vscodeignore
> │ 
> │  INFO  Files included in the VSIX:
> │ spiral-vscode-0.0.1.vsix
> │ ├─ [Content_Types].xml 
> │ ├─ extension.vsixmanifest 
> │ └─ extension/
> │    ├─ .gitignore [0.01 KB]
> │    ├─ LICENSE.txt [33.71 KB]
> │    ├─ build.ps1 [0.41 KB]
> │    ├─ bun.lockb [86.98 KB]
> │    ├─ compile.ps1 [0.48 KB]
> │    ├─ package.json [1.55 KB]
> │    ├─ media/
> │    │  └─ cellOutputScrollButtons.ts [1.8 KB]
> │    ├─ node_modules/
> │    │  └─ vscode-uri/
> │    │     ├─ .lsifrc.json [0.12 KB]
> │    │     ├─ LICENSE.md [1.04 KB]
> │    │     ├─ README.md [2.42 KB]
> │    │     ├─ package.json [1.06 KB]
> │    │     ├─ .github/
> │    │     │  └─ workflows/ (1 file) [0.62 KB]
> │    │     └─ lib/
> │    │        ├─ esm/ (2 files) [72.76 KB]
> │    │        └─ umd/ (7 files) [92.51 KB]
> │    ├─ out/
> │    │  ├─ media/
> │    │  │  └─ cellOutputScrollButtons.js [1.86 KB]
> │    │  └─ src/
> │    │     └─ extension.js [2.44 KB]
> │    └─ src/
> │       └─ extension.ts [1.38 KB]
> │ 
> │  DONE  Packaged: out\spiral-vscode-0.0.1.vsix (26 files, 
> 106.76 KB)
> │ 
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> { pwsh ../apps/ipfs/build.ps1 } | Invoke-Block
> 
> ── [ 650.52ms - stdout ] ───────────────────────────────────────────────────────
> │ bun install v1.2.7 (5c0fa6dc)
> │ 
> │ Done! Checked 221 packages (no changes) [181.00ms]
> │ 
> 
> ── pwsh ────────────────────────────────────────────────────────────────────────
> { pwsh ./outdated.ps1 } | Invoke-Block
> 
> ── [ 1.30m - stdout ] ──────────────────────────────────────────────────────────
> │ Paket version 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
> │ Resolving dependency graph...
> │ Outdated packages found:
> │   Group: Main
> │     * Argu 6.2.4 -> 6.2.5
> │     * Expecto.FsCheck 11.0.0-alpha8 -> 11.0.0-alpha8-fscheck2
> │     * Fable.Core 4.3 -> 4.5.0
> │     * FsCheck 3.0.1 -> 2.16.6
> │     * Microsoft.AspNetCore.App.Ref 9.0.3 -> 
> 10.0.0-preview.2.25164.1
> │     * Microsoft.AspNetCore.Connections.Abstractions 7.0 -> 
> 10.0.0-preview.2.25164.1
> │     * Microsoft.AspNetCore.Http.Connections.Client 7.0 -> 
> 10.0.0-preview.2.25164.1
> │     * Microsoft.AspNetCore.Http.Connections.Common 7.0 -> 
> 10.0.0-preview.2.25164.1
> │     * Microsoft.AspNetCore.SignalR.Client 7.0 -> 
> 10.0.0-preview.2.25164.1
> │     * Microsoft.AspNetCore.SignalR.Client.Core 7.0 -> 
> 10.0.0-preview.2.25164.1
> │     * Microsoft.AspNetCore.SignalR.Common 7.0 -> 
> 10.0.0-preview.2.25164.1
> │     * Microsoft.AspNetCore.SignalR.Protocols.Json 7.0 -> 
> 10.0.0-preview.2.25164.1
> │     * Microsoft.Bcl.AsyncInterfaces 9.0.3 -> 
> 10.0.0-preview.2.25163.2
> │     * Microsoft.Extensions.DependencyInjection 9.0.3 -> 
> 10.0.0-preview.2.25163.2
> │     * Microsoft.Extensions.DependencyInjection.Abstractions 
> 9.0.3 -> 10.0.0-preview.2.25163.2
> │     * Microsoft.Extensions.Features 7.0 -> 
> 10.0.0-preview.2.25164.1
> │     * Microsoft.Extensions.Logging 9.0.3 -> 
> 10.0.0-preview.2.25163.2
> │     * Microsoft.Extensions.Logging.Abstractions 9.0.3 -> 
> 10.0.0-preview.2.25163.2
> │     * Microsoft.Extensions.Options 9.0.3 -> 
> 10.0.0-preview.2.25163.2
> │     * Microsoft.Extensions.Primitives 9.0.3 -> 
> 10.0.0-preview.2.25163.2
> │     * System.CodeDom 9.0.3 -> 10.0.0-preview.2.25163.2
> │     * System.IO.Pipelines 9.0.3 -> 10.0.0-preview.2.25163.2
> │     * System.Management 7.0 -> 10.0.0-preview.2.25163.2
> │     * System.Threading.Channels 9.0.3 -> 
> 10.0.0-preview.2.25163.2
> │     * System.Threading.Tasks.Extensions 4.6.1 -> 4.6.2
> │ Total time taken: 41 seconds
> │ 
> │ CheckToml / toml: C:\home\git\polyglot\workspace\Cargo.toml
> │ chat_contract_tests
> │ ================
> │ Name                Project  Compat   Latest   Kind    
> Platform
> │ ----                -------  ------   ------   ----    
> --------
> │ equivalent          1.0.1    Removed  Removed  Normal  ---
> │ hashbrown           0.15.2   0.12.3   0.12.3   Normal  ---
> │ indexmap            2.7.0    1.9.3    1.9.3    Normal  ---
> │ near-sandbox-utils  0.9.0    0.8.0    0.8.0    Normal  ---
> │ 
> │ CheckToml / toml: 
> C:\home\git\polyglot\apps\chat\contract\Cargo.toml
> │ error: failed to download `hybrid-array v0.3.0`
> │ 
> │ Caused by:
> │   unable to get packages from source
> │ 
> │ Caused by:
> │   failed to parse manifest at 
> `C:\Users\i574n\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22
> bba15001f\hybrid-array-0.3.0\Cargo.toml`
> │ 
> │ Caused by:
> │   feature `edition2024` is required
> │ 
> │   The package requires the Cargo feature called 
> `edition2024`, but that feature is not stabilized in this version of Cargo 
> (1.81.0).
> │   Consider trying a more recent nightly release.
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for
> more information about the status of this feature.
> │ 
> │ # Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: 
> C:\home\git\polyglot\scripts / $OnError: Continue / $exitcode: 1 / $Error: '' / 
> $ScriptBlock:
> │ 'cargo outdated -m $toml @_args'
> │ 
> │ 
> │ CheckToml / toml: 
> C:\home\git\polyglot\apps\chat\contract\tests\Cargo.toml
> │ error: failed to download `hybrid-array v0.3.0`
> │ 
> │ Caused by:
> │   unable to get packages from source
> │ 
> │ Caused by:
> │   failed to parse manifest at 
> `C:\Users\i574n\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22
> bba15001f\hybrid-array-0.3.0\Cargo.toml`
> │ 
> │ Caused by:
> │   feature `edition2024` is required
> │ 
> │   The package requires the Cargo feature called 
> `edition2024`, but that feature is not stabilized in this version of Cargo 
> (1.81.0).
> │   Consider trying a more recent nightly release.
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for
> more information about the status of this feature.
> │ 
> │ # Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: 
> C:\home\git\polyglot\scripts / $OnError: Continue / $exitcode: 1 / $Error: '' / 
> $ScriptBlock:
> │ 'cargo outdated -m $toml @_args'
> │ 
> │ 
> │ CheckToml / toml: C:\home\git\polyglot\apps\plot\Cargo.toml
> │ error: failed to download `hybrid-array v0.3.0`
> │ 
> │ Caused by:
> │   unable to get packages from source
> │ 
> │ Caused by:
> │   failed to parse manifest at 
> `C:\Users\i574n\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22
> bba15001f\hybrid-array-0.3.0\Cargo.toml`
> │ 
> │ Caused by:
> │   feature `edition2024` is required
> │ 
> │   The package requires the Cargo feature called 
> `edition2024`, but that feature is not stabilized in this version of Cargo 
> (1.81.0).
> │   Consider trying a more recent nightly release.
> │   See 
> https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for
> more information about the status of this feature.
> │ 
> │ # Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: 
> C:\home\git\polyglot\scripts / $OnError: Continue / $exitcode: 1 / $Error: '' / 
> $ScriptBlock:
> │ 'cargo outdated -m $toml @_args'
> │ 
> │ 
> │ CheckJson / json: C:/home/git/polyglot
> │ $ npm-check-updates --target greatest
> │ Using bun
> │ Checking C:\home\git\polyglot\package.json
> │ 
> │ 
> │  @types/node          ~22.10  →    ~22.13
> │  npm-check-updates  ~17.1.14  →  ~17.1.16
> │ 
> │ Run ncu --target greatest -u to upgrade package.json
> │ 
> │ CheckJson / json: C:/home/git/polyglot/apps/ipfs
> │ $ npm-check-updates --target greatest
> │ Using bun
> │ Checking C:\home\git\polyglot\apps\ipfs\package.json
> │ 
> │ 
> │  @types/node          ~22.10  →    ~22.13
> │  npm-check-updates  ~17.1.14  →  ~17.1.16
> │ 
> │ Run ncu --target greatest -u to upgrade package.json
> │ 
> │ CheckJson / json: 
> C:/home/git/polyglot/apps/spiral/temp/extension
> │ $ npm-check-updates --target greatest
> │ Using bun
> │ Checking 
> C:\home\git\polyglot\apps\spiral\temp\extension\package.json
> │ 
> │ 
> │  @playwright/test     1.44.0  →  1.52.0-alpha-2025-03-29
> │  @types/chrome      ~0.0.268  →                 ~0.0.313
> │  npm-check-updates  ~17.1.14  →                 ~17.1.16
> │ 
> │ Run ncu --target greatest -u to upgrade package.json
> │ 
> │ CheckJson / json: C:/home/git/polyglot/apps/spiral/vscode
> │ $ npm-check-updates --target greatest
> │ Using bun
> │ Checking C:\home\git\polyglot\apps\spiral\vscode\package.json
> │ 
> │ 
> │  @types/node          ~22.10  →    ~22.13
> │  @types/vscode         ~1.96  →     ~1.98
> │  npm-check-updates  ~17.1.14  →  ~17.1.16
> │ 
> │ Run ncu --target greatest -u to upgrade package.json
> │ 
> │ CheckJson / json: 
> C:/home/git/polyglot/deps/The-Spiral-Language/VS Code Plugin
> │ $ npm-check-updates --target greatest
> │ Checking C:\home\git\polyglot\deps\The-Spiral-Language\VS 
> Code Plugin\package.json
> │ 
> │ 
> │  @microsoft/signalr     8.0.0  →     8.0.7
> │  @types/node           ~22.10  →    ~22.13
> │  @types/vscode          ~1.95  →     ~1.98
> │  @vscode/vsce            ~3.2  →      ~3.3
> │  esbuild                ~0.24  →     ~0.25
> │  npm-check-updates   ~17.1.14  →  ~17.1.16
> │  portfinder           ^1.0.32  →   ^1.0.35
> │ 
> │ Run ncu --target greatest -u to upgrade package.json
> │ 
00:59:42 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 2645103 }
00:59:42 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/scripts/build.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/scripts/build.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:59:44 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/scripts/build.dib.ipynb to html
00:59:44 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:59:44 v #7 !   validate(nb)
00:59:44 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:59:44 v #9 !   return _pygments_highlight(
00:59:52 v #10 ! [NbConvertApp] Writing 2786399 bytes to c:\home\git\polyglot\scripts\build.dib.html
00:59:52 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 847 }
00:59:52 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 847 }
00:59:52 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/scripts/build.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/scripts/build.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:59:52 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:59:52 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:59:52 d #16 spiral.run / dib / { exit_code = 0; result_length = 2646009 }
dice/lib/build.ps1 / ScriptDir: C:\home\git\dice\lib / ResolvedScriptDir: C:\home\git\dice\lib
00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "C:\home\git\dice\lib/dice.dib"])) }
00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/dice/lib/dice.dib", "--output-path", "c:/home/git/dice/lib/dice.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/dice/lib/dice.dib" --output-path "c:/home/git/dice/lib/dice.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ # dice (Dice)
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> open testing
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## sixth_power_sequence
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl sixth_power_sequence () =
>     stream.iterate_map ((*) 6) (fun x => if x <= 0 then None else Some x) 1
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> sixth_power_sequence ()
> |> stream.take_while (fun _ i => i <= 7i32)
> |> stream.to_list
> |> _assert_eq [[ 1u64; 6; 36; 216; 1296; 7776; 46656; 279936 ]]
> 
> ── [ 1.36s - stdout ] ──────────────────────────────────────────────────────────
> │ { name = __assert_eq; actual = UH0_1
> │   (1UL,
> │    UH0_1
> │      (6UL,
> │       UH0_1
> │         (36UL,
> │          UH0_1
> │            (216UL,
> │             UH0_1
> │               (1296UL, UH0_1 (7776UL, UH0_1 (46656UL, UH0_1 
> (279936UL, UH0_0)))))))); expected = UH0_1
> │   (1UL,
> │    UH0_1
> │      (6UL,
> │       UH0_1
> │         (36UL,
> │          UH0_1
> │            (216UL,
> │             UH0_1
> │               (1296UL, UH0_1 (7776UL, UH0_1 (46656UL, UH0_1 
> (279936UL, UH0_0)))))))) }
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## accumulate_dice_rolls
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl accumulate_dice_rolls
>     (rolls : list u8)
>     (power : i8)
>     acc
>     =
>     inl rec body acc power rolls =
>         match rolls with
>         | _ when power < 0 =>
>             inl result = acc + 1
>             trace Debug
>                 fun () => "dice.accumulate_dice_rolls"
>                 fun () => { power acc result }
>             Some (result, rolls)
>         | [[]] => None
>         | roll :: rest when roll > 1 =>
>             inl coeff = sixth_power_sequence () |> stream.item power
>             inl value = conv (roll - 1) * coeff
>             trace Debug
>                 fun () => "dice.accumulate_dice_rolls"
>                 fun () => { power acc roll value }
>             loop (acc + value) (power - 1) rest
>         | roll :: rest =>
>             trace Debug
>                 fun () => "dice.accumulate_dice_rolls"
>                 fun () => { power acc roll }
>             loop acc (power - 1) rest
>     and inl loop acc power rolls =
>         if var_is rolls |> not
>         then body acc power rolls
>         else
>             inl acc = dyn acc
>             join body acc power rolls
>     loop acc power rolls
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> accumulate_dice_rolls [[ 6; 5; 4; 3; 2 ]] 0 1000i32
> |> _assert_eq (Some (1006, [[ 5; 4; 3; 2 ]]))
> 
> ── [ 1.56s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:00 d #1 dice.accumulate_dice_rolls / { power = 0; 
> acc = 1000; roll = 6; value = 5 }
> │ 00:00:00 d #2 dice.accumulate_dice_rolls / { power = -1;
> acc = 1005; result = 1006 }
> │ { name = __assert_eq; actual = US6_0 (1006, UH0_1 (5uy, UH0_1
> (4uy, UH0_1 (3uy, UH0_1 (2uy, UH0_0))))); expected = US6_0 (1006, UH0_1 (5uy, 
> UH0_1 (4uy, UH0_1 (3uy, UH0_1 (2uy, UH0_0))))) }
> │ 
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> accumulate_dice_rolls [[ 6; 5; 4; 3; 2 ]] 1 1000i32
> |> _assert_eq (Some (1035, [[ 4; 3; 2 ]]))
> 
> ── [ 1.49s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:00 d #1 dice.accumulate_dice_rolls / { power = 1; 
> acc = 1000; roll = 6; value = 30 }
> │ 00:00:00 d #2 dice.accumulate_dice_rolls / { power = 0; 
> acc = 1030; roll = 5; value = 4 }
> │ 00:00:00 d #3 dice.accumulate_dice_rolls / { power = -1;
> acc = 1034; result = 1035 }
> │ { name = __assert_eq; actual = US6_0 (1035, UH0_1 (4uy, UH0_1
> (3uy, UH0_1 (2uy, UH0_0)))); expected = US6_0 (1035, UH0_1 (4uy, UH0_1 (3uy, 
> UH0_1 (2uy, UH0_0)))) }
> │ 
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> accumulate_dice_rolls [[ 6; 5; 4; 3; 2 ]] 2 1000i32
> |> _assert_eq (Some (1208, [[ 3; 2 ]]))
> 
> ── [ 1.32s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:00 d #1 dice.accumulate_dice_rolls / { power = 2; 
> acc = 1000; roll = 6; value = 180 }
> │ 00:00:00 d #2 dice.accumulate_dice_rolls / { power = 1; 
> acc = 1180; roll = 5; value = 24 }
> │ 00:00:00 d #3 dice.accumulate_dice_rolls / { power = 0; 
> acc = 1204; roll = 4; value = 3 }
> │ 00:00:00 d #4 dice.accumulate_dice_rolls / { power = -1;
> acc = 1207; result = 1208 }
> │ { name = __assert_eq; actual = US6_0 (1208, UH0_1 (3uy, UH0_1
> (2uy, UH0_0))); expected = US6_0 (1208, UH0_1 (3uy, UH0_1 (2uy, UH0_0))) }
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## roll_within_bounds
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl roll_within_bounds max rolls =
>     inl power = listm.length rolls - 1
>     match accumulate_dice_rolls rolls power 0 with
>     | Some (result, _) when result >= 1 && result <= max => Some result
>     | _ => None
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> roll_within_bounds 2000i32 [[ 1; 5; 4; 4; 5 ]]
> |> _assert_eq (Some 995)
> 
> ── [ 1.40s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:00 d #1 dice.accumulate_dice_rolls / { power = 4; 
> acc = 0; roll = 1 }
> │ 00:00:00 d #2 dice.accumulate_dice_rolls / { power = 3; 
> acc = 0; roll = 5; value = 864 }
> │ 00:00:00 d #3 dice.accumulate_dice_rolls / { power = 2; 
> acc = 864; roll = 4; value = 108 }
> │ 00:00:00 d #4 dice.accumulate_dice_rolls / { power = 1; 
> acc = 972; roll = 4; value = 18 }
> │ 00:00:00 d #5 dice.accumulate_dice_rolls / { power = 0; 
> acc = 990; roll = 5; value = 4 }
> │ 00:00:00 d #6 dice.accumulate_dice_rolls / { power = -1;
> acc = 994; result = 995 }
> │ { name = __assert_eq; actual = US6_0 995; expected = US6_0 
> 995 }
> │ 
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> roll_within_bounds 2000i32 [[ 2; 2; 6; 4; 5 ]]
> |> _assert_eq (Some 1715)
> 
> ── [ 1.17s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:00 d #1 dice.accumulate_dice_rolls / { power = 4; 
> acc = 0; roll = 2; value = 1296 }
> │ 00:00:00 d #2 dice.accumulate_dice_rolls / { power = 3; 
> acc = 1296; roll = 2; value = 216 }
> │ 00:00:00 d #3 dice.accumulate_dice_rolls / { power = 2; 
> acc = 1512; roll = 6; value = 180 }
> │ 00:00:00 d #4 dice.accumulate_dice_rolls / { power = 1; 
> acc = 1692; roll = 4; value = 18 }
> │ 00:00:00 d #5 dice.accumulate_dice_rolls / { power = 0; 
> acc = 1710; roll = 5; value = 4 }
> │ 00:00:00 d #6 dice.accumulate_dice_rolls / { power = -1;
> acc = 1714; result = 1715 }
> │ { name = __assert_eq; actual = US6_0 1715; expected = US6_0 
> 1715 }
> │ 
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> roll_within_bounds 2000i32 [[ 4; 1; 1; 2; 3 ]]
> |> _assert_eq None
> 
> ── [ 918.09ms - stdout ] ───────────────────────────────────────────────────────
> │ 00:00:00 d #1 dice.accumulate_dice_rolls / { power = 4; 
> acc = 0; roll = 4; value = 3888 }
> │ 00:00:00 d #2 dice.accumulate_dice_rolls / { power = 3; 
> acc = 3888; roll = 1 }
> │ 00:00:00 d #3 dice.accumulate_dice_rolls / { power = 2; 
> acc = 3888; roll = 1 }
> │ 00:00:00 d #4 dice.accumulate_dice_rolls / { power = 1; 
> acc = 3888; roll = 2; value = 6 }
> │ 00:00:00 d #5 dice.accumulate_dice_rolls / { power = 0; 
> acc = 3894; roll = 3; value = 2 }
> │ 00:00:00 d #6 dice.accumulate_dice_rolls / { power = -1;
> acc = 3896; result = 3897 }
> │ { name = __assert_eq; actual = US6_1; expected = US6_1 }
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## calculate_dice_count
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl calculate_dice_count max =
>     inl rec body n p =
>         inl return () =
>             trace Debug
>                 fun () => "dice.calculate_dice_count"
>                 fun () => { max p n }
>             n
>         if p < max then
>             inl p' = p * 6
>             if p' > p
>             then loop (n + 1) p'
>             else return ()
>         else return ()
>     and inl loop n p =
>         if var_is max |> not
>         then body n p
>         else
>             inl n = dyn n
>             inl p = dyn p
>             join body n p
>     if max = 1
>     then 1
>     else loop 0 1
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> calculate_dice_count 36i32
> |> _assert_eq 2i32
> 
> ── [ 738.68ms - stdout ] ───────────────────────────────────────────────────────
> │ 00:00:00 d #1 dice.calculate_dice_count / { max = 36; p 
> = 36; n = 2 }
> │ { name = __assert_eq; actual = 2; expected = 2 }
> │ 
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> calculate_dice_count 7777i32
> |> _assert_eq 6i32
> 
> ── [ 742.35ms - stdout ] ───────────────────────────────────────────────────────
> │ 00:00:00 d #1 dice.calculate_dice_count / { max = 7777; 
> p = 46656; n = 6 }
> │ { name = __assert_eq; actual = 6; expected = 6 }
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## roll_dice
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> let roll_dice () : u8 =
>     random' 1 7
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rotate_number
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl rotate_number forall t {number}. (max : i64) (n : t) : t =
>     (conv n - 1 + max) % max + 1 |> conv
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rotate_numbers
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl rotate_numbers max items =
>     items |> stream.map (rotate_number max)
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> listm'.init_series -1 14 1i32
> |> stream.from_list
> |> rotate_numbers 6
> |> stream.to_list
> |> _assert_eq [[ 5; 6; 1; 2; 3; 4; 5; 6; 1; 2; 3; 4; 5; 6; 1; 2 ]]
> 
> ── [ 249.37ms - stdout ] ───────────────────────────────────────────────────────
> │ { name = __assert_eq; actual = UH0_1
> │   (5,
> │    UH0_1
> │      (6,
> │       UH0_1
> │         (1,
> │          UH0_1
> │            (2,
> │             UH0_1
> │               (3,
> │                UH0_1
> │                  (4,
> │                   UH0_1
> │                     (5,
> │                      UH0_1
> │                        (6,
> │                         UH0_1
> │                           (1,
> │                            UH0_1
> │                              (2,
> │                               UH0_1
> │                                 (3,
> │                                  UH0_1
> │                                    (4,
> │                                     UH0_1
> │                                       (5, UH0_1 (6, UH0_1 (1,
> UH0_1 (2, UH0_0)))))))))))))))); expected = UH0_1
> │   (5,
> │    UH0_1
> │      (6,
> │       UH0_1
> │         (1,
> │          UH0_1
> │            (2,
> │             UH0_1
> │               (3,
> │                UH0_1
> │                  (4,
> │                   UH0_1
> │                     (5,
> │                      UH0_1
> │                        (6,
> │                         UH0_1
> │                           (1,
> │                            UH0_1
> │                              (2,
> │                               UH0_1
> │                                 (3,
> │                                  UH0_1
> │                                    (4,
> │                                     UH0_1
> │                                       (5, UH0_1 (6, UH0_1 (1,
> UH0_1 (2, UH0_0)))))))))))))))) }
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## create_sequential_roller
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl create_sequential_roller list =
>     inl s = list |> listm.rev |> listm.append list |> stream.from_list |> 
> stream.memoize
>     inl current_index = mut 0i64
>     inl acc = mut 1
>     inl len = mut -1
>     inl last_item = mut None
>     let rec loop () =
>         fun () =>
>             inl current_index = *current_index
>             inl acc = *acc
>             inl len = *len
>             inl last_item = *last_item |> optionm'.box
>             trace Debug
>                 fun () => "dice.create_sequential_roller / roll"
>                 fun () => { current_index acc len last_item = last_item |> 
> sm'.format_debug }
>         |> fun x => x ()
>         match s () |> stream.try_item *current_index with
>         | Some item =>
>             current_index <- *current_index + 1
>             last_item <- Some item
>             item
>         | None =>
>             trace Debug (fun () => "dice.create_sequential_roller / roll / 
> None") id
>             if *len = -1
>             then len <- *current_index
>             acc <-
>                 if *acc >= *len
>                 then 1
>                 else *acc + 1
>             current_index <- *acc - 1
>             last_item <- None
>             loop ()
>     loop
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> inl sequential_roll = create_sequential_roller [[ 1i32; 2; 3; 4 ]]
> 
> am.init 50i32 (ignore >> sequential_roll)
> |> _assert_eq (a ;[[ 1; 2; 3; 4; 4; 3; 2; 1; 2; 3; 4; 4; 3; 2; 1; 3; 4; 4; 3; 2;
> 1; 4; 4; 3; 2; 1;
> 4; 3; 2; 1; 3; 2; 1; 2; 1; 1; 1; 2; 3; 4; 4; 3; 2; 1; 2; 3; 4; 4; 3; 2 ]] : a 
> i32 i32)
> 
> ── [ 953.75ms - stdout ] ───────────────────────────────────────────────────────
> │ 00:00:00 d #1 dice.create_sequential_roller / roll / { 
> current_index = 0; acc = 1; len = -1; last_item = None }
> │ 00:00:00 d #2 dice.create_sequential_roller / roll / { 
> current_index = 1; acc = 1; len = -1; last_item = Some 1 }
> │ 00:00:00 d #3 dice.create_sequential_roller / roll / { 
> current_index = 2; acc = 1; len = -1; last_item = Some 2 }
> │ 00:00:00 d #4 dice.create_sequential_roller / roll / { 
> current_index = 3; acc = 1; len = -1; last_item = Some 3 }
> │ 00:00:00 d #5 dice.create_sequential_roller / roll / { 
> current_index = 4; acc = 1; len = -1; last_item = Some 4 }
> │ 00:00:00 d #6 dice.create_sequential_roller / roll / { 
> current_index = 5; acc = 1; len = -1; last_item = Some 4 }
> │ 00:00:00 d #7 dice.create_sequential_roller / roll / { 
> current_index = 6; acc = 1; len = -1; last_item = Some 3 }
> │ 00:00:00 d #8 dice.create_sequential_roller / roll / { 
> current_index = 7; acc = 1; len = -1; last_item = Some 2 }
> │ 00:00:00 d #9 dice.create_sequential_roller / roll / { 
> current_index = 8; acc = 1; len = -1; last_item = Some 1 }
> │ 00:00:00 d #10 dice.create_sequential_roller / roll / 
> None
> │ 00:00:00 d #11 dice.create_sequential_roller / roll / { 
> current_index = 1; acc = 2; len = 8; last_item = None }
> │ 00:00:00 d #12 dice.create_sequential_roller / roll / { 
> current_index = 2; acc = 2; len = 8; last_item = Some 2 }
> │ 00:00:00 d #13 dice.create_sequential_roller / roll / { 
> current_index = 3; acc = 2; len = 8; last_item = Some 3 }
> │ 00:00:00 d #14 dice.create_sequential_roller / roll / { 
> current_index = 4; acc = 2; len = 8; last_item = Some 4 }
> │ 00:00:00 d #15 dice.create_sequential_roller / roll / { 
> current_index = 5; acc = 2; len = 8; last_item = Some 4 }
> │ 00:00:00 d #16 dice.create_sequential_roller / roll / { 
> current_index = 6; acc = 2; len = 8; last_item = Some 3 }
> │ 00:00:00 d #17 dice.create_sequential_roller / roll / { 
> current_index = 7; acc = 2; len = 8; last_item = Some 2 }
> │ 00:00:00 d #18 dice.create_sequential_roller / roll / { 
> current_index = 8; acc = 2; len = 8; last_item = Some 1 }
> │ 00:00:00 d #19 dice.create_sequential_roller / roll / 
> None
> │ 00:00:00 d #20 dice.create_sequential_roller / roll / { 
> current_index = 2; acc = 3; len = 8; last_item = None }
> │ 00:00:00 d #21 dice.create_sequential_roller / roll / { 
> current_index = 3; acc = 3; len = 8; last_item = Some 3 }
> │ 00:00:00 d #22 dice.create_sequential_roller / roll / { 
> current_index = 4; acc = 3; len = 8; last_item = Some 4 }
> │ 00:00:00 d #23 dice.create_sequential_roller / roll / { 
> current_index = 5; acc = 3; len = 8; last_item = Some 4 }
> │ 00:00:00 d #24 dice.create_sequential_roller / roll / { 
> current_index = 6; acc = 3; len = 8; last_item = Some 3 }
> │ 00:00:00 d #25 dice.create_sequential_roller / roll / { 
> current_index = 7; acc = 3; len = 8; last_item = Some 2 }
> │ 00:00:00 d #26 dice.create_sequential_roller / roll / { 
> current_index = 8; acc = 3; len = 8; last_item = Some 1 }
> │ 00:00:00 d #27 dice.create_sequential_roller / roll / 
> None
> │ 00:00:00 d #28 dice.create_sequential_roller / roll / { 
> current_index = 3; acc = 4; len = 8; last_item = None }
> │ 00:00:00 d #29 dice.create_sequential_roller / roll / { 
> current_index = 4; acc = 4; len = 8; last_item = Some 4 }
> │ 00:00:00 d #30 dice.create_sequential_roller / roll / { 
> current_index = 5; acc = 4; len = 8; last_item = Some 4 }
> │ 00:00:00 d #31 dice.create_sequential_roller / roll / { 
> current_index = 6; acc = 4; len = 8; last_item = Some 3 }
> │ 00:00:00 d #32 dice.create_sequential_roller / roll / { 
> current_index = 7; acc = 4; len = 8; last_item = Some 2 }
> │ 00:00:00 d #33 dice.create_sequential_roller / roll / { 
> current_index = 8; acc = 4; len = 8; last_item = Some 1 }
> │ 00:00:00 d #34 dice.create_sequential_roller / roll / 
> None
> │ 00:00:00 d #35 dice.create_sequential_roller / roll / { 
> current_index = 4; acc = 5; len = 8; last_item = None }
> │ 00:00:00 d #36 dice.create_sequential_roller / roll / { 
> current_index = 5; acc = 5; len = 8; last_item = Some 4 }
> │ 00:00:00 d #37 dice.create_sequential_roller / roll / { 
> current_index = 6; acc = 5; len = 8; last_item = Some 3 }
> │ 00:00:00 d #38 dice.create_sequential_roller / roll / { 
> current_index = 7; acc = 5; len = 8; last_item = Some 2 }
> │ 00:00:00 d #39 dice.create_sequential_roller / roll / { 
> current_index = 8; acc = 5; len = 8; last_item = Some 1 }
> │ 00:00:00 d #40 dice.create_sequential_roller / roll / 
> None
> │ 00:00:00 d #41 dice.create_sequential_roller / roll / { 
> current_index = 5; acc = 6; len = 8; last_item = None }
> │ 00:00:00 d #42 dice.create_sequential_roller / roll / { 
> current_index = 6; acc = 6; len = 8; last_item = Some 3 }
> │ 00:00:00 d #43 dice.create_sequential_roller / roll / { 
> current_index = 7; acc = 6; len = 8; last_item = Some 2 }
> │ 00:00:00 d #44 dice.create_sequential_roller / roll / { 
> current_index = 8; acc = 6; len = 8; last_item = Some 1 }
> │ 00:00:00 d #45 dice.create_sequential_roller / roll / 
> None
> │ 00:00:00 d #46 dice.create_sequential_roller / roll / { 
> current_index = 6; acc = 7; len = 8; last_item = None }
> │ 00:00:00 d #47 dice.create_sequential_roller / roll / { 
> current_index = 7; acc = 7; len = 8; last_item = Some 2 }
> │ 00:00:00 d #48 dice.create_sequential_roller / roll / { 
> current_index = 8; acc = 7; len = 8; last_item = Some 1 }
> │ 00:00:00 d #49 dice.create_sequential_roller / roll / 
> None
> │ 00:00:00 d #50 dice.create_sequential_roller / roll / { 
> current_index = 7; acc = 8; len = 8; last_item = None }
> │ 00:00:00 d #51 dice.create_sequential_roller / roll / { 
> current_index = 8; acc = 8; len = 8; last_item = Some 1 }
> │ 00:00:00 d #52 dice.create_sequential_roller / roll / 
> None
> │ 00:00:00 d #53 dice.create_sequential_roller / roll / { 
> current_index = 0; acc = 1; len = 8; last_item = None }
> │ 00:00:00 d #54 dice.create_sequential_roller / roll / { 
> current_index = 1; acc = 1; len = 8; last_item = Some 1 }
> │ 00:00:00 d #55 dice.create_sequential_roller / roll / { 
> current_index = 2; acc = 1; len = 8; last_item = Some 2 }
> │ 00:00:00 d #56 dice.create_sequential_roller / roll / { 
> current_index = 3; acc = 1; len = 8; last_item = Some 3 }
> │ 00:00:00 d #57 dice.create_sequential_roller / roll / { 
> current_index = 4; acc = 1; len = 8; last_item = Some 4 }
> │ 00:00:00 d #58 dice.create_sequential_roller / roll / { 
> current_index = 5; acc = 1; len = 8; last_item = Some 4 }
> │ 00:00:00 d #59 dice.create_sequential_roller / roll / { 
> current_index = 6; acc = 1; len = 8; last_item = Some 3 }
> │ 00:00:00 d #60 dice.create_sequential_roller / roll / { 
> current_index = 7; acc = 1; len = 8; last_item = Some 2 }
> │ 00:00:00 d #61 dice.create_sequential_roller / roll / { 
> current_index = 8; acc = 1; len = 8; last_item = Some 1 }
> │ 00:00:00 d #62 dice.create_sequential_roller / roll / 
> None
> │ 00:00:00 d #63 dice.create_sequential_roller / roll / { 
> current_index = 1; acc = 2; len = 8; last_item = None }
> │ 00:00:00 d #64 dice.create_sequential_roller / roll / { 
> current_index = 2; acc = 2; len = 8; last_item = Some 2 }
> │ 00:00:00 d #65 dice.create_sequential_roller / roll / { 
> current_index = 3; acc = 2; len = 8; last_item = Some 3 }
> │ 00:00:00 d #66 dice.create_sequential_roller / roll / { 
> current_index = 4; acc = 2; len = 8; last_item = Some 4 }
> │ 00:00:00 d #67 dice.create_sequential_roller / roll / { 
> current_index = 5; acc = 2; len = 8; last_item = Some 4 }
> │ 00:00:00 d #68 dice.create_sequential_roller / roll / { 
> current_index = 6; acc = 2; len = 8; last_item = Some 3 }
> │ { name = __assert_eq; actual = [|1; 2; 3; 4; 4; 3; 2; 1; 2; 
> 3; 4; 4; 3; 2; 1; 3; 4; 4; 3; 2; 1; 4; 4; 3; 2; 1;
> │   4; 3; 2; 1; 3; 2; 1; 2; 1; 1; 1; 2; 3; 4; 4; 3; 2; 1; 2; 3;
> 4; 4; 3; 2|]; expected = [|1; 2; 3; 4; 4; 3; 2; 1; 2; 3; 4; 4; 3; 2; 1; 3; 4; 4;
> 3; 2; 1; 4; 4; 3; 2; 1;
> │   4; 3; 2; 1; 3; 2; 1; 2; 1; 1; 1; 2; 3; 4; 4; 3; 2; 1; 2; 3;
> 4; 4; 3; 2|] }
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## roll_progressively
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl roll_progressively roll reroll max =
>     inl power = (calculate_dice_count max) - 1
>     let rec loop rolls size =
>         if size < power + 1
>         then loop (roll () :: rolls) (size + 1)
>         else accumulate_dice_rolls rolls power 0 |> function
>             | Some (result, _) when result <= max => result
>             | _ when reroll => loop (listm.init power (fun _ => roll ())) power
>             | _ => loop (roll () :: rolls) (size + 1)
>     loop [[]] 0
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> roll_progressively roll_dice false 1
> |> _assert_eq 1i32
> 
> ── [ 849.15ms - stdout ] ───────────────────────────────────────────────────────
> │ 00:00:00 d #1 dice.accumulate_dice_rolls / { power = 0; 
> acc = 0; roll = 6; value = 5 }
> │ 00:00:00 d #2 dice.accumulate_dice_rolls / { power = -1;
> acc = 5; result = 6 }
> │ 00:00:00 d #3 dice.accumulate_dice_rolls / { power = 0; 
> acc = 0; roll = 6; value = 5 }
> │ 00:00:00 d #4 dice.accumulate_dice_rolls / { power = -1;
> acc = 5; result = 6 }
> │ 00:00:00 d #5 dice.accumulate_dice_rolls / { power = 0; 
> acc = 0; roll = 1 }
> │ 00:00:00 d #6 dice.accumulate_dice_rolls / { power = -1;
> acc = 0; result = 1 }
> │ { name = __assert_eq; actual = 1; expected = 1 }
> │ 
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> inl sequential_roll = create_sequential_roller [[ 5; 4; 4; 5; 1 ]]
> 
> roll_progressively sequential_roll false 2000i32
> |> _assert_eq 995
> 
> ── [ 1.41s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:00 d #1 dice.calculate_dice_count / { max = 2000; 
> p = 7776; n = 5 }
> │ 00:00:00 d #2 dice.create_sequential_roller / roll / { 
> current_index = 0; acc = 1; len = -1; last_item = None }
> │ 00:00:00 d #3 dice.create_sequential_roller / roll / { 
> current_index = 1; acc = 1; len = -1; last_item = Some 5uy }
> │ 00:00:00 d #4 dice.create_sequential_roller / roll / { 
> current_index = 2; acc = 1; len = -1; last_item = Some 4uy }
> │ 00:00:00 d #5 dice.create_sequential_roller / roll / { 
> current_index = 3; acc = 1; len = -1; last_item = Some 4uy }
> │ 00:00:00 d #6 dice.create_sequential_roller / roll / { 
> current_index = 4; acc = 1; len = -1; last_item = Some 5uy }
> │ 00:00:00 d #7 dice.accumulate_dice_rolls / { power = 4; 
> acc = 0; roll = 1 }
> │ 00:00:00 d #8 dice.accumulate_dice_rolls / { power = 3; 
> acc = 0; roll = 5; value = 864 }
> │ 00:00:00 d #9 dice.accumulate_dice_rolls / { power = 2; 
> acc = 864; roll = 4; value = 108 }
> │ 00:00:00 d #10 dice.accumulate_dice_rolls / { power = 1;
> acc = 972; roll = 4; value = 18 }
> │ 00:00:00 d #11 dice.accumulate_dice_rolls / { power = 0;
> acc = 990; roll = 5; value = 4 }
> │ 00:00:00 d #12 dice.accumulate_dice_rolls / { power = 
> -1; acc = 994; result = 995 }
> │ { name = __assert_eq; actual = 995; expected = 995 }
> │ 
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> inl sequential_roll = create_sequential_roller [[ 5; 4; 4; 5; 2 ]]
> 
> roll_progressively sequential_roll false 2000i32
> |> _assert_eq 1678
> 
> ── [ 1.43s - stdout ] ──────────────────────────────────────────────────────────
> │ 00:00:00 d #1 dice.calculate_dice_count / { max = 2000; 
> p = 7776; n = 5 }
> │ 00:00:00 d #2 dice.create_sequential_roller / roll / { 
> current_index = 0; acc = 1; len = -1; last_item = None }
> │ 00:00:00 d #3 dice.create_sequential_roller / roll / { 
> current_index = 1; acc = 1; len = -1; last_item = Some 5uy }
> │ 00:00:00 d #4 dice.create_sequential_roller / roll / { 
> current_index = 2; acc = 1; len = -1; last_item = Some 4uy }
> │ 00:00:00 d #5 dice.create_sequential_roller / roll / { 
> current_index = 3; acc = 1; len = -1; last_item = Some 4uy }
> │ 00:00:00 d #6 dice.create_sequential_roller / roll / { 
> current_index = 4; acc = 1; len = -1; last_item = Some 5uy }
> │ 00:00:00 d #7 dice.accumulate_dice_rolls / { power = 4; 
> acc = 0; roll = 2; value = 1296 }
> │ 00:00:00 d #8 dice.accumulate_dice_rolls / { power = 3; 
> acc = 1296; roll = 5; value = 864 }
> │ 00:00:00 d #9 dice.accumulate_dice_rolls / { power = 2; 
> acc = 2160; roll = 4; value = 108 }
> │ 00:00:00 d #10 dice.accumulate_dice_rolls / { power = 1;
> acc = 2268; roll = 4; value = 18 }
> │ 00:00:00 d #11 dice.accumulate_dice_rolls / { power = 0;
> acc = 2286; roll = 5; value = 4 }
> │ 00:00:00 d #12 dice.accumulate_dice_rolls / { power = 
> -1; acc = 2290; result = 2291 }
> │ 00:00:00 d #13 dice.create_sequential_roller / roll / { 
> current_index = 5; acc = 1; len = -1; last_item = Some 2uy }
> │ 00:00:00 d #14 dice.accumulate_dice_rolls / { power = 4;
> acc = 0; roll = 2; value = 1296 }
> │ 00:00:00 d #15 dice.accumulate_dice_rolls / { power = 3;
> acc = 1296; roll = 2; value = 216 }
> │ 00:00:00 d #16 dice.accumulate_dice_rolls / { power = 2;
> acc = 1512; roll = 5; value = 144 }
> │ 00:00:00 d #17 dice.accumulate_dice_rolls / { power = 1;
> acc = 1656; roll = 4; value = 18 }
> │ 00:00:00 d #18 dice.accumulate_dice_rolls / { power = 0;
> acc = 1674; roll = 4; value = 3 }
> │ 00:00:00 d #19 dice.accumulate_dice_rolls / { power = 
> -1; acc = 1677; result = 1678 }
> │ { name = __assert_eq; actual = 1678; expected = 1678 }
> │ 
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> inl { level } = get_trace_state_or_init None
> level <- Info
> 
> join dyn listm'.init_series 1i32 10000 1
> |> listm.map (fun _ => roll_progressively roll_dice false 10i32)
> |> listm'.group_by id
> |> listm.map (fun (k, v) => k, (listm.length v : i32))
> |> listm'.box
> |> listm'.to_array'
> |> fun ar =>
>     $'!ar |> Array.sortBy (fun (struct (a, b)) -> a)' : a i32 $'struct (int32 * 
> int32)'
> 
> ── [ 1.40s - return value ] ────────────────────────────────────────────────────
> │ 
> <table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr><td
> >0</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(1, 
> 263)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>I
> tem1</td><td><div 
> class="dni-plaintext"><pre>1</pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>263</pre></div></td></tr></tbody></table></div></deta
> ils></td></tr><tr><td>1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(2, 
> 712)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>I
> tem1</td><td><div 
> class="dni-plaintext"><pre>2</pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>712</pre></div></td></tr></tbody></table></div></deta
> ils></td></tr><tr><td>2</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(3, 
> 1396)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> Item1</td><td><div 
> class="dni-plaintext"><pre>3</pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>1396</pre></div></td></tr></tbody></table></div></det
> ails></td></tr><tr><td>3</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(4, 
> 1320)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> Item1</td><td><div 
> class="dni-plaintext"><pre>4</pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>1320</pre></div></td></tr></tbody>...thead><tr></tr><
> /thead><tbody><tr><td>Item1</td><td><div 
> class="dni-plaintext"><pre>8</pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>718</pre></div></td></tr></tbody></table></div></deta
> ils></td></tr><tr><td>8</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(9, 
> 1323)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> Item1</td><td><div 
> class="dni-plaintext"><pre>9</pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>1323</pre></div></td></tr></tbody></table></div></det
> ails></td></tr><tr><td>9</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(10, 
> 1288)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> Item1</td><td><div 
> class="dni-plaintext"><pre>10</pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>1288</pre></div></td></tr></tbody></table></div></det
> ails></td></tr></tbody></table><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> inl { level } = get_trace_state_or_init None
> level <- Info
> 
> join dyn listm'.init_series 1i32 10000 1
> |> listm.map (fun _ => roll_progressively roll_dice true 10i32)
> |> listm'.group_by id
> |> listm.map (fun (k, v) => k, (listm.length v : i32))
> |> listm'.box
> |> listm'.to_array'
> |> fun ar =>
>     $'!ar |> Array.sortBy (fun (struct (a, b)) -> a)' : a i32 $'struct (int32 * 
> int32)'
> 
> ── [ 1.27s - return value ] ────────────────────────────────────────────────────
> │ 
> <table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr><td
> >0</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(1, 
> 1008)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> Item1</td><td><div 
> class="dni-plaintext"><pre>1</pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>1008</pre></div></td></tr></tbody></table></div></det
> ails></td></tr><tr><td>1</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(2, 
> 976)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>I
> tem1</td><td><div 
> class="dni-plaintext"><pre>2</pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>976</pre></div></td></tr></tbody></table></div></deta
> ils></td></tr><tr><td>2</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(3, 
> 1014)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> Item1</td><td><div 
> class="dni-plaintext"><pre>3</pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>1014</pre></div></td></tr></tbody></table></div></det
> ails></td></tr><tr><td>3</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(4, 
> 1026)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> Item1</td><td><div 
> class="dni-plaintext"><pre>4</pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>1026</pre></div></td></tr></tbod...<thead><tr></tr></
> thead><tbody><tr><td>Item1</td><td><div 
> class="dni-plaintext"><pre>8</pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>1023</pre></div></td></tr></tbody></table></div></det
> ails></td></tr><tr><td>8</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(9, 
> 944)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>I
> tem1</td><td><div 
> class="dni-plaintext"><pre>9</pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>944</pre></div></td></tr></tbody></table></div></deta
> ils></td></tr><tr><td>9</td><td><details class="dni-treeview"><summary><span 
> class="dni-code-hint"><code>(10, 
> 1009)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>
> Item1</td><td><div 
> class="dni-plaintext"><pre>10</pre></div></td></tr><tr><td>Item2</td><td><div 
> class="dni-plaintext"><pre>1009</pre></div></td></tr></tbody></table></div></det
> ails></td></tr></tbody></table><style>
> │ .dni-code-hint {
> │     font-style: italic;
> │     overflow: hidden;
> │     white-space: nowrap;
> │ }
> │ .dni-treeview {
> │     white-space: nowrap;
> │ }
> │ .dni-treeview td {
> │     vertical-align: top;
> │     text-align: start;
> │ }
> │ details.dni-treeview {
> │     padding-left: 1em;
> │ }
> │ table td {
> │     text-align: start;
> │ }
> │ table tr { 
> │     vertical-align: top; 
> │     margin: 0em 0px;
> │ }
> │ table tr td pre 
> │ { 
> │     vertical-align: top !important; 
> │     margin: 0em 0px !important;
> │ } 
> │ table th {
> │     text-align: start;
> │ }
> │ </style>
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> //// timeout=180000
> 
> inl { level } = get_trace_state_or_init None
> level <- Info
> 
> join dyn listm'.init_series 1i32 100 1
> |> listm.iter fun n =>
>     listm'.init_series 0i32 1 1
>     |> listm.iter fun reroll =>
>         join dyn listm'.init_series 1i32 3500 1
>         |> listm.map fun _ => roll_progressively roll_dice (reroll = 1) n
>         |> listm'.group_by id
>         |> listm.length
>         |> __assert_eq Silent n
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## main
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl main (_args : array_base string) =
>     inl result = roll_progressively roll_dice true (limit.max : i64)
>     trace Debug
>         fun () => "dice.main"
>         fun () => { result }
>     0i32
> 
> inl main () =
>     inl rotate_numbers' : i64 -> stream.stream u8 -> stream.stream u8 =
>         rotate_numbers
> 
>     inl create_sequential_roller' :
>         list u8 
>         -> (() -> u8)
>         =
>         create_sequential_roller
> 
>     inl roll_progressively' :
>         (() -> u8)
>         -> bool
>         -> u64
>         -> u64
>         =
>         roll_progressively
> 
>     inl roll_within_bounds' :
>         u64
>         -> list u8
>         -> optionm'.option' u64
>         =
>         fun a b =>
>             roll_within_bounds a b
>             |> optionm'.box
> 
>     $'let rotate_numbers x = !rotate_numbers' x' : ()
>     $'let create_sequential_roller x = !create_sequential_roller' x' : ()
>     $'let roll_progressively x = !roll_progressively' x' : ()
>     $'let roll_within_bounds x = !roll_within_bounds' x' : ()
>     $'let main args = !main args' : ()
00:00:46 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 43374 }
00:00:46 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/dice/lib/dice.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/dice/lib/dice.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:47 v #5 ! [NbConvertApp] Converting notebook c:/home/git/dice/lib/dice.dib.ipynb to html
00:00:47 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:47 v #7 !   validate(nb)
00:00:48 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:48 v #9 !   return _pygments_highlight(
00:00:48 v #10 ! [NbConvertApp] Writing 369555 bytes to c:\home\git\dice\lib\dice.dib.html
00:00:48 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 828 }
00:00:48 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 828 }
00:00:48 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/dice/lib/dice.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/dice/lib/dice.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:00:49 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:00:49 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:00:49 d #16 spiral.run / dib / { exit_code = 0; result_length = 44261 }
00:00:00 d #1 writeDibCode / output: Spi / path: dice.dib
00:00:00 d #2 parseDibCode / output: Spi / file: dice.dib
00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: dice / hash:  / code.Length: 343674
00:00:00 d #2 buildProject / fullPath: c:\home\git\polyglot\target\Builder\dice\dice.fsproj
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  "publish "c:/home/git\polyglot\target/Builder\dice\dice.fsproj" --configuration Release --output "C:\home\git\dice\lib\dist" --runtime linux-x64"; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\dice\dice.fsproj" --configuration Release --output "C:\home\git\dice\lib\dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\dice" } }
00:00:01 v #2 >   Determining projects to restore...
00:00:01 v #3 >   Paket version 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
00:00:01 v #4 >   The last full restore is still up to date. Nothing left to do.
00:00:01 v #5 >   Total time taken: 0 milliseconds
00:00:01 v #6 >   Paket version 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
00:00:02 v #7 >   Restoring c:\home\git\polyglot\target\Builder\dice\dice.fsproj
00:00:02 v #8 >   Starting restore process.
00:00:02 v #9 >   Total time taken: 0 milliseconds
00:00:02 v #10 >   Restored c:\home\git\polyglot\target\Builder\dice\dice.fsproj (in 286 ms).
00:00:18 v #11 >   dice -> c:\home\git\polyglot\target\Builder\dice\bin\Release\net9.0\linux-x64\dice.dll
00:00:19 v #12 >   dice -> C:\home\git\dice\lib\dist\
00:00:19 d #13 runtime.execute_with_options_async / { exit_code = 0; output_length = 593; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\dice\dice.fsproj" --configuration Release --output "C:\home\git\dice\lib\dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\dice" } }
00:00:19 d #14 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  "publish "c:/home/git\polyglot\target/Builder\dice\dice.fsproj" --configuration Release --output "C:\home\git\dice\lib\dist" --runtime win-x64"; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\dice\dice.fsproj" --configuration Release --output "C:\home\git\dice\lib\dist" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\dice" } }
00:00:19 v #15 >   Determining projects to restore...
00:00:20 v #16 >   Paket version 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
00:00:20 v #17 >   The last full restore is still up to date. Nothing left to do.
00:00:20 v #18 >   Total time taken: 0 milliseconds
00:00:22 v #19 >   Restored c:\home\git\polyglot\target\Builder\dice\dice.fsproj (in 1.43 sec).
00:00:36 v #20 >   dice -> c:\home\git\polyglot\target\Builder\dice\bin\Release\net9.0\win-x64\dice.dll
00:00:37 v #21 >   dice -> C:\home\git\dice\lib\dist\
00:00:37 d #22 runtime.execute_with_options_async / { exit_code = 0; output_length = 402; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\dice\dice.fsproj" --configuration Release --output "C:\home\git\dice\lib\dist" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\dice" } }
spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\home\git\polyglot\target\Builder\dice
polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\home\git\dice\deps\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target:  / path_target: C:\home\git\polyglot / parent: C:\home\git\dice\deps\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot
spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\target\Builder\dice / ProjectName: dice / Language: rs / Runtime:  / root: C:\home\git\polyglot
Fable 5.0.0-alpha.9: F# to Rust compiler (status: alpha)

Thanks to the contributor! @halfabench
Stand with Ukraine! https://standwithukraine.com.ua/

Parsing target\Builder\dice\dice.fsproj...
Project and references (14 source files) parsed in 2818ms

Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.JSInterop.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Routing.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Routing.Abstractions.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.ViewFeatures.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.Core.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Http.Abstractions.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.Forms.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.Endpoints.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)

Started Fable compilation...

Fable compilation finished in 12657ms

.\deps\spiral\lib\spiral\common.fsx(2199,0): (2199,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\sm.fsx(561,0): (561,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\crypto.fsx(2426,0): (2426,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\date_time.fsx(2546,0): (2546,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\platform.fsx(121,0): (121,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\networking.fsx(5050,0): (5050,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\trace.fsx(2232,0): (2232,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\runtime.fsx(7321,0): (7321,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\file_system.fsx(19036,0): (19036,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
dice/lib/build.ps1 / Path: C:\home\git\polyglot\target\Builder\dice/target/rs/dice.rs / Target: dice.rs
polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\home\git\dice\deps\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target:  / path_target: C:\home\git\polyglot / parent: C:\home\git\dice\deps\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot
spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\target\Builder\dice / ProjectName: dice / Language: ts / Runtime:  / root: C:\home\git\polyglot
Fable 5.0.0-alpha.9: F# to TypeScript compiler
Minimum @fable-org/fable-library-ts version (when installed from npm): 1.10.0

Thanks to the contributor! @johannesmols
Stand with Ukraine! https://standwithukraine.com.ua/

Parsing target\Builder\dice\dice.fsproj...
Project and references (14 source files) parsed in 83725ms

Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.JSInterop.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Routing.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Routing.Abstractions.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.ViewFeatures.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.Core.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Http.Abstractions.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.Forms.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.Endpoints.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)

Started Fable compilation...

Fable compilation finished in 12380ms

.\deps\spiral\lib\spiral\sm.fsx(38,20): (38,49) warning FABLE: CultureInfo argument is ignored
.\deps\spiral\lib\spiral\sm.fsx(307,20): (307,51) warning FABLE: CultureInfo argument is ignored
dice/lib/build.ps1 / Path: C:\home\git\polyglot\target\Builder\dice/target/ts/dice.ts / Target: dice.ts
polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\home\git\dice\deps\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target:  / path_target: C:\home\git\polyglot / parent: C:\home\git\dice\deps\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot
spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\target\Builder\dice / ProjectName: dice / Language: py / Runtime:  / root: C:\home\git\polyglot
Fable 5.0.0-alpha.9: F# to Python compiler (status: beta)

Thanks to the contributor! @jbeeko
Stand with Ukraine! https://standwithukraine.com.ua/

Parsing target\Builder\dice\dice.fsproj...
Project and references (14 source files) parsed in 22941ms

Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.JSInterop.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Routing.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Routing.Abstractions.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.ViewFeatures.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.Core.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Http.Abstractions.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.Forms.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.Endpoints.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)

Started Fable compilation...

Fable compilation finished in 12242ms

.\deps\spiral\lib\spiral\sm.fsx(38,20): (38,49) warning FABLE: CultureInfo argument is ignored
.\deps\spiral\lib\spiral\sm.fsx(307,20): (307,51) warning FABLE: CultureInfo argument is ignored
dice/lib/build.ps1 / Path: C:\home\git\polyglot\target\Builder\dice/target/py/dice.py / Target: dice.py
polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\home\git\dice\deps\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target:  / path_target: C:\home\git\polyglot / parent: C:\home\git\dice\deps\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot
spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\target\Builder\dice / ProjectName: dice / Language: rs / Runtime: CONTRACT / root: C:\home\git\polyglot
Fable 5.0.0-alpha.9: F# to Rust compiler (status: alpha)

Thanks to the contributor! @tpetricek
Stand with Ukraine! https://standwithukraine.com.ua/

Parsing target\Builder\dice\dice.fsproj...
Project and references (14 source files) parsed in 21829ms

Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.JSInterop.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Routing.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Routing.Abstractions.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.ViewFeatures.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.Core.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Http.Abstractions.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.Forms.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.Endpoints.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)

Started Fable compilation...

Fable compilation finished in 12623ms

.\deps\spiral\lib\spiral\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\common.fsx(2199,0): (2199,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\sm.fsx(561,0): (561,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\date_time.fsx(2546,0): (2546,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\crypto.fsx(2426,0): (2426,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\platform.fsx(121,0): (121,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\networking.fsx(5050,0): (5050,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\trace.fsx(2232,0): (2232,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\runtime.fsx(7321,0): (7321,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\file_system.fsx(19036,0): (19036,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
dice/lib/build.ps1 / Path: C:\home\git\polyglot\target\Builder\dice/target/rs/dice.rs / Target: dice_contract.rs
warning: C:\home\git\dice\lib\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\dice\ui\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\dice\contract\tests\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\dice\lib\fsharp\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\dice\lib\contract\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\dice\contract\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: C:\home\git\dice\Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
   Compiling fable_library_rust v0.1.0 (C:\home\git\dice\deps\polyglot\lib\rust\fable\fable_modules\fable-library-rust)
   Compiling dice_lib v0.0.1 (C:\home\git\dice\lib)
    Finished `release` profile [optimized] target(s) in 16.14s
     Running `C:\home\git\dice\target\release\dice.exe`
00:00:00 d #1 dice.calculate_dice_count / { max = 9223372036854775807; p = 4738381338321616896; n = 24 }
00:00:00 d #2 dice.accumulate_dice_rolls / { power = 23; acc = 0; roll = 6; value = 3948651115268014080 }
00:00:00 d #3 dice.accumulate_dice_rolls / { power = 22; acc = 3948651115268014080; roll = 4; value = 394865111526801408 }
00:00:00 d #4 dice.accumulate_dice_rolls / { power = 21; acc = 4343516226794815488; roll = 4; value = 65810851921133568 }
00:00:00 d #5 dice.accumulate_dice_rolls / { power = 20; acc = 4409327078715949056; roll = 4; value = 10968475320188928 }
00:00:00 d #6 dice.accumulate_dice_rolls / { power = 19; acc = 4420295554036137984; roll = 2; value = 609359740010496 }
00:00:00 d #7 dice.accumulate_dice_rolls / { power = 18; acc = 4420904913776148480; roll = 3; value = 203119913336832 }
00:00:00 d #8 dice.accumulate_dice_rolls / { power = 17; acc = 4421108033689485312; roll = 3; value = 33853318889472 }
00:00:00 d #9 dice.accumulate_dice_rolls / { power = 16; acc = 4421141887008374784; roll = 5; value = 11284439629824 }
00:00:00 d #10 dice.accumulate_dice_rolls / { power = 15; acc = 4421153171448004608; roll = 3; value = 940369969152 }
00:00:00 d #11 dice.accumulate_dice_rolls / { power = 14; acc = 4421154111817973760; roll = 5; value = 313456656384 }
00:00:00 d #12 dice.accumulate_dice_rolls / { power = 13; acc = 4421154425274630144; roll = 2; value = 13060694016 }
00:00:00 d #13 dice.accumulate_dice_rolls / { power = 12; acc = 4421154438335324160; roll = 5; value = 8707129344 }
00:00:00 d #14 dice.accumulate_dice_rolls / { power = 11; acc = 4421154447042453504; roll = 4; value = 1088391168 }
00:00:00 d #15 dice.accumulate_dice_rolls / { power = 10; acc = 4421154448130844672; roll = 3; value = 120932352 }
00:00:00 d #16 dice.accumulate_dice_rolls / { power = 9; acc = 4421154448251777024; roll = 4; value = 30233088 }
00:00:00 d #17 dice.accumulate_dice_rolls / { power = 8; acc = 4421154448282010112; roll = 6; value = 8398080 }
00:00:00 d #18 dice.accumulate_dice_rolls / { power = 7; acc = 4421154448290408192; roll = 5; value = 1119744 }
00:00:00 d #19 dice.accumulate_dice_rolls / { power = 6; acc = 4421154448291527936; roll = 5; value = 186624 }
00:00:00 d #20 dice.accumulate_dice_rolls / { power = 5; acc = 4421154448291714560; roll = 4; value = 23328 }
00:00:00 d #21 dice.accumulate_dice_rolls / { power = 4; acc = 4421154448291737888; roll = 4; value = 3888 }
00:00:00 d #22 dice.accumulate_dice_rolls / { power = 3; acc = 4421154448291741776; roll = 6; value = 1080 }
00:00:00 d #23 dice.accumulate_dice_rolls / { power = 2; acc = 4421154448291742856; roll = 1 }
00:00:00 d #24 dice.accumulate_dice_rolls / { power = 1; acc = 4421154448291742856; roll = 1 }
00:00:00 d #25 dice.accumulate_dice_rolls / { power = 0; acc = 4421154448291742856; roll = 4; value = 3 }
00:00:00 d #26 dice.accumulate_dice_rolls / { power = -1; acc = 4421154448291742859; result = 4421154448291742860 }
00:00:00 d #27 dice.main / { result = 4421154448291742860 }
dice/lib/build.ps1 / $targetDir = C:\home\git\polyglot\target\Builder\dice / $projectName: dice / $env:CI:''
00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "C:\home\git\dice\contract/dice_contract.dib", "--retries", "1"])) }
00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/dice/contract/dice_contract.dib", "--output-path", "c:/home/git/dice/contract/dice_contract.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/dice/contract/dice_contract.dib" --output-path "c:/home/git/dice/contract/dice_contract.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ # dice_contract
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// package=../dice
> 
> open rust
> open rust.rust_operators
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> 
> open testing
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## dice_contract
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### state
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> type state =
>     {
>         version : u32
>         seeds : near.vector u8
>     }
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> ///! rust -c
> 
> ()
> 
> ── [ 44.47s - return value ] ───────────────────────────────────────────────────
> │  
> │ 00:00:09 i #2 near_workspaces.print_usd / { retry = 1; 
> total_gas_burnt_usd = +0.000808; total_gas_burnt = 1209371440851 }
> │ 00:00:09 i #3 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 
> gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
> │ 00:00:09 i #4 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000602; tokens_burnt_usd = +0.000602; 
> gas_burnt = 901289581511; tokens_burnt = 90128958151100000000 }
> │ 00:00:09 w #5 spiral_wasm.run / Error error / { retry =
> 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" }
> │ 
> │ 
> │  
> │ 00:00:16 i #8 near_workspaces.print_usd / { retry = 2; 
> total_gas_burnt_usd = +0.000808; total_gas_burnt = 1209371440851 }
> │ 00:00:16 i #9 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 
> gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
> │ 00:00:16 i #10 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000602; tokens_burnt_usd = +0.000602; 
> gas_burnt = 901289581511; tokens_burnt = 90128958151100000000 }
> │ 00:00:16 w #11 spiral_wasm.run / Error error / { retry 
> = 2; error = "{ receipt_outcomes_len = 1; retry = 2; receipt_failures = [] }" }
> │ 
> │ 
> │  
> │ 00:00:22 i #14 near_workspaces.print_usd / { retry = 3;
> total_gas_burnt_usd = +0.000808; total_gas_burnt = 1209371440851 }
> │ 00:00:22 i #15 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 
> gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
> │ 00:00:22 i #16 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000602; tokens_burnt_usd = +0.000602; 
> gas_burnt = 901289581511; tokens_burnt = 90128958151100000000 }
> │ 00:00:22 w #17 spiral_wasm.run / Error error / { retry 
> = 3; error = "{ receipt_outcomes_len = 1; retry = 3; receipt_failures = [] }" }
> │ 
> │ 
> │  
> │ 00:00:28 i #20 near_workspaces.print_usd / { retry = 4;
> total_gas_burnt_usd = +0.000957; total_gas_burnt = 1432554003351 }
> │ 00:00:28 i #21 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 
> gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
> │ 00:00:28 i #22 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000602; tokens_burnt_usd = +0.000602; 
> gas_burnt = 901289581511; tokens_burnt = 90128958151100000000 }
> │ 00:00:28 i #23 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; 
> gas_burnt = 223182562500; tokens_burnt = 0 }
> │ 
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> ///! rust -c
> 
> trace Verbose (fun () => "") id
> 
> ── [ 37.47s - return value ] ───────────────────────────────────────────────────
> │  
> │ 00:00:06 i #2 near_workspaces.print_usd / { retry = 1; 
> total_gas_burnt_usd = +0.000884; total_gas_burnt = 1323849918887 }
> │ 00:00:06 i #3 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 
> gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
> │ 00:00:06 i #4 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000679; tokens_burnt_usd = +0.000679; 
> gas_burnt = 1015768059547; tokens_burnt = 101576805954700000000 }
> │ 00:00:06 w #5 spiral_wasm.run / Error error / { retry =
> 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" }
> │ 
> │ 
> │  
> │ 00:00:13 i #8 near_workspaces.print_usd / { retry = 2; 
> total_gas_burnt_usd = +0.000884; total_gas_burnt = 1323849918887 }
> │ 00:00:13 i #9 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 
> gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
> │ 00:00:13 i #10 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000679; tokens_burnt_usd = +0.000679; 
> gas_burnt = 1015768059547; tokens_burnt = 101576805954700000000 }
> │ 00:00:13 w #11 spiral_wasm.run / Error error / { retry 
> = 2; error = "{ receipt_outcomes_len = 1; retry = 2; receipt_failures = [] }" }
> │ 
> │ 
> │  
> │ 00:00:20 i #14 near_workspaces.print_usd / { retry = 3;
> total_gas_burnt_usd = +0.000884; total_gas_burnt ...r = "{ receipt_outcomes_len 
> = 1; retry = 3; receipt_failures = [] }" }
> │ 
> │ 
> │  
> │ 00:00:26 i #20 near_workspaces.print_usd / { retry = 4;
> total_gas_burnt_usd = +0.000884; total_gas_burnt = 1323849918887 }
> │ 00:00:26 i #21 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 
> gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
> │ 00:00:26 i #22 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000679; tokens_burnt_usd = +0.000679; 
> gas_burnt = 1015768059547; tokens_burnt = 101576805954700000000 }
> │ 00:00:26 w #23 spiral_wasm.run / Error error / { retry 
> = 4; error = "{ receipt_outcomes_len = 1; retry = 4; receipt_failures = [] }" }
> │ 
> │ 
> │  
> │ 00:00:32 i #26 near_workspaces.print_usd / { retry = 5;
> total_gas_burnt_usd = +0.001033; total_gas_burnt = 1547032481387 }
> │ 00:00:32 i #27 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 
> gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
> │ 00:00:32 i #28 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000679; tokens_burnt_usd = +0.000679; 
> gas_burnt = 1015768059547; tokens_burnt = 101576805954700000000 }
> │ 00:00:32 i #29 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; 
> gas_burnt = 223182562500; tokens_burnt = 0 }
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### new
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl new () : state =
>     {
>         version = 2
>         seeds = "seeds" |> sm'.byte_slice |> near.new_vector
>     }
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> ///! rust -c
> 
> inl state = new ()
> trace Verbose (fun () => "dice_contract") fun () => { state = state |> 
> sm'.format_debug }
> trace Verbose (fun () => "") id
> 
> ── [ 21.53s - return value ] ───────────────────────────────────────────────────
> │ 00:00:00 v #1 dice_contract / { state = (2, Vector { 
> len: 0, prefix: [115, 101, 101, 100, 115] }) }
> │  
> │ 00:00:06 i #2 near_workspaces.print_usd / { retry = 1; 
> total_gas_burnt_usd = +0.001220; total_gas_burnt = 1825868853775 }
> │ 00:00:06 i #3 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 
> gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
> │ 00:00:06 i #4 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000865; tokens_burnt_usd = +0.000865; 
> gas_burnt = 1294604431935; tokens_burnt = 129460443193500000000 }
> │ 00:00:06 i #5 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; 
> gas_burnt = 223182562500; tokens_burnt = 0 }
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### max_seeds
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl max_seeds () : unativeint =
>     100i32 |> convert
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### contribute_seed
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl contribute_seed (seeds : rust.ref (rust.mut' (near.vector u8))) (seed : 
> am'.vec u8) : () =
>     seeds |> near.vector_extend seed
> 
>     inl seed_excess_len = (seeds |> rust.len |> fun x => x : u32 |> i32) - 
> (max_seeds () |> i32)
> 
>     if seed_excess_len > 0 then
>         inl seed_excess : am'.vec u8 =
>             !\\(seed_excess_len, $'"!seeds.drain(0..$0 as 
> u32).collect::<Vec<_>>()"')
>         trace Debug
>             fun () => "dice_contract.contribute_seed"
>             fun () => { seed_excess_len seed_excess = seed_excess |> 
> sm'.format_debug }
>     trace Debug (fun () => "") (join id)
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> ///! rust -c
> 
> inl replicate n =
>     let rec loop i acc =
>         if i > n
>         then acc
>         else
>             inl i' = i % 10
>             inl i' =
>                 if i' = 0
>                 then i % limit.max
>                 else i'
>             loop (i + 1) (i' :: acc)
>     loop 1 [[]]
>     |> listm.rev
>     |> listm'.box
>     |> listm'.to_array'
> 
> inl max_seeds : u32 = max_seeds () |> convert
> inl seeds = "" |> sm'.byte_slice |> near.new_vector |> rust.to_ref_mut
> 
> conv max_seeds * 1.2f64
> |> replicate
> |> am'.map_base u8
> |> am'.to_vec
> |> contribute_seed seeds
> 
> seeds
> |> rust.len
> |> _assert_eq max_seeds
> 
> ── [ 32.72s - return value ] ───────────────────────────────────────────────────
> │ 00:00:00 d #1 dice_contract.contribute_seed / { 
> seed_excess_len = 20; seed_excess = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 
> 5, 6, 7, 8, 9, 20] }
> │  
> │ 00:00:06 i #2 near_workspaces.print_usd / { retry = 1; 
> total_gas_burnt_usd = +0.007478; total_gas_burnt = 11194173284004 }
> │ 00:00:06 i #3 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 
> gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
> │ 00:00:06 i #4 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.007272; tokens_burnt_usd = +0.007272; 
> gas_burnt = 10886091424664; tokens_burnt = 1088609142466400000000 }
> │ 00:00:06 w #5 spiral_wasm.run / Error error / { retry =
> 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" }
> │ 
> │ 
> │ 00:00:00 d #1 dice_contract.contribute_seed / { 
> seed_excess_len = 20; seed_excess = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 
> 5, 6, 7, 8, 9, 20] }
> │  
> │ 00:00:14 i #8 near_workspaces.print_usd / { retry = 2; 
> total_gas_burnt_usd = +0.007627; total_gas_burnt = 11417355846504 }
> │ 00:00:14 i #9 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 
> gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
> │ 00:00:14 i #10 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.007272; tokens_burnt_usd = +0.007272; 
> gas_burnt = 10886091424664; tokens_burnt = 1088609142466400000000 }
> │ 00:00:14 i #11 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; 
> gas_burnt = 223182562500; tokens_burnt = 0 }
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### generate_random_number
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl generate_random_number
>     (seeds : rust.ref (rust.mut' (near.vector u8)))
>     (key : sm'.std_string)
>     (proof : sm'.std_string)
>     (max : u64)
>     : u64
>     =
>     inl seed = near.random_seed ()
>     inl epoch_height = near.epoch_height ()
>     inl block_height = near.block_height ()
>     inl block_timestamp = near.block_timestamp ()
>     inl account_balance = near.account_balance ()
>     inl signer_account_id = near.signer_account_id ()
>     inl predecessor_account_id = near.predecessor_account_id ()
>     inl entropy =
>         ;[[
>             seed
>             seeds |> rust.reref |> near.vector_to_vec
>             epoch_height |> am'.to_le_bytes |> am'.to_vec'
>             block_height |> am'.to_le_bytes |> am'.to_vec'
>             block_timestamp |> am'.to_le_bytes |> am'.to_vec'
>             account_balance |> near.as_yoctonear |> am'.to_le_bytes |> 
> am'.to_vec'
>             signer_account_id |> am'.as_bytes |> am'.to_vec''
>             predecessor_account_id |> am'.as_bytes |> am'.to_vec''
>             proof |> sm'.into_bytes
>             key |> sm'.into_bytes
>         ]]
>         |> am'.to_vec
>         |> rust.concat
>     inl hash_u8 = entropy |> near.keccak512
>     hash_u8 |> contribute_seed seeds
>     inl rolls_list =
>         hash_u8
>         |> am'.from_vec_base
>         |> am'.to_list_base'
>         |> listm'.unbox
>         |> stream.from_list
>         |> lib.dice.rotate_numbers 6
>         |> stream.to_list
>     trace Debug
>         fun () => "dice_contract.generate_random_number"
>         fun () => {
>             max
>             key
>             proof
>             block_timestamp
>             block_height
>             epoch_height
>             account_balance = account_balance |> sm'.format_debug
>             signer_account_id = signer_account_id |> sm'.to_string'
>             predecessor_account_id = predecessor_account_id |> sm'.to_string'
>             seed = seed |> sm'.format_debug
>             seeds = seeds |> sm'.format_debug
>             entropy_len = entropy |> am'.vec_len
>             entropy = entropy |> sm'.format_debug
>             hash_u8 = hash_u8 |> sm'.format_debug
>             rolls = rolls_list |> listm'.box |> listm'.to_array' |> am'.to_vec 
> |> sm'.format_debug
>         }
>     inl sequential_roll = rolls_list |> lib.dice.create_sequential_roller
>     inl result = lib.dice.roll_progressively sequential_roll true max
>     trace Debug (fun () => "") (join id)
>     result
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> ///! rust -cd near-token
> 
> 2000
> |> generate_random_number
>     ("" |> sm'.byte_slice |> near.new_vector |> rust.to_ref_mut)
>     ("" |> sm'.to_std_string)
>     ("" |> sm'.to_std_string)
> |> _assert_gt 0
> 
> ── [ 29.75s - return value ] ───────────────────────────────────────────────────
> │ 00:00:00 d #2 dice_contract.generate_random_number / { 
> max = 2000; key = ""; proof = ""; block_timestamp = 1743244846576479856; 
> block_height = 9; epoch_height = 1; account_balance = NearToken { inner: 
> 99817379736552383587979200 }; signer_account_id = 
> "dev-20250329104045-76001641287929"; predecessor_account_id = 
> "dev-20250329104045-76001641287929"; seed = [52, 231, 253, 29, 44, 46, 174, 121,
> 232, 104, 205, 17, 3, 178, 6, 124, 7, 91, 221, 215, 46, 136, 24, 153, 7, 107, 
> 81, 144, 171, 159, 212, 253]; seeds = Vector { len: 64, prefix: [] }; 
> entropy_len = 138; entropy = [52, 231, 253, 29, 44, 46, 174, 121, 232, 104, 205,
> 17, 3, 178, 6, 124, 7, 91, 221, 215, 46, 136, 24, 153, 7, 107, 81, 144, 171, 
> 159, 212, 253, 1, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 112, 174, 184, 
> 172, 243, 63, 49, 24, 192, 143, 230, 30, 215, 18, 132, 255, 38, 145, 82, 0, 0, 
> 0, 0, 0, 100, 101, 118, 45, 50, 48, 50, 53, 48, 51, 50, 57, 49, 48, 52, 48, 52, 
> 53, 45, 55, 54, 48, 48, 49, 54, 52, 49, 50, 56, 55, 57, 50, 57, 100, 101, 118, 
> 45, 50, 48, 50, 53, 48, 51, 50, 57, 49, 48, 52, 48, 52, 53, 45, 55, 54, 48, 48, 
> 49, 54, 52, 49, 50, 56, 55, 57, 50, 57]; hash_u8 = [155, 75, 140, 255, 117, 158,
> 10, 175, 36, 200, 19, 110, 250, 161, 233, 77, 172, 251, 116, 54, 115, 72, 242, 
> 99, 152, 125, 71, 90, 0, 240, 134, 91, 154, 59, 103, 58, 195, 220, 234, 22, 101,
> 44, 25, 22, 112, 130, 130, 64, 158, 46, 70, 162, 19, 83, 249, 89, 21, 201, 122, 
> 210, 139, 151, 194, 214]; rolls = [5, 3, 2, 3, 3, 2, 4, 1, 6, 2, 1, 2, 4...x = 
> 8; acc = 1; len = -1; last_item = Some(1) }
> │ 00:00:00 d #19 dice.create_sequential_roller / roll / {
> current_index = 9; acc = 1; len = -1; last_item = Some(6) }
> │ 00:00:00 d #20 dice.accumulate_dice_rolls / { power = 
> 4; acc = 0; roll = 2; value = 1296 }
> │ 00:00:00 d #21 dice.accumulate_dice_rolls / { power = 
> 3; acc = 1296; roll = 2; value = 216 }
> │ 00:00:00 d #22 dice.accumulate_dice_rolls / { power = 
> 2; acc = 1512; roll = 4; value = 108 }
> │ 00:00:00 d #23 dice.accumulate_dice_rolls / { power = 
> 1; acc = 1620; roll = 1 }
> │ 00:00:00 d #24 dice.accumulate_dice_rolls / { power = 
> 0; acc = 1620; roll = 6; value = 5 }
> │ 00:00:00 d #25 dice.accumulate_dice_rolls / { power = 
> -1; acc = 1625; result = 1626 }
> │  
> │ 00:00:07 i #2 near_workspaces.print_usd / { retry = 1; 
> total_gas_burnt_usd = +0.030685; total_gas_burnt = 45936270928961 }
> │ 00:00:07 i #3 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 
> gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
> │ 00:00:07 i #4 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.030331; tokens_burnt_usd = +0.030331; 
> gas_burnt = 45405006507121; tokens_burnt = 4540500650712100000000 }
> │ 00:00:07 i #5 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; 
> gas_burnt = 223182562500; tokens_burnt = 0 }
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### roll_within_bounds
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> inl roll_within_bounds (max : u64) (rolls : am'.vec u8) : optionm'.option' u64 =
>     inl result =
>         rolls
>         |> am'.from_vec_base
>         |> am'.to_list_base'
>         |> listm'.unbox
>         |> lib.dice.roll_within_bounds max
>         |> optionm'.box
>     trace Debug
>         fun () => "dice_contract.roll_within_bounds"
>         fun () => { max rolls = rolls |> sm'.format_debug; result = result |> 
> sm'.format_debug }
>     trace Debug (fun () => "") (join id)
>     result
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> ///! rust -c
> 
> inl rolls = ;[[ 1; 5; 4; 4; 5 ]] |> am'.to_vec
> 
> rolls
> |> roll_within_bounds 2000
> |> _assert_eq' (optionm'.some' 995)
> 
> ── [ 26.76s - return value ] ───────────────────────────────────────────────────
> │ 00:00:00 d #1 dice.accumulate_dice_rolls / { power = 4;
> acc = 0; roll = 1 }
> │ 00:00:00 d #2 dice.accumulate_dice_rolls / { power = 3;
> acc = 0; roll = 5; value = 864 }
> │ 00:00:00 d #3 dice.accumulate_dice_rolls / { power = 2;
> acc = 864; roll = 4; value = 108 }
> │ 00:00:00 d #4 dice.accumulate_dice_rolls / { power = 1;
> acc = 972; roll = 4; value = 18 }
> │ 00:00:00 d #5 dice.accumulate_dice_rolls / { power = 0;
> acc = 990; roll = 5; value = 4 }
> │ 00:00:00 d #6 dice.accumulate_dice_rolls / { power = 
> -1; acc = 994; result = 995 }
> │ 00:00:00 d #7 dice_contract.roll_within_bounds / { max 
> = 2000; rolls = [1, 5, 4, 4, 5]; result = Some(995) }
> │  
> │ 00:00:07 i #2 near_workspaces.print_usd / { retry = 1; 
> total_gas_burnt_usd = +0.003143; total_gas_burnt = 4704513102015 }
> │ 00:00:07 i #3 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 
> gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
> │ 00:00:07 i #4 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.002788; tokens_burnt_usd = +0.002788; 
> gas_burnt = 4173248680175; tokens_burnt = 417324868017500000000 }
> │ 00:00:07 i #5 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; 
> gas_burnt = 223182562500; tokens_burnt = 0 }
> │ 
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> //// test
> ///! rust -c
> 
> inl rolls = ;[[ 2; 2; 6; 4; 5 ]] |> am'.to_vec
> 
> rolls
> |> roll_within_bounds 2000
> |> _assert_eq' (optionm'.some' 1715)
> 
> ── [ 53.65s - return value ] ───────────────────────────────────────────────────
> │ 00:00:00 d #1 dice.accumulate_dice_rolls / { power = 4;
> acc = 0; roll = 2; value = 1296 }
> │ 00:00:00 d #2 dice.accumulate_dice_rolls / { power = 3;
> acc = 1296; roll = 2; value = 216 }
> │ 00:00:00 d #3 dice.accumulate_dice_rolls / { power = 2;
> acc = 1512; roll = 6; value = 180 }
> │ 00:00:00 d #4 dice.accumulate_dice_rolls / { power = 1;
> acc = 1692; roll = 4; value = 18 }
> │ 00:00:00 d #5 dice.accumulate_dice_rolls / { power = 0;
> acc = 1710; roll = 5; value = 4 }
> │ 00:00:00 d #6 dice.accumulate_dice_rolls / { power = 
> -1; acc = 1714; result = 1715 }
> │ 00:00:00 d #7 dice_contract.roll_within_bounds / { max 
> = 2000; rolls = [2, 2, 6, 4, 5]; result = Some(1715) }
> │  
> │ 00:00:07 i #2 near_workspaces.print_usd / { retry = 1; 
> total_gas_burnt_usd = +0.003069; total_gas_burnt = 4594626769596 }
> │ 00:00:07 i #3 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 
> gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
> │ 00:00:07 i #4 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.002863; tokens_burnt_usd = +0.002863; 
> gas_burnt = 4286544910256; tokens_burnt = 428654491025600000000 }
> │ 00:00:07 w #5 spiral_wasm.run / Error error / { retry =
> 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" }
> │ 
> │ 
> │ 00:00:00 d #1 dice.accumulate_dice_rolls / { power = 4;
> acc = 0; roll = 2; valu...n = 1; retry = 4; receipt_failures = [] }" }
> │ 
> │ 
> │ 00:00:00 d #1 dice.accumulate_dice_rolls / { power = 4;
> acc = 0; roll = 2; value = 1296 }
> │ 00:00:00 d #2 dice.accumulate_dice_rolls / { power = 3;
> acc = 1296; roll = 2; value = 216 }
> │ 00:00:00 d #3 dice.accumulate_dice_rolls / { power = 2;
> acc = 1512; roll = 6; value = 180 }
> │ 00:00:00 d #4 dice.accumulate_dice_rolls / { power = 1;
> acc = 1692; roll = 4; value = 18 }
> │ 00:00:00 d #5 dice.accumulate_dice_rolls / { power = 0;
> acc = 1710; roll = 5; value = 4 }
> │ 00:00:00 d #6 dice.accumulate_dice_rolls / { power = 
> -1; acc = 1714; result = 1715 }
> │ 00:00:00 d #7 dice_contract.roll_within_bounds / { max 
> = 2000; rolls = [2, 2, 6, 4, 5]; result = Some(1715) }
> │  
> │ 00:00:34 i #26 near_workspaces.print_usd / { retry = 5;
> total_gas_burnt_usd = +0.003218; total_gas_burnt = 4817809332096 }
> │ 00:00:34 i #27 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 
> gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 }
> │ 00:00:34 i #28 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.002863; tokens_burnt_usd = +0.002863; 
> gas_burnt = 4286544910256; tokens_burnt = 428654491025600000000 }
> │ 00:00:34 i #29 near_workspaces.print_usd / outcome / { 
> is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; 
> gas_burnt = 223182562500; tokens_burnt = 0 }
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ### main
> 
> ── spiral ──────────────────────────────────────────────────────────────────────
> ///! _
> 
> inl main () =
>     !\($'"} //"') : ()
> 
>     !\($'"#[[derive( //"') : ()
>     !\($'"  near_sdk::PanicOnDefault, //"') : ()
>     !\($'"  borsh::BorshDeserialize, //"') : ()
>     !\($'"  borsh::BorshSerialize, //"') : ()
>     !\($'")]] //"') : ()
> 
>     !\($'"pub struct OldState { //"') : ()
>     !\($'"    version: u32, //"') : ()
>     !\($'"    seeds: near_sdk::store::vec::Vector<u8>, //"') : ()
>     !\($'"} //"') : ()
> 
>     !\($'"#[[near_sdk::near_bindgen]] //"') : ()
> 
>     !\($'"#[[derive( //"') : ()
>     !\($'"  near_sdk::PanicOnDefault, //"') : ()
>     !\($'"  borsh::BorshDeserialize, //"') : ()
>     !\($'"  borsh::BorshSerialize, //"') : ()
>     !\($'")]] //"') : ()
> 
>     !\($'"pub struct State ( //"') : ()
> 
>     !\($'"/*"') : ()
>     (null () : rust.type_emit state) |> ignore
>     !\($'"*/ )"') : ()
> 
>     !\($'"impl From<OldState> for State { //"') : ()
>     !\($'"    fn from(old_state: OldState) -> Self { //"') : ()
>     !\($'"        Self((old_state.version + 1, old_state.seeds)) //"') : ()
>     !\($'"    } //"') : ()
>     !\($'"} //"') : ()
> 
>     inl new_ () =
>         !\($'"#[[init]] //"') : ()
>         !\($'"pub fn new() -> Self { // 1"') : ()
> 
>         (!\($'"true; /*"') : bool) |> ignore
> 
>         (null () : rust.type_emit ()) |> ignore
> 
>         (!\($'"true; */"') : bool) |> ignore
> 
>         inl result = new ()
>         $'let _result = !result in _result |> (fun x -> 
> Fable.Core.RustInterop.emitRustExpr x $"Self($0) // x") // 2' : ()
> 
>         !\($'"} // 2."') : ()
> 
>         !\($'"} // 1."') : ()
> 
>         2
> 
>     inl contribute_seed () =
>         !\($'"pub fn contribute_seed(&mut self, seed: Vec<u8>) { //"') : ()
>         inl seeds : rust.ref (rust.mut' (near.vector u8)) = !\($'$"&mut 
> self.0.1"')
>         inl seed : am'.vec u8 = !\($'$"seed"')
> 
>         seed |> contribute_seed seeds
> 
>         !\($'"} //"') : ()
> 
>         !\($'"} //"') : ()
> 
>         !\($'"} //"') : ()
> 
>         3
> 
>     inl contribute_seed_borsh () =
>         !\($'"pub fn contribute_seed_borsh(&mut self, #[[serializer(borsh)]] 
> seed: Vec<u8>) { //"') : ()
>         !\($'"    self.contribute_seed(seed) //"') : ()
>         !\($'"} //"') : ()
> 
>         1
> 
>     inl generate_random_number () =
>         !\($'"pub fn generate_random_number(&mut self, key: String, proof: 
> String, max: u64) -> u64 { //"') : ()
> 
>         inl key : sm'.std_string = !\($'$"key"')
>         inl proof : sm'.std_string = !\($'$"proof"')
>         inl max : u64 = !\($'$"max"')
> 
>         inl seeds : rust.ref (rust.mut' (near.vector u8)) = !\($'$"&mut 
> self.0.1"')
> 
>         inl result = generate_random_number seeds key proof max
> 
>         !\($'"!result //"') : ()
> 
>         !\($'"} //"') : ()
> 
>         !\($'"} //"') : ()
> 
>         !\($'"} //"') : ()
> 
>         3
> 
>     inl roll_within_bounds () =
>         !\($'"pub fn roll_within_bounds(&self, max: u64, rolls: Vec<u8>) -> 
> Option<u64> { //"') : ()
>         inl max : u64 = !\($'$"max"')
>         inl rolls : am'.vec u8 = !\($'$"rolls"')
>         inl result = roll_within_bounds max rolls
> 
>         !\\(result, $'"$0 //"') : ()
> 
>         !\($'"} //"') : ()
> 
>         !\($'"} //"') : ()
> 
>         2
> 
>     inl roll_within_bounds_borsh () =
>         !\($'"#[[result_serializer(borsh)]] //"') : ()
>         !\($'"pub fn roll_within_bounds_borsh( //"') : ()
>         !\($'"    &self, //"') : ()
>         !\($'"    #[[serializer(borsh)]] max: u64, //"') : ()
>         !\($'"    #[[serializer(borsh)]] rolls: Vec<u8>, //"') : ()
>         !\($'") -> Option<u64> { //"') : ()
>         !\($'"    self.roll_within_bounds(max, rolls) //"') : ()
>         !\($'"} //"') : ()
> 
>         1
> 
> 
>     inl fns =
>         [[
>             new_
>             contribute_seed
>             contribute_seed_borsh
>             generate_random_number
>             roll_within_bounds
>             roll_within_bounds_borsh
>         ]]
> 
>     inl rec loop acc fns i =
>         match fns with
>         | [[]] => acc
>         | x :: xs =>
>             !\($'"#[[near_sdk::near_bindgen]] //"') : ()
>             !\($'"impl State { //"') : ()
>             inl n = x ()
>             !\($'"} /* c"') : ()
>             inl rec loop' i' =
>                 if i' <> 1 // <= n
>                 then (!\($'"true; */ // ???? / i: !i / i\': !i' / acc: !acc / n:
> !n"') : bool) |> ignore
>                 else
>                     (!\($'"true; // ??? / i: !i / i\': !i' / acc: !acc / n: 
> !n"') : bool) |> ignore
>                     loop' (i' + 1)
>             loop' 1u8
>             loop (acc + n) xs (i + 1)
>     inl n = loop 0u8 fns 1u8
> 
> 
>     // !\($'"/* a"') : ()
> 
>     // !\($'"} // b"') : ()
> 
>     !\($'"fn _main() //"') : ()
>     !\($'" //"') : ()
> 
>     inl rec loop' i' =
>         if i' <= n
>         then
>             (!\($'"true; { (); // ?? / i\': !i' / n: !n"') : bool) |> ignore
>             loop' (i' + 1)
>         else
>             (!\($'"true; { { (); // ? / i\': !i' / n: !n"') : bool) |> ignore
>             // (!\($'"true; */ // ?? / i\': !i' / n: !n"') : bool) |> ignore
>     loop' 1u8
> 
> inl main () =
>     $'!main |> ignore' : ()
00:04:17 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 32171 }
00:04:17 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/dice/contract/dice_contract.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/dice/contract/dice_contract.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:04:19 v #5 ! [NbConvertApp] Converting notebook c:/home/git/dice/contract/dice_contract.dib.ipynb to html
00:04:19 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:04:19 v #7 !   validate(nb)
00:04:20 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:04:20 v #9 !   return _pygments_highlight(
00:04:20 v #10 ! [NbConvertApp] Writing 360110 bytes to c:\home\git\dice\contract\dice_contract.dib.html
00:04:20 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 856 }
00:04:20 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 856 }
00:04:20 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/dice/contract/dice_contract.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/dice/contract/dice_contract.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }
00:04:21 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }
00:04:21 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }
00:04:21 d #16 spiral.run / dib / { exit_code = 0; result_length = 33086 }
00:00:00 d #1 writeDibCode / output: Spi / path: dice_contract.dib
00:00:00 d #2 parseDibCode / output: Spi / file: dice_contract.dib
00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: dice_contract / hash:  / code.Length: 170197
00:00:00 d #2 buildProject / fullPath: c:\home\git\polyglot\target\Builder\dice_contract\dice_contract.fsproj
00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  "publish "c:/home/git\polyglot\target/Builder\dice_contract\dice_contract.fsproj" --configuration Release --output "C:\home\git\dice\contract\dist" --runtime linux-x64"; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\dice_contract\dice_contract.fsproj" --configuration Release --output "C:\home\git\dice\contract\dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\dice_contract" } }
00:00:01 v #2 >   Determining projects to restore...
00:00:01 v #3 >   Paket version 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
00:00:01 v #4 >   The last full restore is still up to date. Nothing left to do.
00:00:01 v #5 >   Total time taken: 0 milliseconds
00:00:02 v #6 >   Restored c:\home\git\polyglot\target\Builder\dice_contract\dice_contract.fsproj (in 310 ms).
00:00:14 v #7 >   dice_contract -> c:\home\git\polyglot\target\Builder\dice_contract\bin\Release\net9.0\linux-x64\dice_contract.dll
00:00:16 v #8 >   dice_contract -> C:\home\git\dice\contract\dist\
00:00:16 d #9 runtime.execute_with_options_async / { exit_code = 0; output_length = 461; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\dice_contract\dice_contract.fsproj" --configuration Release --output "C:\home\git\dice\contract\dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\dice_contract" } }
00:00:16 d #10 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0
  "publish "c:/home/git\polyglot\target/Builder\dice_contract\dice_contract.fsproj" --configuration Release --output "C:\home\git\dice\contract\dist" --runtime win-x64"; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\dice_contract\dice_contract.fsproj" --configuration Release --output "C:\home\git\dice\contract\dist" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\dice_contract" } }
00:00:17 v #11 >   Determining projects to restore...
00:00:17 v #12 >   Paket version 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
00:00:17 v #13 >   The last full restore is still up to date. Nothing left to do.
00:00:17 v #14 >   Total time taken: 0 milliseconds
00:00:18 v #15 >   Restored c:\home\git\polyglot\target\Builder\dice_contract\dice_contract.fsproj (in 290 ms).
00:00:31 v #16 >   dice_contract -> c:\home\git\polyglot\target\Builder\dice_contract\bin\Release\net9.0\win-x64\dice_contract.dll
00:00:33 v #17 >   dice_contract -> C:\home\git\dice\contract\dist\
00:00:33 d #18 runtime.execute_with_options_async / { exit_code = 0; output_length = 459; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\dice_contract\dice_contract.fsproj" --configuration Release --output "C:\home\git\dice\contract\dist" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\dice_contract" } }
spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\home\git\polyglot\target\Builder\dice_contract
polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\home\git\dice\deps\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target:  / path_target: C:\home\git\polyglot / parent: C:\home\git\dice\deps\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot
spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\target\Builder\dice_contract / ProjectName: dice_contract / Language: rs / Runtime: CONTRACT / root: C:\home\git\polyglot
Fable 5.0.0-alpha.9: F# to Rust compiler (status: alpha)

Thanks to the contributor! @Shmew
Stand with Ukraine! https://standwithukraine.com.ua/

Parsing target\Builder\dice_contract\dice_contract.fsproj...
Project and references (14 source files) parsed in 2945ms

Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.JSInterop.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Routing.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Routing.Abstractions.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.ViewFeatures.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Mvc.Core.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Http.Abstractions.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.Forms.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.Endpoints.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)
Could not scan C:/Program Files/dotnet/packs/Microsoft.AspNetCore.App.Ref/9.0.3/ref/net9.0/Microsoft.AspNetCore.Components.dll for Fable plugins, skipping this assembly. Original error: The exception has been reported. This internal exception should now be caught at an error recovery point on the stack. Original message: The type 'MetadataUpdateHandlerAttribute' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.)

Started Fable compilation...

Fable compilation finished in 11510ms

.\deps\spiral\lib\spiral\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\sm.fsx(561,0): (561,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\common.fsx(2199,0): (2199,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\crypto.fsx(2426,0): (2426,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\date_time.fsx(2546,0): (2546,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\platform.fsx(121,0): (121,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\networking.fsx(5050,0): (5050,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\trace.fsx(2232,0): (2232,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\runtime.fsx(7321,0): (7321,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\deps\spiral\lib\spiral\file_system.fsx(19036,0): (19036,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\target\Builder\dice_contract\dice_contract.fs(4306,6): (4306,12) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
dice/contract/build.ps1 / path: C:\home\git\polyglot\target\Builder\dice_contract/target/rs/dice_contract.rs
   Compiling fable_library_rust v0.1.0 (C:\home\git\dice\deps\polyglot\lib\rust\fable\fable_modules\fable-library-rust)
   Compiling dice_contract_lib v0.0.1 (C:\home\git\dice\lib\contract)
   Compiling dice_contract v0.0.1 (C:\home\git\dice\contract)
    Finished `release` profile [optimized] target(s) in 19.77s
dice/contract/build.ps1 / $targetDir = C:\home\git\polyglot\target\Builder\dice_contract / $projectName: dice_contract / $env:CI:''
warning: /mnt/c/home/git/dice/contract/tests/Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: /mnt/c/home/git/dice/lib/fsharp/Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: /mnt/c/home/git/dice/Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: /mnt/c/home/git/dice/contract/Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: /mnt/c/home/git/dice/lib/Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: /mnt/c/home/git/dice/ui/Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
warning: /mnt/c/home/git/dice/lib/contract/Cargo.toml: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest
  See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature.
   Compiling proc-macro2 v1.0.89
   Compiling libc v0.2.162
   Compiling serde v1.0.215
   Compiling typenum v1.17.0
   Compiling lock_api v0.4.12
   Compiling generic-array v0.14.7
   Compiling parking_lot_core v0.9.10
   Compiling slab v0.4.9
   Compiling syn v1.0.109
   Compiling num-traits v0.2.19
   Compiling crossbeam-utils v0.8.20
   Compiling thiserror v1.0.69
   Compiling rustversion v1.0.18
   Compiling serde_json v1.0.132
   Compiling semver v1.0.23
   Compiling borsh v1.5.3
   Compiling httparse v1.9.5
   Compiling quote v1.0.37
   Compiling syn v2.0.87
   Compiling num-integer v0.1.46
   Compiling rustc_version v0.4.1
   Compiling crossbeam-channel v0.5.13
   Compiling signal-hook-registry v1.4.2
   Compiling getrandom v0.2.15
   Compiling mio v1.0.2
   Compiling parking_lot v0.12.3
   Compiling socket2 v0.5.7
   Compiling rand_core v0.6.4
   Compiling num-bigint v0.3.3
   Compiling indexmap v1.9.3
   Compiling curve25519-dalek v4.1.3
   Compiling axum-core v0.3.4
   Compiling crunchy v0.2.2
   Compiling axum v0.6.20
   Compiling crypto-common v0.1.6
   Compiling ordered-float v4.5.0
   Compiling concurrent-queue v2.5.0
   Compiling openssl-sys v0.9.104
   Compiling rustix v0.38.40
   Compiling protobuf v2.28.0
   Compiling block-buffer v0.10.4
   Compiling zstd-safe v7.2.1
   Compiling prometheus v0.13.4
   Compiling digest v0.10.7
   Compiling synstructure v0.13.1
   Compiling serde_derive_internals v0.29.1
   Compiling darling_core v0.20.10
   Compiling serde_derive v1.0.215
   Compiling zerofrom-derive v0.1.4
   Compiling yoke-derive v0.7.4
   Compiling tokio-macros v2.4.0
   Compiling tracing-attributes v0.1.27
   Compiling zerovec-derive v0.10.3
   Compiling tokio v1.41.1
   Compiling displaydoc v0.2.5
   Compiling futures-macro v0.3.31
   Compiling zerocopy-derive v0.7.35
   Compiling tracing v0.1.40
   Compiling icu_provider_macros v1.5.0
   Compiling thiserror-impl v1.0.69
   Compiling borsh-derive v1.5.3
   Compiling futures-util v0.3.31
   Compiling sha2 v0.10.8
   Compiling zerocopy v0.7.35
   Compiling ppv-lite86 v0.2.20
   Compiling zerofrom v0.1.4
   Compiling yoke v0.7.4
   Compiling async-trait v0.1.83
   Compiling rand_chacha v0.3.1
   Compiling zerovec v0.10.4
   Compiling rand v0.8.5
   Compiling tokio-util v0.7.12
   Compiling tinystr v0.7.6
   Compiling indexmap v2.6.0
   Compiling hex v0.4.3
   Compiling icu_locid v1.5.0
   Compiling deranged v0.3.11
   Compiling pin-project-internal v1.1.7
   Compiling serde_repr v0.1.19
   Compiling time v0.3.36
   Compiling icu_provider v1.5.0
   Compiling h2 v0.3.26
   Compiling icu_collections v1.5.0
   Compiling futures-executor v0.3.31
   Compiling tracing-subscriber v0.3.18
   Compiling icu_locid_transform v1.5.0
   Compiling near-account-id v1.0.0
   Compiling tokio-stream v0.1.16
   Compiling pin-project v1.1.7
   Compiling derive_arbitrary v1.4.1
   Compiling enum-map-derive v0.17.0
   Compiling curve25519-dalek-derive v0.1.1
   Compiling derive_more v0.99.18
   Compiling icu_properties v1.5.1
   Compiling arbitrary v1.4.1
   Compiling enum-map v2.7.3
   Compiling tower v0.4.13
   Compiling hyper v0.14.31
   Compiling num-rational v0.3.2
   Compiling icu_normalizer v1.5.0
   Compiling tokio-io-timeout v1.2.0
   Compiling opentelemetry v0.22.0
   Compiling block-padding v0.3.3
   Compiling strum_macros v0.24.3
   Compiling prost-derive v0.12.6
   Compiling async-stream-impl v0.3.6
   Compiling near-primitives-core v0.23.0
   Compiling opentelemetry_sdk v0.22.1
   Compiling idna_adapter v1.2.0
   Compiling inout v0.1.3
   Compiling ed25519-dalek v2.1.1
   Compiling async-stream v0.3.6
   Compiling hyper-timeout v0.4.1
   Compiling strum v0.24.1
   Compiling uint v0.9.5
   Compiling prost v0.12.6
   Compiling schemars_derive v0.8.21
   Compiling openssl-macros v0.1.1
   Compiling idna v1.0.3
   Compiling primitive-types v0.10.1
   Compiling cipher v0.4.4
   Compiling openssl v0.10.68
   Compiling secp256k1 v0.27.0
   Compiling actix-rt v2.10.0
   Compiling near-config-utils v0.23.0
   Compiling blake2 v0.10.6
   Compiling hmac v0.12.1
   Compiling darling_macro v0.20.10
   Compiling actix_derive v0.6.2
   Compiling actix-macros v0.2.4
   Compiling near-crypto v0.23.0
   Compiling url v2.5.3
   Compiling tonic v0.11.0
   Compiling actix v0.13.5
   Compiling sha1 v0.10.6
   Compiling darling v0.20.10
   Compiling clap_derive v4.5.18
   Compiling zvariant_utils v1.0.1
   Compiling event-listener v5.3.1
   Compiling reed-solomon-erasure v4.0.2
   Compiling serde_yaml v0.9.34+deprecated
   Compiling event-listener-strategy v0.5.2
   Compiling serde_with_macros v3.11.0
   Compiling aes v0.8.4
   Compiling tracing-opentelemetry v0.23.0
   Compiling tracing-appender v0.2.3
   Compiling near-time v0.23.0
   Compiling futures v0.3.31
   Compiling clap v4.5.21
   Compiling near-rpc-error-core v0.23.0
   Compiling h2 v0.4.6
   Compiling enumflags2_derive v0.7.10
   Compiling proc-macro-error-attr v1.0.4
   Compiling dirs-sys-next v0.1.2
   Compiling chrono v0.4.38
   Compiling native-tls v0.2.12
   Compiling dirs-next v2.0.0
   Compiling opentelemetry-proto v0.5.0
   Compiling proc-macro-error v1.0.4
   Compiling sha3 v0.10.8
   Compiling enumflags2 v0.7.10
   Compiling zstd v0.13.2
   Compiling near-rpc-error-macro v0.23.0
   Compiling hyper v1.5.0
   Compiling opentelemetry-otlp v0.15.0
   Compiling near-performance-metrics v0.23.0
   Compiling serde_with v3.11.0
   Compiling near-parameters v0.23.0
   Compiling async-channel v2.3.1
   Compiling io-lifetimes v1.0.11
   Compiling zvariant_derive v3.15.2
   Compiling near-fmt v0.23.0
   Compiling bytesize v1.3.0
   Compiling smart-default v0.6.0
   Compiling near-async-derive v0.23.0
   Compiling filetime v0.2.25
   Compiling rustix v0.37.27
   Compiling signal-hook v0.3.17
   Compiling ring v0.17.8
   Compiling near-o11y v0.23.0
   Compiling schemars v0.8.21
   Compiling blocking v1.6.1
   Compiling hyper-util v0.1.10
   Compiling zvariant v3.15.2
   Compiling near-primitives v0.23.0
   Compiling polling v2.8.0
   Compiling interactive-clap-derive v0.2.10
   Compiling tokio-native-tls v0.3.1
   Compiling http-body-util v0.1.2
   Compiling socket2 v0.4.10
   Compiling num-bigint v0.4.6
   Compiling vte_generate_state_changes v0.1.2
   Compiling password-hash v0.4.2
   Compiling bitcoin-internals v0.2.0
   Compiling async-io v1.13.0
   Compiling portable-atomic v1.9.0
   Compiling pbkdf2 v0.11.0
   Compiling hyper-tls v0.6.0
   Compiling vte v0.11.1
   Compiling num-rational v0.4.2
   Compiling interactive-clap v0.2.10
   Compiling bzip2-sys v0.1.11+1.0.8
   Compiling zstd-safe v5.0.2+zstd.1.5.2
   Compiling zbus_names v2.6.1
   Compiling nix v0.26.4
   Compiling async-fs v1.6.0
   Compiling rustls-webpki v0.102.8
   Compiling near-async v0.23.0
   Compiling async-executor v1.13.1
   Compiling zbus_macros v3.15.2
   Compiling tracing-error v0.2.0
   Compiling serde_urlencoded v0.7.1
   Compiling digest v0.9.0
   Compiling derivative v2.2.0
   Compiling async-recursion v1.1.1
   Compiling xdg-home v1.3.0
   Compiling mio v0.8.11
   Compiling num-iter v0.1.45
   Compiling num-complex v0.4.6
   Compiling reqwest v0.12.9
   Compiling num v0.4.3
   Compiling signal-hook-mio v0.2.4
   Compiling dirs-sys v0.4.1
   Compiling color-spantrace v0.2.1
   Compiling rustls v0.23.16
   Compiling ureq v2.10.1
   Compiling zip v0.6.6
   Compiling backtrace v0.3.71
   Compiling zstd v0.11.2+zstd.1.5.2
   Compiling bzip2 v0.4.4
   Compiling vt100 v0.15.2
   Compiling zbus v3.15.2
   Compiling ahash v0.8.11
   Compiling near-abi v0.4.3
   Compiling near_schemafy_core v0.7.0
   Compiling console v0.15.8
   Compiling near-chain-configs v0.23.0
   Compiling hkdf v0.12.4
   Compiling cbc v0.1.2
   Compiling serde_spanned v0.6.8
   Compiling toml_datetime v0.6.8
   Compiling block-buffer v0.9.0
   Compiling crypto-mac v0.9.1
   Compiling scroll_derive v0.11.1
   Compiling xattr v1.3.1
   Compiling string_cache v0.8.7
   Compiling tar v0.4.43
   Compiling binary-install v0.2.0
   Compiling scroll v0.11.0
   Compiling indicatif v0.17.9
   Compiling toml_edit v0.22.22
   Compiling crypto-hash v0.3.4
   Compiling bitcoin_hashes v0.13.0
   Compiling sha2 v0.9.9
   Compiling csv v1.3.1
   Compiling hmac v0.9.0
   Compiling near_schemafy_lib v0.7.0
   Compiling hashbrown v0.14.5
   Compiling color-eyre v0.6.3
   Compiling secret-service v3.1.0
   Compiling near-jsonrpc-primitives v0.23.0
   Compiling dirs v5.0.1
   Compiling crossterm v0.25.0
   Compiling near-token v0.2.1
   Compiling term v0.7.0
   Compiling tempfile v3.14.0
   Compiling jobserver v0.1.32
   Compiling linux-keyutils v0.2.4
   Compiling is-terminal v0.4.13
   Compiling fs2 v0.4.3
   Compiling memmap2 v0.5.10
   Compiling cargo-util v0.1.2
   Compiling open v5.3.1
   Compiling symbolic-common v8.8.0
   Compiling goblin v0.5.4
   Compiling near-sandbox-utils v0.8.0
   Compiling prettytable v0.10.0
   Compiling elementtree v0.7.0
   Compiling names v0.14.0
   Compiling inquire v0.7.5
   Compiling keyring v2.3.3
   Compiling shellexpand v3.1.0
   Compiling near-abi-client-impl v0.1.1
   Compiling bip39 v2.1.0
   Compiling wasmparser v0.211.1
   Compiling toml v0.8.19
   Compiling slipped10 v0.4.6
   Compiling tracing-indicatif v0.3.6
   Compiling rust_decimal v1.36.0
   Compiling camino v1.1.9
   Compiling near-jsonrpc-client v0.10.1
   Compiling near-gas v0.2.5
   Compiling zip v0.5.13
   Compiling linked-hash-map v0.5.6
   Compiling cargo-platform v0.1.8
   Compiling smart-default v0.7.1
   Compiling symbolic-debuginfo v8.8.0
   Compiling cargo_metadata v0.18.1
   Compiling near-sandbox-utils v0.9.0
   Compiling near-abi-client-macros v0.1.1
   Compiling near-workspaces v0.11.1
   Compiling prettyplease v0.1.25
   Compiling jsonptr v0.4.7
   Compiling atty v0.2.14
   Compiling near-sandbox-utils v0.11.0
   Compiling json-patch v2.0.0
   Compiling tokio-retry v0.3.0
   Compiling near-abi-client v0.1.1
   Compiling near-socialdb-client v0.3.2
   Compiling near-cli-rs v0.11.1
   Compiling cargo-near v0.6.4
   Compiling dice_contract_tests v0.0.1 (/mnt/c/home/git/dice/contract/tests)
    Finished `release` profile [optimized] target(s) in 6m 32s
     Running `/mnt/c/home/git/dice/target/release/dice_contract_tests`


new: ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 1578245472594,
    },
    transaction: ExecutionOutcome {
        transaction_hash: 7FFH3xGo8UcBi5VYZQSsusJthA32P11krBT7y42rTbGe,
        block_hash: EqW9K7p5uavCjnmxjDmbwvyye1QGKLigfgyxzPFDChgC,
        logs: [],
        receipt_ids: [
            5uDX7yWcpnb6wuEQVNGe2JnVCHpEiKzhd2Ka5LaEUrx8,
        ],
        gas_burnt: NearGas {
            inner: 308066207802,
        },
        tokens_burnt: NearToken {
            inner: 30806620780200000000,
        },
        executor_id: AccountId(
            "dev-20250329105017-64487314066191",
        ),
        status: SuccessReceiptId(5uDX7yWcpnb6wuEQVNGe2JnVCHpEiKzhd2Ka5LaEUrx8),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: 5uDX7yWcpnb6wuEQVNGe2JnVCHpEiKzhd2Ka5LaEUrx8,
            block_hash: EqW9K7p5uavCjnmxjDmbwvyye1QGKLigfgyxzPFDChgC,
            logs: [],
            receipt_ids: [
                55QSBsVVveV9wp7xAp2CmEdKtisHXedbpUAY77ZWLxoJ,
            ],
            gas_burnt: NearGas {
                inner: 1270179264792,
            },
            tokens_burnt: NearToken {
                inner: 127017926479200000000,
            },
            executor_id: AccountId(
                "dev-20250329105017-64487314066191",
            ),
            status: SuccessValue(''),
        },
    ],
    status: SuccessValue(''),
}
total_gas_burnt_usd: 0.001054267975692792
outcome (success: true):
  outcome_gas_burnt_usd: 0.000205788226811736
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.0008484797488810559
  outcome_tokens_burnt_usd: 0.0


roll_within_bounds(contract, ''): ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 4635213021532,
    },
    transaction: ExecutionOutcome {
        transaction_hash: 8NErsYqZS9U73GEUjYfLCRmDcEKsVyP5TfJeVPR8Mbp5,
        block_hash: 2Rmx3h3EPtzJvDSscV87yQeYDF64gSFxZMEV9mJaoqku,
        logs: [],
        receipt_ids: [
            HJTUAJo46LGo4WBq4JuihgNN6hNVFX27mZ4w5PQ5miwf,
        ],
        gas_burnt: NearGas {
            inner: 308171296700,
        },
        tokens_burnt: NearToken {
            inner: 30817129670000000000,
        },
        executor_id: AccountId(
            "dev-20250329105017-64487314066191",
        ),
        status: SuccessReceiptId(HJTUAJo46LGo4WBq4JuihgNN6hNVFX27mZ4w5PQ5miwf),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: HJTUAJo46LGo4WBq4JuihgNN6hNVFX27mZ4w5PQ5miwf,
            block_hash: 2Rmx3h3EPtzJvDSscV87yQeYDF64gSFxZMEV9mJaoqku,
            logs: [
                "10:50:19 \u{1b}[94md\u{1b}[39m #1 dice.accumulate_dice_rolls / { power = 4; acc = 0; roll = 1 }\n10:50:19 \u{1b}[94md\u{1b}[39m #2 dice.accumulate_dice_rolls / { power = 3; acc = 0; roll = 5; value = 864 }\n10:50:19 \u{1b}[94md\u{1b}[39m #3 dice.accumulate_dice_rolls / { power = 2; acc = 864; roll = 4; value = 108 }\n10:50:19 \u{1b}[94md\u{1b}[39m #4 dice.accumulate_dice_rolls / { power = 1; acc = 972; roll = 4; value = 18 }\n10:50:19 \u{1b}[94md\u{1b}[39m #5 dice.accumulate_dice_rolls / { power = 0; acc = 990; roll = 5; value = 4 }\n10:50:19 \u{1b}[94md\u{1b}[39m #6 dice.accumulate_dice_rolls / { power = -1; acc = 994; result = 995 }\n10:50:19 \u{1b}[94md\u{1b}[39m #7 dice_contract.roll_within_bounds / { max = 2000; rolls = [1, 5, 4, 4, 5]; result = Some(995) }",
            ],
            receipt_ids: [
                ELNx8MnR83BKxjfdjHLr7G9TmjXjT6RvBsBaTXkxeuBP,
            ],
            gas_burnt: NearGas {
                inner: 4327041724832,
            },
            tokens_burnt: NearToken {
                inner: 432704172483200000000,
            },
            executor_id: AccountId(
                "dev-20250329105017-64487314066191",
            ),
            status: SuccessValue('995'),
        },
    ],
    status: SuccessValue('995'),
}
total_gas_burnt_usd: 0.003096322298383376
outcome (success: true):
  outcome_gas_burnt_usd: 0.00020585842619559998
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.002890463872187776
  outcome_tokens_burnt_usd: 0.0


roll_within_bounds_borsh(contract, ''): ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 4745185351441,
    },
    transaction: ExecutionOutcome {
        transaction_hash: J2jFJUriQ5HWKH6XMgHusUuMfvHGyL1Jadp5DuYoR2mS,
        block_hash: 8dZisjZUy4mMykGQrkYvBah6MUGceAGcpTM9FJPjZk9K,
        logs: [],
        receipt_ids: [
            8px9EbFN3ni1qkp7DcjCXts9CyLrfYJUtNDCgvSEpdLC,
        ],
        gas_burnt: NearGas {
            inner: 308151173294,
        },
        tokens_burnt: NearToken {
            inner: 30815117329400000000,
        },
        executor_id: AccountId(
            "dev-20250329105017-64487314066191",
        ),
        status: SuccessReceiptId(8px9EbFN3ni1qkp7DcjCXts9CyLrfYJUtNDCgvSEpdLC),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: 8px9EbFN3ni1qkp7DcjCXts9CyLrfYJUtNDCgvSEpdLC,
            block_hash: 8dZisjZUy4mMykGQrkYvBah6MUGceAGcpTM9FJPjZk9K,
            logs: [
                "10:50:19 \u{1b}[94md\u{1b}[39m #1 dice.accumulate_dice_rolls / { power = 4; acc = 0; roll = 2; value = 1296 }\n10:50:19 \u{1b}[94md\u{1b}[39m #2 dice.accumulate_dice_rolls / { power = 3; acc = 1296; roll = 2; value = 216 }\n10:50:19 \u{1b}[94md\u{1b}[39m #3 dice.accumulate_dice_rolls / { power = 2; acc = 1512; roll = 6; value = 180 }\n10:50:19 \u{1b}[94md\u{1b}[39m #4 dice.accumulate_dice_rolls / { power = 1; acc = 1692; roll = 4; value = 18 }\n10:50:19 \u{1b}[94md\u{1b}[39m #5 dice.accumulate_dice_rolls / { power = 0; acc = 1710; roll = 5; value = 4 }\n10:50:19 \u{1b}[94md\u{1b}[39m #6 dice.accumulate_dice_rolls / { power = -1; acc = 1714; result = 1715 }\n10:50:19 \u{1b}[94md\u{1b}[39m #7 dice_contract.roll_within_bounds / { max = 2000; rolls = [2, 2, 6, 4, 5]; result = Some(1715) }",
            ],
            receipt_ids: [
                5W4GZ2D8uYr9zPKPHbz6QcYyGGCDEj2XdR5aTVDPfwgT,
            ],
            gas_burnt: NearGas {
                inner: 4437034178147,
            },
            tokens_burnt: NearToken {
                inner: 443703417814700000000,
            },
            executor_id: AccountId(
                "dev-20250329105017-64487314066191",
            ),
            status: SuccessValue(AbMGAAAAAAAA),
        },
    ],
    status: SuccessValue(AbMGAAAAAAAA),
}
total_gas_burnt_usd: 0.003169783814762588
outcome (success: true):
  outcome_gas_burnt_usd: 0.000205844983760392
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.0029639388310021956
  outcome_tokens_burnt_usd: 0.0
n: Some(
    Some(
        1715,
    ),
)


generate_random_number(contract, ''): ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 27519652512445,
    },
    transaction: ExecutionOutcome {
        transaction_hash: kfFF1TffHLRsjn95Lg7J9Xxpk8vAX3FKULi9vkgNZ1A,
        block_hash: 8vduYWjCPQ8rQpG1BGk5DcHVvr1Gwce8L8fWCStPMiYW,
        logs: [],
        receipt_ids: [
            DyGKtmtxhv43uH8gY4C6rhDiRzHzyG246R1BcojnhQCX,
        ],
        gas_burnt: NearGas {
            inner: 308198127908,
        },
        tokens_burnt: NearToken {
            inner: 30819812790800000000,
        },
        executor_id: AccountId(
            "dev-20250329105017-64487314066191",
        ),
        status: SuccessReceiptId(DyGKtmtxhv43uH8gY4C6rhDiRzHzyG246R1BcojnhQCX),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: DyGKtmtxhv43uH8gY4C6rhDiRzHzyG246R1BcojnhQCX,
            block_hash: 8vduYWjCPQ8rQpG1BGk5DcHVvr1Gwce8L8fWCStPMiYW,
            logs: [
                "10:50:20 \u{1b}[94md\u{1b}[39m #2 dice_contract.generate_random_number / { max = 2000; key = \"key\"; proof = \"proof\"; block_timestamp = 1743245420075422278; block_height = 17; epoch_height = 1; account_balance = NearToken { inner: 99816504885979818773471040 }; signer_account_id = \"dev-20250329105017-64487314066191\"; predecessor_account_id = \"dev-20250329105017-64487314066191\"; seed = [166, 80, 108, 25, 138, 102, 186, 5, 58, 107, 24, 25, 87, 131, 159, 140, 160, 216, 89, 21, 85, 146, 45, 186, 200, 58, 36, 208, 137, 189, 104, 197]; seeds = Vector { len: 64, prefix: [115, 101, 101, 100, 115] }; entropy_len = 146; entropy = [166, 80, 108, 25, 138, 102, 186, 5, 58, 107, 24, 25, 87, 131, 159, 140, 160, 216, 89, 21, 85, 146, 45, 186, 200, 58, 36, 208, 137, 189, 104, 197, 1, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 70, 18, 236, 51, 121, 64, 49, 24, 64, 95, 8, 230, 63, 122, 134, 146, 247, 144, 82, 0, 0, 0, 0, 0, 100, 101, 118, 45, 50, 48, 50, 53, 48, 51, 50, 57, 49, 48, 53, 48, 49, 55, 45, 54, 52, 52, 56, 55, 51, 49, 52, 48, 54, 54, 49, 57, 49, 100, 101, 118, 45, 50, 48, 50, 53, 48, 51, 50, 57, 49, 48, 53, 48, 49, 55, 45, 54, 52, 52, 56, 55, 51, 49, 52, 48, 54, 54, 49, 57, 49, 112, 114, 111, 111, 102, 107, 101, 121]; hash_u8 = [92, 180, 195, 162, 13, 54, 145, 150, 18, 230, 162, 249, 236, 255, 67, 30, 70, 200, 42, 242, 58, 227, 73, 151, 103, 149, 32, 143, 136, 109, 233, 141, 216, 218, 203, 156, 28, 58, 128, 170, 51, 203, 62, 117, 73, 136, 34, 251, 255, 190, 139, 114, 37, 158, 48, 77, 17, 166, 37, 15, 69, 87, 15, 226]; rolls = [2, 6, 3, 6, 1, 6, 1, 6, 6, 2, 6, 3, 2, 3, 1, 6, 4, 2, 6, 2, 4, 5, 1, 1, 1, 5, 2, 5, 4, 1, 5, 3, 6, 2, 5, 6, 4, 4, 2, 2, 3, 5, 2, 3, 1, 4, 4, 5, 3, 4, 1, 6, 1, 2, 6, 5, 5, 4, 1, 3, 3, 3, 3, 4] }\n10:50:20 \u{1b}[94md\u{1b}[39m #3 dice.calculate_dice_count / { max = 2000; p = 7776; n = 5 }\n10:50:20 \u{1b}[94md\u{1b}[39m #4 dice.create_sequential_roller / roll / { current_index = 0; acc = 1; len = -1; last_item = None }\n10:50:20 \u{1b}[94md\u{1b}[39m #5 dice.create_sequential_roller / roll / { current_index = 1; acc = 1; len = -1; last_item = Some(2) }\n10:50:20 \u{1b}[94md\u{1b}[39m #6 dice.create_sequential_roller / roll / { current_index = 2; acc = 1; len = -1; last_item = Some(6) }\n10:50:20 \u{1b}[94md\u{1b}[39m #7 dice.create_sequential_roller / roll / { current_index = 3; acc = 1; len = -1; last_item = Some(3) }\n10:50:20 \u{1b}[94md\u{1b}[39m #8 dice.create_sequential_roller / roll / { current_index = 4; acc = 1; len = -1; last_item = Some(6) }\n10:50:20 \u{1b}[94md\u{1b}[39m #9 dice.accumulate_dice_rolls / { power = 4; acc = 0; roll = 1 }\n10:50:20 \u{1b}[94md\u{1b}[39m #10 dice.accumulate_dice_rolls / { power = 3; acc = 0; roll = 6; value = 1080 }\n10:50:20 \u{1b}[94md\u{1b}[39m #11 dice.accumulate_dice_rolls / { power = 2; acc = 1080; roll = 3; value = 72 }\n10:50:20 \u{1b}[94md\u{1b}[39m #12 dice.accumulate_dice_rolls / { power = 1; acc = 1152; roll = 6; value = 30 }\n10:50:20 \u{1b}[94md\u{1b}[39m #13 dice.accumulate_dice_rolls / { power = 0; acc = 1182; roll = 2; value = 1 }\n10:50:20 \u{1b}[94md\u{1b}[39m #14 dice.accumulate_dice_rolls / { power = -1; acc = 1183; result = 1184 }",
            ],
            receipt_ids: [
                G9ip5oq5QzyLswAjo63htCLbD12N55rKT9msAgRr8qzB,
            ],
            gas_burnt: NearGas {
                inner: 27211454384537,
            },
            tokens_burnt: NearToken {
                inner: 2721145438453700000000,
            },
            executor_id: AccountId(
                "dev-20250329105017-64487314066191",
            ),
            status: SuccessValue('1184'),
        },
    ],
    status: SuccessValue('1184'),
}
total_gas_burnt_usd: 0.018383127878313258
outcome (success: true):
  outcome_gas_burnt_usd: 0.00020587634944254398
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.018177251528870713
  outcome_tokens_burnt_usd: 0.0
n: 1184
00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "C:\home\git\dice\lib\fsharp/dice_fsharp.dib"])) }
00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/dice/lib/fsharp/dice_fsharp.dib", "--output-path", "c:/home/git/dice/lib/fsharp/dice_fsharp.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/dice/lib/fsharp/dice_fsharp.dib" --output-path "c:/home/git/dice/lib/fsharp/dice_fsharp.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ # DiceFSharp (Dice)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #if !INTERACTIVE
> open Polyglot
> open Lib
> #endif
> 
> open Common
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## sixthPowerSequence
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let sixthPowerSequence () =
>     1 |> Seq.unfold (fun state -> Some (state, state * 6)) |> Seq.cache
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> sixthPowerSequence ()
> |> Seq.take 8
> |> Seq.toList
> |> _assertEqual [[ 1; 6; 36; 216; 1296; 7776; 46656; 279936 ]]
> 
> ── [ 63.49ms - stdout ] ────────────────────────────────────────────────────────
> │ [1; 6; 36; 216; 1296; 7776; 46656; 279936]
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## accumulateDiceRolls
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec accumulateDiceRolls log rolls power acc =
>     match rolls with
>     | _ when power < 0 ->
>         log |> Option.iter ((|>) $"accumulateDiceRolls / power: {power} / acc: 
> {acc}")
>         Some (acc + 1, rolls)
>     | [[]] -> None
>     | roll :: rest when roll > 1 ->
>         let coeff = sixthPowerSequence () |> Seq.item power
>         let value = (roll - 1) * coeff
>         log |> Option.iter ((|>) $"accumulateDiceRolls / \
>             power: {power} / acc: {acc} / roll: {roll} / value: {value}"
>         )
>         accumulateDiceRolls log rest (power - 1) (acc + value)
>     | roll :: rest ->
>         log |> Option.iter ((|>) $"accumulateDiceRolls / power: {power} / acc: 
> {acc} / roll: {roll}")
>         accumulateDiceRolls log rest (power - 1) acc
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 0 1000
> |> _assertEqual (Some (1006, [[ 5; 4; 3; 2 ]]))
> 
> ── [ 44.82ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 0 / acc: 1000 / roll: 6 / value:
> 5
> │ accumulateDiceRolls / power: -1 / acc: 1005
> │ Some (1006, [5; 4; 3; 2])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 1 1000
> |> _assertEqual (Some (1035, [[ 4; 3; 2 ]]))
> 
> ── [ 24.93ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 1 / acc: 1000 / roll: 6 / value:
> 30
> │ accumulateDiceRolls / power: 0 / acc: 1030 / roll: 5 / value:
> 4
> │ accumulateDiceRolls / power: -1 / acc: 1034
> │ Some (1035, [4; 3; 2])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 2 1000
> |> _assertEqual (Some (1208, [[ 3; 2 ]]))
> 
> ── [ 24.44ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 2 / acc: 1000 / roll: 6 / value:
> 180
> │ accumulateDiceRolls / power: 1 / acc: 1180 / roll: 5 / value:
> 24
> │ accumulateDiceRolls / power: 0 / acc: 1204 / roll: 4 / value:
> 3
> │ accumulateDiceRolls / power: -1 / acc: 1207
> │ Some (1208, [3; 2])
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rollWithinBounds
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rollWithinBounds log max rolls =
>     let power = List.length rolls - 1
>     match accumulateDiceRolls log rolls power 0 with
>     | Some (result, _) when result >= 1 && result <= max -> Some result
>     | _ -> None
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> rollWithinBounds (Some (printfn "%s")) 2000 [[ 1; 5; 4; 4; 5 ]]
> |> _assertEqual (Some 995)
> 
> ── [ 22.47ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 4 / acc: 0 / roll: 1
> │ accumulateDiceRolls / power: 3 / acc: 0 / roll: 5 / value: 
> 864
> │ accumulateDiceRolls / power: 2 / acc: 864 / roll: 4 / value: 
> 108
> │ accumulateDiceRolls / power: 1 / acc: 972 / roll: 4 / value: 
> 18
> │ accumulateDiceRolls / power: 0 / acc: 990 / roll: 5 / value: 
> 4
> │ accumulateDiceRolls / power: -1 / acc: 994
> │ Some 995
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> rollWithinBounds (Some (printfn "%s")) 2000 [[ 2; 2; 6; 4; 5 ]]
> |> _assertEqual (Some 1715)
> 
> ── [ 21.74ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 4 / acc: 0 / roll: 2 / value: 
> 1296
> │ accumulateDiceRolls / power: 3 / acc: 1296 / roll: 2 / value:
> 216
> │ accumulateDiceRolls / power: 2 / acc: 1512 / roll: 6 / value:
> 180
> │ accumulateDiceRolls / power: 1 / acc: 1692 / roll: 4 / value:
> 18
> │ accumulateDiceRolls / power: 0 / acc: 1710 / roll: 5 / value:
> 4
> │ accumulateDiceRolls / power: -1 / acc: 1714
> │ Some 1715
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> rollWithinBounds (Some (printfn "%s")) 2000 [[ 4; 1; 1; 2; 3 ]]
> |> _assertEqual None
> 
> ── [ 21.22ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 4 / acc: 0 / roll: 4 / value: 
> 3888
> │ accumulateDiceRolls / power: 3 / acc: 3888 / roll: 1
> │ accumulateDiceRolls / power: 2 / acc: 3888 / roll: 1
> │ accumulateDiceRolls / power: 1 / acc: 3888 / roll: 2 / value:
> 6
> │ accumulateDiceRolls / power: 0 / acc: 3894 / roll: 3 / value:
> 2
> │ accumulateDiceRolls / power: -1 / acc: 3896
> │ <null>
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## calculateDiceCount
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline calculateDiceCount log max =
>     let rec loop n p =
>         if p < max
>         then loop (n + 1) (p * 6)
>         else
>             log |> Option.iter ((|>) $"calculateDiceCount / max: {max} / n: {n} 
> / p: {p}")
>             n
>     if max = 1
>     then 1
>     else loop 0 1
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> calculateDiceCount (Some (printfn "%s")) 36
> |> _assertEqual 2
> 
> ── [ 24.43ms - stdout ] ────────────────────────────────────────────────────────
> │ calculateDiceCount / max: 36 / n: 2 / p: 36
> │ 2
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> calculateDiceCount (Some (printfn "%s")) 7777
> |> _assertEqual 6
> 
> ── [ 23.58ms - stdout ] ────────────────────────────────────────────────────────
> │ calculateDiceCount / max: 7777 / n: 6 / p: 46656
> │ 6
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rollDice
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #if FABLE_COMPILER_RUST
> let rollDice () : int =
> #if !WASM && !CONTRACT
>     Fable.Core.RustInterop.emitRustExpr () "rand::Rng::gen_range(&mut 
> rand::thread_rng(), 1..7)"
> #else
>     1
> #endif
> #else
> let private random = System.Random ()
> let rollDice () =
>     random.Next (1, 7)
> #endif
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rotateNumber
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rotateNumber max n =
>     (n - 1 + max) % max + 1
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rotateNumbers
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rotateNumbers max items =
>     items |> Seq.map (rotateNumber max)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> [[ -1 .. 14 ]]
> |> rotateNumbers 6
> |> Seq.toList
> |> _assertEqual [[ 5; 6; 1; 2; 3; 4; 5; 6; 1; 2; 3; 4; 5; 6; 1; 2 ]]
> 
> ── [ 34.24ms - stdout ] ────────────────────────────────────────────────────────
> │ [5; 6; 1; 2; 3; 4; 5; 6; 1; 2; 3; 4; 5; 6; 1; 2]
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## createSequentialRoller
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let createSequentialRoller list =
>     let mutable currentIndex = 0
>     fun () ->
>         match list |> List.tryItem currentIndex with
>         | Some item ->
>             currentIndex <- currentIndex + 1
>             item
>         | None ->
>             failwith "createSequentialRoller / End of list"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rollProgressively
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rollProgressively log roll reroll max =
>     let power = (calculateDiceCount log max) - 1
>     let rec loop rolls size =
>         if size < power + 1
>         then loop (roll () :: rolls) (size + 1)
>         else
>             match accumulateDiceRolls log rolls power 0 with
>             | Some (result, _) when result <= max -> result
>             | _ when reroll -> loop (List.init power (fun _ -> roll ())) power
>             | _ -> loop (roll () :: rolls) (size + 1)
>     loop [[]] 0
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> rollProgressively None rollDice false 1
> |> _assertEqual 1
> 
> ── [ 16.19ms - stdout ] ────────────────────────────────────────────────────────
> │ 1
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let sequentialRoll = createSequentialRoller [[ 5; 4; 4; 5; 1 ]]
> 
> rollProgressively (Some (printfn "%s")) sequentialRoll false 2000
> |> _assertEqual 995
> 
> ── [ 19.72ms - stdout ] ────────────────────────────────────────────────────────
> │ calculateDiceCount / max: 2000 / n: 5 / p: 7776
> │ accumulateDiceRolls / power: 4 / acc: 0 / roll: 1
> │ accumulateDiceRolls / power: 3 / acc: 0 / roll: 5 / value: 
> 864
> │ accumulateDiceRolls / power: 2 / acc: 864 / roll: 4 / value: 
> 108
> │ accumulateDiceRolls / power: 1 / acc: 972 / roll: 4 / value: 
> 18
> │ accumulateDiceRolls / power: 0 / acc: 990 / roll: 5 / value: 
> 4
> │ accumulateDiceRolls / power: -1 / acc: 994
> │ 995
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let sequentialRoll = createSequentialRoller [[ 5; 4; 4; 5; 2 ]]
> 
> fun () -> rollProgressively (Some (printfn "%s")) sequentialRoll false 2000 |> 
> ignore
> |> _throwsC (fun ex _ ->
>     SpiralSm.format_exception ex
>     |> _assertEqual "System.Exception: createSequentialRoller / End of list"
> )
> 
> ── [ 45.39ms - stdout ] ────────────────────────────────────────────────────────
> │ <fun:it@5-13>
> │ 
> │ calculateDiceCount / max: 2000 / n: 5 / p: 7776
> │ accumulateDiceRolls / power: 4 / acc: 0 / roll: 2 / value: 
> 1296
> │ accumulateDiceRolls / power: 3 / acc: 1296 / roll: 5 / value:
> 864
> │ accumulateDiceRolls / power: 2 / acc: 2160 / roll: 4 / value:
> 108
> │ accumulateDiceRolls / power: 1 / acc: 2268 / roll: 4 / value:
> 18
> │ accumulateDiceRolls / power: 0 / acc: 2286 / roll: 5 / value:
> 4
> │ accumulateDiceRolls / power: -1 / acc: 2290
> │ "System.Exception: createSequentialRoller / End of list"
> │ 
> │ 
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> rollProgressively (Some (printfn "%s")) rollDice false 2000
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> rollProgressively (Some (printfn "%s")) rollDice true 2000
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> [[| 1 .. 10000 |]]
> |> Array.Parallel.map (fun _ -> rollProgressively None rollDice false 10)
> |> Array.Parallel.groupBy id
> |> Array.Parallel.map (fun (k, v) -> k, v.Length)
> |> Array.Parallel.sortBy fst
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> [[| 1 .. 10000 |]]
> |> Array.Parallel.map (fun _ -> rollProgressively None rollDice true 10)
> |> Array.Parallel.groupBy id
> |> Array.Parallel.map (fun (k, v) -> k, v.Length)
> |> Array.Parallel.sortBy fst
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> [[| 1 .. 100 |]]
> |> Array.Parallel.iter (fun n ->
>     [[| 0 .. 1 |]]
>     |> Array.Parallel.iter (fun reroll ->
>         [[| 1 .. 3500 |]]
>         |> Array.Parallel.map (fun _ -> rollProgressively None rollDice (reroll 
> = 1) n)
>         |> Array.Parallel.groupBy id
>         |> Array.length
>         |> __assertEqual false n
>     )
> )
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> let inline rollMax fn max n =
>     [[| 1 .. n |]]
>     |> Array.Parallel.map (fun _ -> fn max)
>     |> Array.Parallel.groupBy id
>     |> Array.Parallel.map (fun (_, v) -> v.Length)
> 
> let rec rollN max n even current =
>     let roll = rollMax (rollProgressively None rollDice true) max n
>     if roll |> Array.Parallel.forall ((=) even)
>     then current
>     else rollN max n even (current + 1)
> 
> let run () =
>     let max = 10
>     let n = 30
>     let even = (n / max) |> int
> 
>     rollN max n even 0
> 
> // run ()
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> let run () =
>     let max = 10
>     let n = 30
>     let even = (n / max) |> int
>     [[| 1 .. 100 |]]
>     |> Array.Parallel.map (fun i ->
>         let roll = rollN max n even 0
>         printfn $"i: {i} / roll: {roll}"
>         float roll
>     )
>     |> Array.Parallel.average
> 
> // run ()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## FsCheck (test)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #r 
> @"../../../../../../../.nuget/packages/fscheck/3.0.1/lib/netstandard2.0/FsCheck.
> dll"
> #r 
> @"../../../../../../../.nuget/packages/expecto.fscheck/11.0.0-alpha8/lib/net6.0/
> Expecto.FsCheck3.dll"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> type ValorDado =
>     | Um
>     | Dois
>     | Tres
>     | Quatro
>     | Cinco
>     | Seis
> 
> type Aspecto =
>     | Passado of string
>     | Presente of string
>     | Futuro of string
>     | Desafios of string
>     | Recursos of string
>     | ResultadoProjetado of string
>     | InfluenciaExterna of string
> 
> type Contexto =
>     | Amor of string
>     | Trabalho of string
>     | Saude of string
>     | Dinheiro of string
> 
> type Universo =
>     | Real of string
>     | Virtual of string
>     | Espiritual of string
> 
> type Caracteristica =
>     | Aspecto of Aspecto
>     | Contexto of Contexto
>     | Universo of Universo
>     | DadoRolado of ValorDado
> 
> type Interacao =
>     | Conflito
>     | Parceria
>     | Crescimento
>     | Estagnacao
>     | Separacao
>     | Harmonia
>     | Desafio
>     | Colaboracao
>     | Progresso
>     | Mudanca
>     | Sucesso
> 
> type Interpretacao =
>     | Interpretacao of Caracteristica * Interacao * Caracteristica
> 
> type SistemaDivinacao =
>     | SistemaDivinacao of Interpretacao list * Caracteristica
> 
> let config = { Expecto.FsCheckConfig.defaultConfig with maxTest = 10000 }
> 
> let shuffleList xs seed =
>     let rnd = Random (seed)
>     xs
>     |> List.map (fun x -> rnd.Next(), x)
>     |> List.sortBy fst
>     |> List.map snd
> 
> 
> 
> 
> type Complexity = Simple | Moderate | Complex
> type Duration = Short | Medium | Long
> 
> type Dice = D1 of int | D2 of int
> 
> type Task =
>     | Task of Complexity * Duration * Task
>     | NoTask
> 
> let durationOfFocus (d1: int) (d2: int) =
>     match d1 + d2 with
>     | sum when sum <= 4 -> Short
>     | sum when sum <= 8 -> Medium
>     | _ -> Long
> 
> let complexityOfTask (d1: int) (d2: int) =
>     match d1 * d2 with
>     | product when product <= 12 -> Simple
>     | product when product <= 24 -> Moderate
>     | _ -> Complex
> 
> let rec generateTaskList d1 d2 previousTask =
>     match d1, d2 with
>     | d1, d2 when d1 > 0 && d2 > 0 ->
>         let complexity = complexityOfTask d1 d2
>         let duration = durationOfFocus d1 d2
>         let newTask = Task (complexity, duration, previousTask)
>         generateTaskList (d1 - 1) (d2 - 1) newTask
>     | _, _ -> previousTask
> 
> 
> 
> 
> 
> let properties =
>     Expecto.Tests.testList "FsCheck samples" [[
>         let sistemaDivinacao (interpretacoes: Interpretacao list, 
> caracteristica: Caracteristica) =
>             let interpretacoes = interpretacoes |> List.sort
>             SistemaDivinacao (interpretacoes, caracteristica)
> 
>         Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
> is consistent" <|
>             fun (interpretacoes: Interpretacao list, caracteristica: 
> Caracteristica) ->
>                 sistemaDivinacao (interpretacoes, caracteristica)
>                     = sistemaDivinacao (interpretacoes, caracteristica)
> 
>         Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
> is variant under permutation" <|
>             fun (input: Interpretacao list, caracteristica: Caracteristica) ->
>                 let seed = 42
>                 let shuffledInput = shuffleList input seed
>                 sistemaDivinacao (input, caracteristica) = sistemaDivinacao 
> (shuffledInput, caracteristica)
> 
>         Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
> can handle lists of any size" <|
>             fun (input: Interpretacao list, caracteristica: Caracteristica) ->
>                 let sistema = sistemaDivinacao (input, caracteristica)
>                 sistema <> Unchecked.defaultof<_>
> 
>         Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
> is invariant under data transformations" <|
>             fun (input: Interpretacao list, caracteristica: Caracteristica, 
> newInterpretation: Interpretacao) ->
>                 let containsNewInterpretation = input |> List.contains 
> newInterpretation
>                 let modifiedInput =
>                     if containsNewInterpretation
>                     then input
>                     else newInterpretation :: input
>                 if containsNewInterpretation
>                 then sistemaDivinacao (List.sort input, caracteristica)
>                         = sistemaDivinacao (List.sort modifiedInput, 
> caracteristica)
>                 else sistemaDivinacao (List.sort input, caracteristica)
>                         <> sistemaDivinacao (List.sort modifiedInput, 
> caracteristica)
> 
> 
> 
> 
> 
> 
>         let focusDurationProperty =
>             FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
> (FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
> 6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
>                 let expected =
>                     match d1 + d2 with
>                     | sum when sum <= 4 -> Short
>                     | sum when sum <= 8 -> Medium
>                     | _ -> Long
>                 let actual = durationOfFocus d1 d2
>                 expected = actual
> 
>         let taskComplexityProperty =
>             FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
> (FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
> 6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
>                 let expected =
>                     match d1 * d2 with
>                     | product when product <= 12 -> Simple
>                     | product when product <= 24 -> Moderate
>                     | _ -> Complex
>                 let actual = complexityOfTask d1 d2
>                 expected = actual
> 
>         let taskListLengthProperty =
>             FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
> (FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
> 6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
>                 let taskList = generateTaskList d1 d2 NoTask
>                 let rec taskListLength taskList =
>                     match taskList with
>                     | Task (_, _, nextTask) -> 1 + taskListLength nextTask
>                     | NoTask -> 0
>                 let actual = taskListLength taskList
>                 let expected = min d1 d2
>                 expected = actual
> 
> 
>         Expecto.ExpectoFsCheck.testProperty "Duration of focus should be 
> calculated correctly" focusDurationProperty
>         Expecto.ExpectoFsCheck.testProperty "Task complexity should be 
> calculated correctly" taskComplexityProperty
>         Expecto.ExpectoFsCheck.testProperty "Task list should have the correct 
> length" taskListLengthProperty
> 
> 
> 
>     ]]
> 
> let dice1 = 6
> let dice2 = 6
> 
> let taskList = generateTaskList dice1 dice2 NoTask
> 
> let rec printTaskList taskList =
>     match taskList with
>     | Task (complexity, duration, nextTask) ->
>         printfn "Complexidade: %A, Duração: %A" complexity duration
>         printTaskList nextTask
>     | NoTask -> ()
> 
> printTaskList taskList
> 
> Expecto.Tests.runTestsWithCLIArgs [[]] [[||]] properties
> |> _assertEqual 0
> 
> ── [ 623.54ms - stderr ] ───────────────────────────────────────────────────────
> │ Complexidade: Simple, Duração: Short
> │ Complexidade: Simple, Duração: Short
> │ Complexidade: Simple, Duração: Medium
> │ Complexidade: Moderate, Duração: Medium
> │ Complexidade: Complex, Duração: Long
> │ Complexidade: Complex, Duração: Long
> │ 
> NotebookRunner.RunNotebookAsync / exiting... 3
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## main
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let main args =
>     let result = rollProgressively (Some (printfn "%s")) rollDice true 
> (System.Int32.MaxValue / 10)
>     trace Debug (fun () -> $"main / result: {result}") _locals
>     0
> NotebookRunner.RunNotebookAsync / exiting... 2
> NotebookRunner.RunNotebookAsync / exiting... 1
> NotebookRunner.RunNotebookAsync / event: CommandFailed: 
> System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Cecil, 
> Version=0.11.4.0, Culture=neutral, PublicKeyToken=50cebf1cceb9d05e'. The system 
> cannot find the file specified.
> File name: 'Mono.Cecil, Version=0.11.4.0, Culture=neutral, 
> PublicKeyToken=50cebf1cceb9d05e'
>    at <StartupCode$Expecto>.$Expecto.Impl..cctor()
>    at Expecto.Impl.get_defaultPrinter@257.Invoke(Test _tests) in 
> C:\workspaces\dotnet\expecto\Expecto\Expecto.Impl.fs:line 258
>    at Expecto.Impl.runEvalWithCancel@743.Invoke(Unit unitVar) in 
> C:\workspaces\dotnet\expecto\Expecto\Expecto.Impl.fs:line 743
>    at 
> Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati
> on`1 ctxt, TResult result1, FSharpFunc`2 part2) in 
> D:\a\_work\1\s\src\FSharp.Core\async.fs:line 510
>    at Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in 
> D:\a\_work\1\s\src\FSharp.Core\async.fs:line 112
> --- End of stack trace from previous location ---
>    at Microsoft.FSharp.Control.AsyncResult`1.Commit() in 
> D:\a\_work\1\s\src\FSharp.Core\async.fs:line 454
>    at 
> Microsoft.FSharp.Control.AsyncPrimitives.QueueAsyncAndWaitForResultSynchronously
> [a](CancellationToken token, FSharpAsync`1 computation, FSharpOption`1 timeout) 
> in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1139
>    at 
> Microsoft.FSharp.Control.AsyncPrimitives.RunSynchronously[T](CancellationToken 
> cancellationToken, FSharpAsync`1 computation, FSharpOption`1 timeout) in 
> D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1166
>    at Microsoft.FSharp.Control.FSharpAsync.RunSynchronously[T](FSharpAsync`1 
> computation, FSharpOption`1 timeout, FSharpOption`1 cancellationToken) in 
> D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1515
>    at Expecto.Tests.runTestsWithCancel@617(CancellationToken ct, ExpectoConfig 
> config, Test tests) in C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 635
>    at Expecto.Tests.runTestsWithCLIArgsAndCancel(CancellationToken ct, 
> IEnumerable`1 cliArgs, String[] args, Test tests) in 
> C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 660
>    at Expecto.Tests.runTestsWithCLIArgs(IEnumerable`1 cliArgs, String[] args, 
> Test tests) in C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 668
>    at <StartupCode$FSI_0052>.$FSI_0052.main@()
>    at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, 
> Signature sig, Boolean isConstructor)
>    at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, 
> BindingFlags invokeAttr)
00:00:22 v #3 runtime.execute_with_options / result / { exit_code = -1; std_trace_length = 26177 }
00:00:22 d #4 spiral.run / dib / { exit_code = -1; result_length = 26177 }

thread 'main' panicked at C:\home\git\spiral\apps\spiral\spiral.rs:16903:45:
spiral.run / dib / exit_code: -1 / result: 
── markdown ────────────────────────────────────────────────────────────────────
│ # DiceFSharp (Dice)

── fsharp ──────────────────────────────────────────────────────────────────────
#if !INTERACTIVE
open Polyglot
open Lib
#endif

open Common

── markdown ────────────────────────────────────────────────────────────────────
│ ## sixthPowerSequence

── fsharp ──────────────────────────────────────────────────────────────────────
let sixthPowerSequence () =
    1 |> Seq.unfold (fun state -> Some (state, state * 6)) |> Seq.cache

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

sixthPowerSequence ()
|> Seq.take 8
|> Seq.toList
|> _assertEqual [[ 1; 6; 36; 216; 1296; 7776; 46656; 279936 ]]

── [ 63.49ms - stdout ] ────────────────────────────────────────────────────────
│ [1; 6; 36; 216; 1296; 7776; 46656; 279936]
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## accumulateDiceRolls

── fsharp ──────────────────────────────────────────────────────────────────────
let rec accumulateDiceRolls log rolls power acc =
    match rolls with
    | _ when power < 0 ->
        log |> Option.iter ((|>) $"accumulateDiceRolls / power: {power} / acc: 
{acc}")
        Some (acc + 1, rolls)
    | [[]] -> None
    | roll :: rest when roll > 1 ->
        let coeff = sixthPowerSequence () |> Seq.item power
        let value = (roll - 1) * coeff
        log |> Option.iter ((|>) $"accumulateDiceRolls / \
            power: {power} / acc: {acc} / roll: {roll} / value: {value}"
        )
        accumulateDiceRolls log rest (power - 1) (acc + value)
    | roll :: rest ->
        log |> Option.iter ((|>) $"accumulateDiceRolls / power: {power} / acc: 
{acc} / roll: {roll}")
        accumulateDiceRolls log rest (power - 1) acc

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 0 1000
|> _assertEqual (Some (1006, [[ 5; 4; 3; 2 ]]))

── [ 44.82ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 0 / acc: 1000 / roll: 6 / value:
5
│ accumulateDiceRolls / power: -1 / acc: 1005
│ Some (1006, [5; 4; 3; 2])
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 1 1000
|> _assertEqual (Some (1035, [[ 4; 3; 2 ]]))

── [ 24.93ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 1 / acc: 1000 / roll: 6 / value:
30
│ accumulateDiceRolls / power: 0 / acc: 1030 / roll: 5 / value:
4
│ accumulateDiceRolls / power: -1 / acc: 1034
│ Some (1035, [4; 3; 2])
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 2 1000
|> _assertEqual (Some (1208, [[ 3; 2 ]]))

── [ 24.44ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 2 / acc: 1000 / roll: 6 / value:
180
│ accumulateDiceRolls / power: 1 / acc: 1180 / roll: 5 / value:
24
│ accumulateDiceRolls / power: 0 / acc: 1204 / roll: 4 / value:
3
│ accumulateDiceRolls / power: -1 / acc: 1207
│ Some (1208, [3; 2])
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## rollWithinBounds

── fsharp ──────────────────────────────────────────────────────────────────────
let rollWithinBounds log max rolls =
    let power = List.length rolls - 1
    match accumulateDiceRolls log rolls power 0 with
    | Some (result, _) when result >= 1 && result <= max -> Some result
    | _ -> None

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

rollWithinBounds (Some (printfn "%s")) 2000 [[ 1; 5; 4; 4; 5 ]]
|> _assertEqual (Some 995)

── [ 22.47ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 4 / acc: 0 / roll: 1
│ accumulateDiceRolls / power: 3 / acc: 0 / roll: 5 / value: 
864
│ accumulateDiceRolls / power: 2 / acc: 864 / roll: 4 / value: 
108
│ accumulateDiceRolls / power: 1 / acc: 972 / roll: 4 / value: 
18
│ accumulateDiceRolls / power: 0 / acc: 990 / roll: 5 / value: 
4
│ accumulateDiceRolls / power: -1 / acc: 994
│ Some 995
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

rollWithinBounds (Some (printfn "%s")) 2000 [[ 2; 2; 6; 4; 5 ]]
|> _assertEqual (Some 1715)

── [ 21.74ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 4 / acc: 0 / roll: 2 / value: 
1296
│ accumulateDiceRolls / power: 3 / acc: 1296 / roll: 2 / value:
216
│ accumulateDiceRolls / power: 2 / acc: 1512 / roll: 6 / value:
180
│ accumulateDiceRolls / power: 1 / acc: 1692 / roll: 4 / value:
18
│ accumulateDiceRolls / power: 0 / acc: 1710 / roll: 5 / value:
4
│ accumulateDiceRolls / power: -1 / acc: 1714
│ Some 1715
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

rollWithinBounds (Some (printfn "%s")) 2000 [[ 4; 1; 1; 2; 3 ]]
|> _assertEqual None

── [ 21.22ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 4 / acc: 0 / roll: 4 / value: 
3888
│ accumulateDiceRolls / power: 3 / acc: 3888 / roll: 1
│ accumulateDiceRolls / power: 2 / acc: 3888 / roll: 1
│ accumulateDiceRolls / power: 1 / acc: 3888 / roll: 2 / value:
6
│ accumulateDiceRolls / power: 0 / acc: 3894 / roll: 3 / value:
2
│ accumulateDiceRolls / power: -1 / acc: 3896
│ <null>
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## calculateDiceCount

── fsharp ──────────────────────────────────────────────────────────────────────
let inline calculateDiceCount log max =
    let rec loop n p =
        if p < max
        then loop (n + 1) (p * 6)
        else
            log |> Option.iter ((|>) $"calculateDiceCount / max: {max} / n: {n} 
/ p: {p}")
            n
    if max = 1
    then 1
    else loop 0 1

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

calculateDiceCount (Some (printfn "%s")) 36
|> _assertEqual 2

── [ 24.43ms - stdout ] ────────────────────────────────────────────────────────
│ calculateDiceCount / max: 36 / n: 2 / p: 36
│ 2
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

calculateDiceCount (Some (printfn "%s")) 7777
|> _assertEqual 6

── [ 23.58ms - stdout ] ────────────────────────────────────────────────────────
│ calculateDiceCount / max: 7777 / n: 6 / p: 46656
│ 6
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## rollDice

── fsharp ──────────────────────────────────────────────────────────────────────
#if FABLE_COMPILER_RUST
let rollDice () : int =
#if !WASM && !CONTRACT
    Fable.Core.RustInterop.emitRustExpr () "rand::Rng::gen_range(&mut 
rand::thread_rng(), 1..7)"
#else
    1
#endif
#else
let private random = System.Random ()
let rollDice () =
    random.Next (1, 7)
#endif

── markdown ────────────────────────────────────────────────────────────────────
│ ## rotateNumber

── fsharp ──────────────────────────────────────────────────────────────────────
let rotateNumber max n =
    (n - 1 + max) % max + 1

── markdown ────────────────────────────────────────────────────────────────────
│ ## rotateNumbers

── fsharp ──────────────────────────────────────────────────────────────────────
let rotateNumbers max items =
    items |> Seq.map (rotateNumber max)

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

[[ -1 .. 14 ]]
|> rotateNumbers 6
|> Seq.toList
|> _assertEqual [[ 5; 6; 1; 2; 3; 4; 5; 6; 1; 2; 3; 4; 5; 6; 1; 2 ]]

── [ 34.24ms - stdout ] ────────────────────────────────────────────────────────
│ [5; 6; 1; 2; 3; 4; 5; 6; 1; 2; 3; 4; 5; 6; 1; 2]
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## createSequentialRoller

── fsharp ──────────────────────────────────────────────────────────────────────
let createSequentialRoller list =
    let mutable currentIndex = 0
    fun () ->
        match list |> List.tryItem currentIndex with
        | Some item ->
            currentIndex <- currentIndex + 1
            item
        | None ->
            failwith "createSequentialRoller / End of list"

── markdown ────────────────────────────────────────────────────────────────────
│ ## rollProgressively

── fsharp ──────────────────────────────────────────────────────────────────────
let rollProgressively log roll reroll max =
    let power = (calculateDiceCount log max) - 1
    let rec loop rolls size =
        if size < power + 1
        then loop (roll () :: rolls) (size + 1)
        else
            match accumulateDiceRolls log rolls power 0 with
            | Some (result, _) when result <= max -> result
            | _ when reroll -> loop (List.init power (fun _ -> roll ())) power
            | _ -> loop (roll () :: rolls) (size + 1)
    loop [[]] 0

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

rollProgressively None rollDice false 1
|> _assertEqual 1

── [ 16.19ms - stdout ] ────────────────────────────────────────────────────────
│ 1
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let sequentialRoll = createSequentialRoller [[ 5; 4; 4; 5; 1 ]]

rollProgressively (Some (printfn "%s")) sequentialRoll false 2000
|> _assertEqual 995

── [ 19.72ms - stdout ] ────────────────────────────────────────────────────────
│ calculateDiceCount / max: 2000 / n: 5 / p: 7776
│ accumulateDiceRolls / power: 4 / acc: 0 / roll: 1
│ accumulateDiceRolls / power: 3 / acc: 0 / roll: 5 / value: 
864
│ accumulateDiceRolls / power: 2 / acc: 864 / roll: 4 / value: 
108
│ accumulateDiceRolls / power: 1 / acc: 972 / roll: 4 / value: 
18
│ accumulateDiceRolls / power: 0 / acc: 990 / roll: 5 / value: 
4
│ accumulateDiceRolls / power: -1 / acc: 994
│ 995
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let sequentialRoll = createSequentialRoller [[ 5; 4; 4; 5; 2 ]]

fun () -> rollProgressively (Some (printfn "%s")) sequentialRoll false 2000 |> 
ignore
|> _throwsC (fun ex _ ->
    SpiralSm.format_exception ex
    |> _assertEqual "System.Exception: createSequentialRoller / End of list"
)

── [ 45.39ms - stdout ] ────────────────────────────────────────────────────────
│ <fun:it@5-13>
│ 
│ calculateDiceCount / max: 2000 / n: 5 / p: 7776
│ accumulateDiceRolls / power: 4 / acc: 0 / roll: 2 / value: 
1296
│ accumulateDiceRolls / power: 3 / acc: 1296 / roll: 5 / value:
864
│ accumulateDiceRolls / power: 2 / acc: 2160 / roll: 4 / value:
108
│ accumulateDiceRolls / power: 1 / acc: 2268 / roll: 4 / value:
18
│ accumulateDiceRolls / power: 0 / acc: 2286 / roll: 5 / value:
4
│ accumulateDiceRolls / power: -1 / acc: 2290
│ "System.Exception: createSequentialRoller / End of list"
│ 
│ 

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

rollProgressively (Some (printfn "%s")) rollDice false 2000

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

rollProgressively (Some (printfn "%s")) rollDice true 2000

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

[[| 1 .. 10000 |]]
|> Array.Parallel.map (fun _ -> rollProgressively None rollDice false 10)
|> Array.Parallel.groupBy id
|> Array.Parallel.map (fun (k, v) -> k, v.Length)
|> Array.Parallel.sortBy fst

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

[[| 1 .. 10000 |]]
|> Array.Parallel.map (fun _ -> rollProgressively None rollDice true 10)
|> Array.Parallel.groupBy id
|> Array.Parallel.map (fun (k, v) -> k, v.Length)
|> Array.Parallel.sortBy fst

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

[[| 1 .. 100 |]]
|> Array.Parallel.iter (fun n ->
    [[| 0 .. 1 |]]
    |> Array.Parallel.iter (fun reroll ->
        [[| 1 .. 3500 |]]
        |> Array.Parallel.map (fun _ -> rollProgressively None rollDice (reroll 
= 1) n)
        |> Array.Parallel.groupBy id
        |> Array.length
        |> __assertEqual false n
    )
)

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

let inline rollMax fn max n =
    [[| 1 .. n |]]
    |> Array.Parallel.map (fun _ -> fn max)
    |> Array.Parallel.groupBy id
    |> Array.Parallel.map (fun (_, v) -> v.Length)

let rec rollN max n even current =
    let roll = rollMax (rollProgressively None rollDice true) max n
    if roll |> Array.Parallel.forall ((=) even)
    then current
    else rollN max n even (current + 1)

let run () =
    let max = 10
    let n = 30
    let even = (n / max) |> int

    rollN max n even 0

// run ()

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

let run () =
    let max = 10
    let n = 30
    let even = (n / max) |> int
    [[| 1 .. 100 |]]
    |> Array.Parallel.map (fun i ->
        let roll = rollN max n even 0
        printfn $"i: {i} / roll: {roll}"
        float roll
    )
    |> Array.Parallel.average

// run ()

── markdown ────────────────────────────────────────────────────────────────────
│ ## FsCheck (test)

── fsharp ──────────────────────────────────────────────────────────────────────
#r 
@"../../../../../../../.nuget/packages/fscheck/3.0.1/lib/netstandard2.0/FsCheck.
dll"
#r 
@"../../../../../../../.nuget/packages/expecto.fscheck/11.0.0-alpha8/lib/net6.0/
Expecto.FsCheck3.dll"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

type ValorDado =
    | Um
    | Dois
    | Tres
    | Quatro
    | Cinco
    | Seis

type Aspecto =
    | Passado of string
    | Presente of string
    | Futuro of string
    | Desafios of string
    | Recursos of string
    | ResultadoProjetado of string
    | InfluenciaExterna of string

type Contexto =
    | Amor of string
    | Trabalho of string
    | Saude of string
    | Dinheiro of string

type Universo =
    | Real of string
    | Virtual of string
    | Espiritual of string

type Caracteristica =
    | Aspecto of Aspecto
    | Contexto of Contexto
    | Universo of Universo
    | DadoRolado of ValorDado

type Interacao =
    | Conflito
    | Parceria
    | Crescimento
    | Estagnacao
    | Separacao
    | Harmonia
    | Desafio
    | Colaboracao
    | Progresso
    | Mudanca
    | Sucesso

type Interpretacao =
    | Interpretacao of Caracteristica * Interacao * Caracteristica

type SistemaDivinacao =
    | SistemaDivinacao of Interpretacao list * Caracteristica

let config = { Expecto.FsCheckConfig.defaultConfig with maxTest = 10000 }

let shuffleList xs seed =
    let rnd = Random (seed)
    xs
    |> List.map (fun x -> rnd.Next(), x)
    |> List.sortBy fst
    |> List.map snd




type Complexity = Simple | Moderate | Complex
type Duration = Short | Medium | Long

type Dice = D1 of int | D2 of int

type Task =
    | Task of Complexity * Duration * Task
    | NoTask

let durationOfFocus (d1: int) (d2: int) =
    match d1 + d2 with
    | sum when sum <= 4 -> Short
    | sum when sum <= 8 -> Medium
    | _ -> Long

let complexityOfTask (d1: int) (d2: int) =
    match d1 * d2 with
    | product when product <= 12 -> Simple
    | product when product <= 24 -> Moderate
    | _ -> Complex

let rec generateTaskList d1 d2 previousTask =
    match d1, d2 with
    | d1, d2 when d1 > 0 && d2 > 0 ->
        let complexity = complexityOfTask d1 d2
        let duration = durationOfFocus d1 d2
        let newTask = Task (complexity, duration, previousTask)
        generateTaskList (d1 - 1) (d2 - 1) newTask
    | _, _ -> previousTask





let properties =
    Expecto.Tests.testList "FsCheck samples" [[
        let sistemaDivinacao (interpretacoes: Interpretacao list, 
caracteristica: Caracteristica) =
            let interpretacoes = interpretacoes |> List.sort
            SistemaDivinacao (interpretacoes, caracteristica)

        Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
is consistent" <|
            fun (interpretacoes: Interpretacao list, caracteristica: 
Caracteristica) ->
                sistemaDivinacao (interpretacoes, caracteristica)
                    = sistemaDivinacao (interpretacoes, caracteristica)

        Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
is variant under permutation" <|
            fun (input: Interpretacao list, caracteristica: Caracteristica) ->
                let seed = 42
                let shuffledInput = shuffleList input seed
                sistemaDivinacao (input, caracteristica) = sistemaDivinacao 
(shuffledInput, caracteristica)

        Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
can handle lists of any size" <|
            fun (input: Interpretacao list, caracteristica: Caracteristica) ->
                let sistema = sistemaDivinacao (input, caracteristica)
                sistema <> Unchecked.defaultof<_>

        Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
is invariant under data transformations" <|
            fun (input: Interpretacao list, caracteristica: Caracteristica, 
newInterpretation: Interpretacao) ->
                let containsNewInterpretation = input |> List.contains 
newInterpretation
                let modifiedInput =
                    if containsNewInterpretation
                    then input
                    else newInterpretation :: input
                if containsNewInterpretation
                then sistemaDivinacao (List.sort input, caracteristica)
                        = sistemaDivinacao (List.sort modifiedInput, 
caracteristica)
                else sistemaDivinacao (List.sort input, caracteristica)
                        <> sistemaDivinacao (List.sort modifiedInput, 
caracteristica)






        let focusDurationProperty =
            FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
(FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
                let expected =
                    match d1 + d2 with
                    | sum when sum <= 4 -> Short
                    | sum when sum <= 8 -> Medium
                    | _ -> Long
                let actual = durationOfFocus d1 d2
                expected = actual

        let taskComplexityProperty =
            FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
(FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
                let expected =
                    match d1 * d2 with
                    | product when product <= 12 -> Simple
                    | product when product <= 24 -> Moderate
                    | _ -> Complex
                let actual = complexityOfTask d1 d2
                expected = actual

        let taskListLengthProperty =
            FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
(FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
                let taskList = generateTaskList d1 d2 NoTask
                let rec taskListLength taskList =
                    match taskList with
                    | Task (_, _, nextTask) -> 1 + taskListLength nextTask
                    | NoTask -> 0
                let actual = taskListLength taskList
                let expected = min d1 d2
                expected = actual


        Expecto.ExpectoFsCheck.testProperty "Duration of focus should be 
calculated correctly" focusDurationProperty
        Expecto.ExpectoFsCheck.testProperty "Task complexity should be 
calculated correctly" taskComplexityProperty
        Expecto.ExpectoFsCheck.testProperty "Task list should have the correct 
length" taskListLengthProperty



    ]]

let dice1 = 6
let dice2 = 6

let taskList = generateTaskList dice1 dice2 NoTask

let rec printTaskList taskList =
    match taskList with
    | Task (complexity, duration, nextTask) ->
        printfn "Complexidade: %A, Duração: %A" complexity duration
        printTaskList nextTask
    | NoTask -> ()

printTaskList taskList

Expecto.Tests.runTestsWithCLIArgs [[]] [[||]] properties
|> _assertEqual 0

── [ 623.54ms - stderr ] ───────────────────────────────────────────────────────
│ Complexidade: Simple, Duração: Short
│ Complexidade: Simple, Duração: Short
│ Complexidade: Simple, Duração: Medium
│ Complexidade: Moderate, Duração: Medium
│ Complexidade: Complex, Duração: Long
│ Complexidade: Complex, Duração: Long
│ 
NotebookRunner.RunNotebookAsync / exiting... 3

── markdown ────────────────────────────────────────────────────────────────────
│ ## main

── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
    let result = rollProgressively (Some (printfn "%s")) rollDice true 
(System.Int32.MaxValue / 10)
    trace Debug (fun () -> $"main / result: {result}") _locals
    0
NotebookRunner.RunNotebookAsync / exiting... 2
NotebookRunner.RunNotebookAsync / exiting... 1
NotebookRunner.RunNotebookAsync / event: CommandFailed: 
System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Cecil, 
Version=0.11.4.0, Culture=neutral, PublicKeyToken=50cebf1cceb9d05e'. The system 
cannot find the file specified.
File name: 'Mono.Cecil, Version=0.11.4.0, Culture=neutral, 
PublicKeyToken=50cebf1cceb9d05e'
   at <StartupCode$Expecto>.$Expecto.Impl..cctor()
   at Expecto.Impl.get_defaultPrinter@257.Invoke(Test _tests) in 
C:\workspaces\dotnet\expecto\Expecto\Expecto.Impl.fs:line 258
   at Expecto.Impl.runEvalWithCancel@743.Invoke(Unit unitVar) in 
C:\workspaces\dotnet\expecto\Expecto\Expecto.Impl.fs:line 743
   at 
Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati
on`1 ctxt, TResult result1, FSharpFunc`2 part2) in 
D:\a\_work\1\s\src\FSharp.Core\async.fs:line 510
   at Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in 
D:\a\_work\1\s\src\FSharp.Core\async.fs:line 112
--- End of stack trace from previous location ---
   at Microsoft.FSharp.Control.AsyncResult`1.Commit() in 
D:\a\_work\1\s\src\FSharp.Core\async.fs:line 454
   at 
Microsoft.FSharp.Control.AsyncPrimitives.QueueAsyncAndWaitForResultSynchronously
[a](CancellationToken token, FSharpAsync`1 computation, FSharpOption`1 timeout) 
in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1139
   at 
Microsoft.FSharp.Control.AsyncPrimitives.RunSynchronously[T](CancellationToken 
cancellationToken, FSharpAsync`1 computation, FSharpOption`1 timeout) in 
D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1166
   at Microsoft.FSharp.Control.FSharpAsync.RunSynchronously[T](FSharpAsync`1 
computation, FSharpOption`1 timeout, FSharpOption`1 cancellationToken) in 
D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1515
   at Expecto.Tests.runTestsWithCancel@617(CancellationToken ct, ExpectoConfig 
config, Test tests) in C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 635
   at Expecto.Tests.runTestsWithCLIArgsAndCancel(CancellationToken ct, 
IEnumerable`1 cliArgs, String[] args, Test tests) in 
C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 660
   at Expecto.Tests.runTestsWithCLIArgs(IEnumerable`1 cliArgs, String[] args, 
Test tests) in C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 668
   at <StartupCode$FSI_0052>.$FSI_0052.main@()
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, 
Signature sig, Boolean isConstructor)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, 
BindingFlags invokeAttr)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

# Invoke-Block / $retry: 1/3 / $Location: ../../deps/polyglot/lib/fsharp / Get-Location: C:\home\git\dice\deps\polyglot\lib\fsharp / $OnError: Stop / $exitcode: -1073740791 / $Error: '' / $ScriptBlock:
'. ../../deps/spiral/workspace/target/release/spiral$(_exe) dib --path "$ScriptDir/$projectName.dib"'

00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "C:\home\git\dice\lib\fsharp/dice_fsharp.dib"])) }
00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/dice/lib/fsharp/dice_fsharp.dib", "--output-path", "c:/home/git/dice/lib/fsharp/dice_fsharp.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/dice/lib/fsharp/dice_fsharp.dib" --output-path "c:/home/git/dice/lib/fsharp/dice_fsharp.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ # DiceFSharp (Dice)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #if !INTERACTIVE
> open Polyglot
> open Lib
> #endif
> 
> open Common
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## sixthPowerSequence
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let sixthPowerSequence () =
>     1 |> Seq.unfold (fun state -> Some (state, state * 6)) |> Seq.cache
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> sixthPowerSequence ()
> |> Seq.take 8
> |> Seq.toList
> |> _assertEqual [[ 1; 6; 36; 216; 1296; 7776; 46656; 279936 ]]
> 
> ── [ 63.41ms - stdout ] ────────────────────────────────────────────────────────
> │ [1; 6; 36; 216; 1296; 7776; 46656; 279936]
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## accumulateDiceRolls
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec accumulateDiceRolls log rolls power acc =
>     match rolls with
>     | _ when power < 0 ->
>         log |> Option.iter ((|>) $"accumulateDiceRolls / power: {power} / acc: 
> {acc}")
>         Some (acc + 1, rolls)
>     | [[]] -> None
>     | roll :: rest when roll > 1 ->
>         let coeff = sixthPowerSequence () |> Seq.item power
>         let value = (roll - 1) * coeff
>         log |> Option.iter ((|>) $"accumulateDiceRolls / \
>             power: {power} / acc: {acc} / roll: {roll} / value: {value}"
>         )
>         accumulateDiceRolls log rest (power - 1) (acc + value)
>     | roll :: rest ->
>         log |> Option.iter ((|>) $"accumulateDiceRolls / power: {power} / acc: 
> {acc} / roll: {roll}")
>         accumulateDiceRolls log rest (power - 1) acc
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 0 1000
> |> _assertEqual (Some (1006, [[ 5; 4; 3; 2 ]]))
> 
> ── [ 30.62ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 0 / acc: 1000 / roll: 6 / value:
> 5
> │ accumulateDiceRolls / power: -1 / acc: 1005
> │ Some (1006, [5; 4; 3; 2])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 1 1000
> |> _assertEqual (Some (1035, [[ 4; 3; 2 ]]))
> 
> ── [ 25.52ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 1 / acc: 1000 / roll: 6 / value:
> 30
> │ accumulateDiceRolls / power: 0 / acc: 1030 / roll: 5 / value:
> 4
> │ accumulateDiceRolls / power: -1 / acc: 1034
> │ Some (1035, [4; 3; 2])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 2 1000
> |> _assertEqual (Some (1208, [[ 3; 2 ]]))
> 
> ── [ 23.00ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 2 / acc: 1000 / roll: 6 / value:
> 180
> │ accumulateDiceRolls / power: 1 / acc: 1180 / roll: 5 / value:
> 24
> │ accumulateDiceRolls / power: 0 / acc: 1204 / roll: 4 / value:
> 3
> │ accumulateDiceRolls / power: -1 / acc: 1207
> │ Some (1208, [3; 2])
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rollWithinBounds
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rollWithinBounds log max rolls =
>     let power = List.length rolls - 1
>     match accumulateDiceRolls log rolls power 0 with
>     | Some (result, _) when result >= 1 && result <= max -> Some result
>     | _ -> None
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> rollWithinBounds (Some (printfn "%s")) 2000 [[ 1; 5; 4; 4; 5 ]]
> |> _assertEqual (Some 995)
> 
> ── [ 20.20ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 4 / acc: 0 / roll: 1
> │ accumulateDiceRolls / power: 3 / acc: 0 / roll: 5 / value: 
> 864
> │ accumulateDiceRolls / power: 2 / acc: 864 / roll: 4 / value: 
> 108
> │ accumulateDiceRolls / power: 1 / acc: 972 / roll: 4 / value: 
> 18
> │ accumulateDiceRolls / power: 0 / acc: 990 / roll: 5 / value: 
> 4
> │ accumulateDiceRolls / power: -1 / acc: 994
> │ Some 995
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> rollWithinBounds (Some (printfn "%s")) 2000 [[ 2; 2; 6; 4; 5 ]]
> |> _assertEqual (Some 1715)
> 
> ── [ 19.28ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 4 / acc: 0 / roll: 2 / value: 
> 1296
> │ accumulateDiceRolls / power: 3 / acc: 1296 / roll: 2 / value:
> 216
> │ accumulateDiceRolls / power: 2 / acc: 1512 / roll: 6 / value:
> 180
> │ accumulateDiceRolls / power: 1 / acc: 1692 / roll: 4 / value:
> 18
> │ accumulateDiceRolls / power: 0 / acc: 1710 / roll: 5 / value:
> 4
> │ accumulateDiceRolls / power: -1 / acc: 1714
> │ Some 1715
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> rollWithinBounds (Some (printfn "%s")) 2000 [[ 4; 1; 1; 2; 3 ]]
> |> _assertEqual None
> 
> ── [ 18.31ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 4 / acc: 0 / roll: 4 / value: 
> 3888
> │ accumulateDiceRolls / power: 3 / acc: 3888 / roll: 1
> │ accumulateDiceRolls / power: 2 / acc: 3888 / roll: 1
> │ accumulateDiceRolls / power: 1 / acc: 3888 / roll: 2 / value:
> 6
> │ accumulateDiceRolls / power: 0 / acc: 3894 / roll: 3 / value:
> 2
> │ accumulateDiceRolls / power: -1 / acc: 3896
> │ <null>
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## calculateDiceCount
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline calculateDiceCount log max =
>     let rec loop n p =
>         if p < max
>         then loop (n + 1) (p * 6)
>         else
>             log |> Option.iter ((|>) $"calculateDiceCount / max: {max} / n: {n} 
> / p: {p}")
>             n
>     if max = 1
>     then 1
>     else loop 0 1
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> calculateDiceCount (Some (printfn "%s")) 36
> |> _assertEqual 2
> 
> ── [ 21.95ms - stdout ] ────────────────────────────────────────────────────────
> │ calculateDiceCount / max: 36 / n: 2 / p: 36
> │ 2
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> calculateDiceCount (Some (printfn "%s")) 7777
> |> _assertEqual 6
> 
> ── [ 23.23ms - stdout ] ────────────────────────────────────────────────────────
> │ calculateDiceCount / max: 7777 / n: 6 / p: 46656
> │ 6
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rollDice
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #if FABLE_COMPILER_RUST
> let rollDice () : int =
> #if !WASM && !CONTRACT
>     Fable.Core.RustInterop.emitRustExpr () "rand::Rng::gen_range(&mut 
> rand::thread_rng(), 1..7)"
> #else
>     1
> #endif
> #else
> let private random = System.Random ()
> let rollDice () =
>     random.Next (1, 7)
> #endif
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rotateNumber
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rotateNumber max n =
>     (n - 1 + max) % max + 1
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rotateNumbers
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rotateNumbers max items =
>     items |> Seq.map (rotateNumber max)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> [[ -1 .. 14 ]]
> |> rotateNumbers 6
> |> Seq.toList
> |> _assertEqual [[ 5; 6; 1; 2; 3; 4; 5; 6; 1; 2; 3; 4; 5; 6; 1; 2 ]]
> 
> ── [ 35.50ms - stdout ] ────────────────────────────────────────────────────────
> │ [5; 6; 1; 2; 3; 4; 5; 6; 1; 2; 3; 4; 5; 6; 1; 2]
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## createSequentialRoller
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let createSequentialRoller list =
>     let mutable currentIndex = 0
>     fun () ->
>         match list |> List.tryItem currentIndex with
>         | Some item ->
>             currentIndex <- currentIndex + 1
>             item
>         | None ->
>             failwith "createSequentialRoller / End of list"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rollProgressively
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rollProgressively log roll reroll max =
>     let power = (calculateDiceCount log max) - 1
>     let rec loop rolls size =
>         if size < power + 1
>         then loop (roll () :: rolls) (size + 1)
>         else
>             match accumulateDiceRolls log rolls power 0 with
>             | Some (result, _) when result <= max -> result
>             | _ when reroll -> loop (List.init power (fun _ -> roll ())) power
>             | _ -> loop (roll () :: rolls) (size + 1)
>     loop [[]] 0
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> rollProgressively None rollDice false 1
> |> _assertEqual 1
> 
> ── [ 16.18ms - stdout ] ────────────────────────────────────────────────────────
> │ 1
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let sequentialRoll = createSequentialRoller [[ 5; 4; 4; 5; 1 ]]
> 
> rollProgressively (Some (printfn "%s")) sequentialRoll false 2000
> |> _assertEqual 995
> 
> ── [ 19.22ms - stdout ] ────────────────────────────────────────────────────────
> │ calculateDiceCount / max: 2000 / n: 5 / p: 7776
> │ accumulateDiceRolls / power: 4 / acc: 0 / roll: 1
> │ accumulateDiceRolls / power: 3 / acc: 0 / roll: 5 / value: 
> 864
> │ accumulateDiceRolls / power: 2 / acc: 864 / roll: 4 / value: 
> 108
> │ accumulateDiceRolls / power: 1 / acc: 972 / roll: 4 / value: 
> 18
> │ accumulateDiceRolls / power: 0 / acc: 990 / roll: 5 / value: 
> 4
> │ accumulateDiceRolls / power: -1 / acc: 994
> │ 995
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let sequentialRoll = createSequentialRoller [[ 5; 4; 4; 5; 2 ]]
> 
> fun () -> rollProgressively (Some (printfn "%s")) sequentialRoll false 2000 |> 
> ignore
> |> _throwsC (fun ex _ ->
>     SpiralSm.format_exception ex
>     |> _assertEqual "System.Exception: createSequentialRoller / End of list"
> )
> 
> ── [ 46.23ms - stdout ] ────────────────────────────────────────────────────────
> │ <fun:it@5-13>
> │ 
> │ calculateDiceCount / max: 2000 / n: 5 / p: 7776
> │ accumulateDiceRolls / power: 4 / acc: 0 / roll: 2 / value: 
> 1296
> │ accumulateDiceRolls / power: 3 / acc: 1296 / roll: 5 / value:
> 864
> │ accumulateDiceRolls / power: 2 / acc: 2160 / roll: 4 / value:
> 108
> │ accumulateDiceRolls / power: 1 / acc: 2268 / roll: 4 / value:
> 18
> │ accumulateDiceRolls / power: 0 / acc: 2286 / roll: 5 / value:
> 4
> │ accumulateDiceRolls / power: -1 / acc: 2290
> │ "System.Exception: createSequentialRoller / End of list"
> │ 
> │ 
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> rollProgressively (Some (printfn "%s")) rollDice false 2000
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> rollProgressively (Some (printfn "%s")) rollDice true 2000
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> [[| 1 .. 10000 |]]
> |> Array.Parallel.map (fun _ -> rollProgressively None rollDice false 10)
> |> Array.Parallel.groupBy id
> |> Array.Parallel.map (fun (k, v) -> k, v.Length)
> |> Array.Parallel.sortBy fst
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> [[| 1 .. 10000 |]]
> |> Array.Parallel.map (fun _ -> rollProgressively None rollDice true 10)
> |> Array.Parallel.groupBy id
> |> Array.Parallel.map (fun (k, v) -> k, v.Length)
> |> Array.Parallel.sortBy fst
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> [[| 1 .. 100 |]]
> |> Array.Parallel.iter (fun n ->
>     [[| 0 .. 1 |]]
>     |> Array.Parallel.iter (fun reroll ->
>         [[| 1 .. 3500 |]]
>         |> Array.Parallel.map (fun _ -> rollProgressively None rollDice (reroll 
> = 1) n)
>         |> Array.Parallel.groupBy id
>         |> Array.length
>         |> __assertEqual false n
>     )
> )
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> let inline rollMax fn max n =
>     [[| 1 .. n |]]
>     |> Array.Parallel.map (fun _ -> fn max)
>     |> Array.Parallel.groupBy id
>     |> Array.Parallel.map (fun (_, v) -> v.Length)
> 
> let rec rollN max n even current =
>     let roll = rollMax (rollProgressively None rollDice true) max n
>     if roll |> Array.Parallel.forall ((=) even)
>     then current
>     else rollN max n even (current + 1)
> 
> let run () =
>     let max = 10
>     let n = 30
>     let even = (n / max) |> int
> 
>     rollN max n even 0
> 
> // run ()
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> let run () =
>     let max = 10
>     let n = 30
>     let even = (n / max) |> int
>     [[| 1 .. 100 |]]
>     |> Array.Parallel.map (fun i ->
>         let roll = rollN max n even 0
>         printfn $"i: {i} / roll: {roll}"
>         float roll
>     )
>     |> Array.Parallel.average
> 
> // run ()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## FsCheck (test)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #r 
> @"../../../../../../../.nuget/packages/fscheck/3.0.1/lib/netstandard2.0/FsCheck.
> dll"
> #r 
> @"../../../../../../../.nuget/packages/expecto.fscheck/11.0.0-alpha8/lib/net6.0/
> Expecto.FsCheck3.dll"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> type ValorDado =
>     | Um
>     | Dois
>     | Tres
>     | Quatro
>     | Cinco
>     | Seis
> 
> type Aspecto =
>     | Passado of string
>     | Presente of string
>     | Futuro of string
>     | Desafios of string
>     | Recursos of string
>     | ResultadoProjetado of string
>     | InfluenciaExterna of string
> 
> type Contexto =
>     | Amor of string
>     | Trabalho of string
>     | Saude of string
>     | Dinheiro of string
> 
> type Universo =
>     | Real of string
>     | Virtual of string
>     | Espiritual of string
> 
> type Caracteristica =
>     | Aspecto of Aspecto
>     | Contexto of Contexto
>     | Universo of Universo
>     | DadoRolado of ValorDado
> 
> type Interacao =
>     | Conflito
>     | Parceria
>     | Crescimento
>     | Estagnacao
>     | Separacao
>     | Harmonia
>     | Desafio
>     | Colaboracao
>     | Progresso
>     | Mudanca
>     | Sucesso
> 
> type Interpretacao =
>     | Interpretacao of Caracteristica * Interacao * Caracteristica
> 
> type SistemaDivinacao =
>     | SistemaDivinacao of Interpretacao list * Caracteristica
> 
> let config = { Expecto.FsCheckConfig.defaultConfig with maxTest = 10000 }
> 
> let shuffleList xs seed =
>     let rnd = Random (seed)
>     xs
>     |> List.map (fun x -> rnd.Next(), x)
>     |> List.sortBy fst
>     |> List.map snd
> 
> 
> 
> 
> type Complexity = Simple | Moderate | Complex
> type Duration = Short | Medium | Long
> 
> type Dice = D1 of int | D2 of int
> 
> type Task =
>     | Task of Complexity * Duration * Task
>     | NoTask
> 
> let durationOfFocus (d1: int) (d2: int) =
>     match d1 + d2 with
>     | sum when sum <= 4 -> Short
>     | sum when sum <= 8 -> Medium
>     | _ -> Long
> 
> let complexityOfTask (d1: int) (d2: int) =
>     match d1 * d2 with
>     | product when product <= 12 -> Simple
>     | product when product <= 24 -> Moderate
>     | _ -> Complex
> 
> let rec generateTaskList d1 d2 previousTask =
>     match d1, d2 with
>     | d1, d2 when d1 > 0 && d2 > 0 ->
>         let complexity = complexityOfTask d1 d2
>         let duration = durationOfFocus d1 d2
>         let newTask = Task (complexity, duration, previousTask)
>         generateTaskList (d1 - 1) (d2 - 1) newTask
>     | _, _ -> previousTask
> 
> 
> 
> 
> 
> let properties =
>     Expecto.Tests.testList "FsCheck samples" [[
>         let sistemaDivinacao (interpretacoes: Interpretacao list, 
> caracteristica: Caracteristica) =
>             let interpretacoes = interpretacoes |> List.sort
>             SistemaDivinacao (interpretacoes, caracteristica)
> 
>         Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
> is consistent" <|
>             fun (interpretacoes: Interpretacao list, caracteristica: 
> Caracteristica) ->
>                 sistemaDivinacao (interpretacoes, caracteristica)
>                     = sistemaDivinacao (interpretacoes, caracteristica)
> 
>         Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
> is variant under permutation" <|
>             fun (input: Interpretacao list, caracteristica: Caracteristica) ->
>                 let seed = 42
>                 let shuffledInput = shuffleList input seed
>                 sistemaDivinacao (input, caracteristica) = sistemaDivinacao 
> (shuffledInput, caracteristica)
> 
>         Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
> can handle lists of any size" <|
>             fun (input: Interpretacao list, caracteristica: Caracteristica) ->
>                 let sistema = sistemaDivinacao (input, caracteristica)
>                 sistema <> Unchecked.defaultof<_>
> 
>         Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
> is invariant under data transformations" <|
>             fun (input: Interpretacao list, caracteristica: Caracteristica, 
> newInterpretation: Interpretacao) ->
>                 let containsNewInterpretation = input |> List.contains 
> newInterpretation
>                 let modifiedInput =
>                     if containsNewInterpretation
>                     then input
>                     else newInterpretation :: input
>                 if containsNewInterpretation
>                 then sistemaDivinacao (List.sort input, caracteristica)
>                         = sistemaDivinacao (List.sort modifiedInput, 
> caracteristica)
>                 else sistemaDivinacao (List.sort input, caracteristica)
>                         <> sistemaDivinacao (List.sort modifiedInput, 
> caracteristica)
> 
> 
> 
> 
> 
> 
>         let focusDurationProperty =
>             FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
> (FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
> 6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
>                 let expected =
>                     match d1 + d2 with
>                     | sum when sum <= 4 -> Short
>                     | sum when sum <= 8 -> Medium
>                     | _ -> Long
>                 let actual = durationOfFocus d1 d2
>                 expected = actual
> 
>         let taskComplexityProperty =
>             FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
> (FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
> 6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
>                 let expected =
>                     match d1 * d2 with
>                     | product when product <= 12 -> Simple
>                     | product when product <= 24 -> Moderate
>                     | _ -> Complex
>                 let actual = complexityOfTask d1 d2
>                 expected = actual
> 
>         let taskListLengthProperty =
>             FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
> (FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
> 6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
>                 let taskList = generateTaskList d1 d2 NoTask
>                 let rec taskListLength taskList =
>                     match taskList with
>                     | Task (_, _, nextTask) -> 1 + taskListLength nextTask
>                     | NoTask -> 0
>                 let actual = taskListLength taskList
>                 let expected = min d1 d2
>                 expected = actual
> 
> 
>         Expecto.ExpectoFsCheck.testProperty "Duration of focus should be 
> calculated correctly" focusDurationProperty
>         Expecto.ExpectoFsCheck.testProperty "Task complexity should be 
> calculated correctly" taskComplexityProperty
>         Expecto.ExpectoFsCheck.testProperty "Task list should have the correct 
> length" taskListLengthProperty
> 
> 
> 
>     ]]
> 
> let dice1 = 6
> let dice2 = 6
> 
> let taskList = generateTaskList dice1 dice2 NoTask
> 
> let rec printTaskList taskList =
>     match taskList with
>     | Task (complexity, duration, nextTask) ->
>         printfn "Complexidade: %A, Duração: %A" complexity duration
>         printTaskList nextTask
>     | NoTask -> ()
> 
> printTaskList taskList
> 
> Expecto.Tests.runTestsWithCLIArgs [[]] [[||]] properties
> |> _assertEqual 0
> 
> ── [ 656.31ms - stderr ] ───────────────────────────────────────────────────────
> │ Complexidade: Simple, Duração: Short
> │ Complexidade: Simple, Duração: Short
> │ Complexidade: Simple, Duração: Medium
> │ Complexidade: Moderate, Duração: Medium
> │ Complexidade: Complex, Duração: Long
> │ Complexidade: Complex, Duração: Long
> │ 
> NotebookRunner.RunNotebookAsync / exiting... 3
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## main
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let main args =
>     let result = rollProgressively (Some (printfn "%s")) rollDice true 
> (System.Int32.MaxValue / 10)
>     trace Debug (fun () -> $"main / result: {result}") _locals
>     0
> NotebookRunner.RunNotebookAsync / exiting... 2
> NotebookRunner.RunNotebookAsync / exiting... 1
> NotebookRunner.RunNotebookAsync / event: CommandFailed: 
> System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Cecil, 
> Version=0.11.4.0, Culture=neutral, PublicKeyToken=50cebf1cceb9d05e'. The system 
> cannot find the file specified.
> File name: 'Mono.Cecil, Version=0.11.4.0, Culture=neutral, 
> PublicKeyToken=50cebf1cceb9d05e'
>    at <StartupCode$Expecto>.$Expecto.Impl..cctor()
>    at Expecto.Impl.get_defaultPrinter@257.Invoke(Test _tests) in 
> C:\workspaces\dotnet\expecto\Expecto\Expecto.Impl.fs:line 258
>    at Expecto.Impl.runEvalWithCancel@743.Invoke(Unit unitVar) in 
> C:\workspaces\dotnet\expecto\Expecto\Expecto.Impl.fs:line 743
>    at 
> Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati
> on`1 ctxt, TResult result1, FSharpFunc`2 part2) in 
> D:\a\_work\1\s\src\FSharp.Core\async.fs:line 510
>    at Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in 
> D:\a\_work\1\s\src\FSharp.Core\async.fs:line 112
> --- End of stack trace from previous location ---
>    at Microsoft.FSharp.Control.AsyncResult`1.Commit() in 
> D:\a\_work\1\s\src\FSharp.Core\async.fs:line 454
>    at 
> Microsoft.FSharp.Control.AsyncPrimitives.QueueAsyncAndWaitForResultSynchronously
> [a](CancellationToken token, FSharpAsync`1 computation, FSharpOption`1 timeout) 
> in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1139
>    at 
> Microsoft.FSharp.Control.AsyncPrimitives.RunSynchronously[T](CancellationToken 
> cancellationToken, FSharpAsync`1 computation, FSharpOption`1 timeout) in 
> D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1166
>    at Microsoft.FSharp.Control.FSharpAsync.RunSynchronously[T](FSharpAsync`1 
> computation, FSharpOption`1 timeout, FSharpOption`1 cancellationToken) in 
> D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1515
>    at Expecto.Tests.runTestsWithCancel@617(CancellationToken ct, ExpectoConfig 
> config, Test tests) in C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 635
>    at Expecto.Tests.runTestsWithCLIArgsAndCancel(CancellationToken ct, 
> IEnumerable`1 cliArgs, String[] args, Test tests) in 
> C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 660
>    at Expecto.Tests.runTestsWithCLIArgs(IEnumerable`1 cliArgs, String[] args, 
> Test tests) in C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 668
>    at <StartupCode$FSI_0052>.$FSI_0052.main@()
>    at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, 
> Signature sig, Boolean isConstructor)
>    at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, 
> BindingFlags invokeAttr)
00:00:22 v #3 runtime.execute_with_options / result / { exit_code = -1; std_trace_length = 26177 }
00:00:22 d #4 spiral.run / dib / { exit_code = -1; result_length = 26177 }

thread 'main' panicked at C:\home\git\spiral\apps\spiral\spiral.rs:16903:45:
spiral.run / dib / exit_code: -1 / result: 
── markdown ────────────────────────────────────────────────────────────────────
│ # DiceFSharp (Dice)

── fsharp ──────────────────────────────────────────────────────────────────────
#if !INTERACTIVE
open Polyglot
open Lib
#endif

open Common

── markdown ────────────────────────────────────────────────────────────────────
│ ## sixthPowerSequence

── fsharp ──────────────────────────────────────────────────────────────────────
let sixthPowerSequence () =
    1 |> Seq.unfold (fun state -> Some (state, state * 6)) |> Seq.cache

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

sixthPowerSequence ()
|> Seq.take 8
|> Seq.toList
|> _assertEqual [[ 1; 6; 36; 216; 1296; 7776; 46656; 279936 ]]

── [ 63.41ms - stdout ] ────────────────────────────────────────────────────────
│ [1; 6; 36; 216; 1296; 7776; 46656; 279936]
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## accumulateDiceRolls

── fsharp ──────────────────────────────────────────────────────────────────────
let rec accumulateDiceRolls log rolls power acc =
    match rolls with
    | _ when power < 0 ->
        log |> Option.iter ((|>) $"accumulateDiceRolls / power: {power} / acc: 
{acc}")
        Some (acc + 1, rolls)
    | [[]] -> None
    | roll :: rest when roll > 1 ->
        let coeff = sixthPowerSequence () |> Seq.item power
        let value = (roll - 1) * coeff
        log |> Option.iter ((|>) $"accumulateDiceRolls / \
            power: {power} / acc: {acc} / roll: {roll} / value: {value}"
        )
        accumulateDiceRolls log rest (power - 1) (acc + value)
    | roll :: rest ->
        log |> Option.iter ((|>) $"accumulateDiceRolls / power: {power} / acc: 
{acc} / roll: {roll}")
        accumulateDiceRolls log rest (power - 1) acc

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 0 1000
|> _assertEqual (Some (1006, [[ 5; 4; 3; 2 ]]))

── [ 30.62ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 0 / acc: 1000 / roll: 6 / value:
5
│ accumulateDiceRolls / power: -1 / acc: 1005
│ Some (1006, [5; 4; 3; 2])
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 1 1000
|> _assertEqual (Some (1035, [[ 4; 3; 2 ]]))

── [ 25.52ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 1 / acc: 1000 / roll: 6 / value:
30
│ accumulateDiceRolls / power: 0 / acc: 1030 / roll: 5 / value:
4
│ accumulateDiceRolls / power: -1 / acc: 1034
│ Some (1035, [4; 3; 2])
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 2 1000
|> _assertEqual (Some (1208, [[ 3; 2 ]]))

── [ 23.00ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 2 / acc: 1000 / roll: 6 / value:
180
│ accumulateDiceRolls / power: 1 / acc: 1180 / roll: 5 / value:
24
│ accumulateDiceRolls / power: 0 / acc: 1204 / roll: 4 / value:
3
│ accumulateDiceRolls / power: -1 / acc: 1207
│ Some (1208, [3; 2])
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## rollWithinBounds

── fsharp ──────────────────────────────────────────────────────────────────────
let rollWithinBounds log max rolls =
    let power = List.length rolls - 1
    match accumulateDiceRolls log rolls power 0 with
    | Some (result, _) when result >= 1 && result <= max -> Some result
    | _ -> None

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

rollWithinBounds (Some (printfn "%s")) 2000 [[ 1; 5; 4; 4; 5 ]]
|> _assertEqual (Some 995)

── [ 20.20ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 4 / acc: 0 / roll: 1
│ accumulateDiceRolls / power: 3 / acc: 0 / roll: 5 / value: 
864
│ accumulateDiceRolls / power: 2 / acc: 864 / roll: 4 / value: 
108
│ accumulateDiceRolls / power: 1 / acc: 972 / roll: 4 / value: 
18
│ accumulateDiceRolls / power: 0 / acc: 990 / roll: 5 / value: 
4
│ accumulateDiceRolls / power: -1 / acc: 994
│ Some 995
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

rollWithinBounds (Some (printfn "%s")) 2000 [[ 2; 2; 6; 4; 5 ]]
|> _assertEqual (Some 1715)

── [ 19.28ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 4 / acc: 0 / roll: 2 / value: 
1296
│ accumulateDiceRolls / power: 3 / acc: 1296 / roll: 2 / value:
216
│ accumulateDiceRolls / power: 2 / acc: 1512 / roll: 6 / value:
180
│ accumulateDiceRolls / power: 1 / acc: 1692 / roll: 4 / value:
18
│ accumulateDiceRolls / power: 0 / acc: 1710 / roll: 5 / value:
4
│ accumulateDiceRolls / power: -1 / acc: 1714
│ Some 1715
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

rollWithinBounds (Some (printfn "%s")) 2000 [[ 4; 1; 1; 2; 3 ]]
|> _assertEqual None

── [ 18.31ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 4 / acc: 0 / roll: 4 / value: 
3888
│ accumulateDiceRolls / power: 3 / acc: 3888 / roll: 1
│ accumulateDiceRolls / power: 2 / acc: 3888 / roll: 1
│ accumulateDiceRolls / power: 1 / acc: 3888 / roll: 2 / value:
6
│ accumulateDiceRolls / power: 0 / acc: 3894 / roll: 3 / value:
2
│ accumulateDiceRolls / power: -1 / acc: 3896
│ <null>
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## calculateDiceCount

── fsharp ──────────────────────────────────────────────────────────────────────
let inline calculateDiceCount log max =
    let rec loop n p =
        if p < max
        then loop (n + 1) (p * 6)
        else
            log |> Option.iter ((|>) $"calculateDiceCount / max: {max} / n: {n} 
/ p: {p}")
            n
    if max = 1
    then 1
    else loop 0 1

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

calculateDiceCount (Some (printfn "%s")) 36
|> _assertEqual 2

── [ 21.95ms - stdout ] ────────────────────────────────────────────────────────
│ calculateDiceCount / max: 36 / n: 2 / p: 36
│ 2
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

calculateDiceCount (Some (printfn "%s")) 7777
|> _assertEqual 6

── [ 23.23ms - stdout ] ────────────────────────────────────────────────────────
│ calculateDiceCount / max: 7777 / n: 6 / p: 46656
│ 6
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## rollDice

── fsharp ──────────────────────────────────────────────────────────────────────
#if FABLE_COMPILER_RUST
let rollDice () : int =
#if !WASM && !CONTRACT
    Fable.Core.RustInterop.emitRustExpr () "rand::Rng::gen_range(&mut 
rand::thread_rng(), 1..7)"
#else
    1
#endif
#else
let private random = System.Random ()
let rollDice () =
    random.Next (1, 7)
#endif

── markdown ────────────────────────────────────────────────────────────────────
│ ## rotateNumber

── fsharp ──────────────────────────────────────────────────────────────────────
let rotateNumber max n =
    (n - 1 + max) % max + 1

── markdown ────────────────────────────────────────────────────────────────────
│ ## rotateNumbers

── fsharp ──────────────────────────────────────────────────────────────────────
let rotateNumbers max items =
    items |> Seq.map (rotateNumber max)

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

[[ -1 .. 14 ]]
|> rotateNumbers 6
|> Seq.toList
|> _assertEqual [[ 5; 6; 1; 2; 3; 4; 5; 6; 1; 2; 3; 4; 5; 6; 1; 2 ]]

── [ 35.50ms - stdout ] ────────────────────────────────────────────────────────
│ [5; 6; 1; 2; 3; 4; 5; 6; 1; 2; 3; 4; 5; 6; 1; 2]
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## createSequentialRoller

── fsharp ──────────────────────────────────────────────────────────────────────
let createSequentialRoller list =
    let mutable currentIndex = 0
    fun () ->
        match list |> List.tryItem currentIndex with
        | Some item ->
            currentIndex <- currentIndex + 1
            item
        | None ->
            failwith "createSequentialRoller / End of list"

── markdown ────────────────────────────────────────────────────────────────────
│ ## rollProgressively

── fsharp ──────────────────────────────────────────────────────────────────────
let rollProgressively log roll reroll max =
    let power = (calculateDiceCount log max) - 1
    let rec loop rolls size =
        if size < power + 1
        then loop (roll () :: rolls) (size + 1)
        else
            match accumulateDiceRolls log rolls power 0 with
            | Some (result, _) when result <= max -> result
            | _ when reroll -> loop (List.init power (fun _ -> roll ())) power
            | _ -> loop (roll () :: rolls) (size + 1)
    loop [[]] 0

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

rollProgressively None rollDice false 1
|> _assertEqual 1

── [ 16.18ms - stdout ] ────────────────────────────────────────────────────────
│ 1
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let sequentialRoll = createSequentialRoller [[ 5; 4; 4; 5; 1 ]]

rollProgressively (Some (printfn "%s")) sequentialRoll false 2000
|> _assertEqual 995

── [ 19.22ms - stdout ] ────────────────────────────────────────────────────────
│ calculateDiceCount / max: 2000 / n: 5 / p: 7776
│ accumulateDiceRolls / power: 4 / acc: 0 / roll: 1
│ accumulateDiceRolls / power: 3 / acc: 0 / roll: 5 / value: 
864
│ accumulateDiceRolls / power: 2 / acc: 864 / roll: 4 / value: 
108
│ accumulateDiceRolls / power: 1 / acc: 972 / roll: 4 / value: 
18
│ accumulateDiceRolls / power: 0 / acc: 990 / roll: 5 / value: 
4
│ accumulateDiceRolls / power: -1 / acc: 994
│ 995
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let sequentialRoll = createSequentialRoller [[ 5; 4; 4; 5; 2 ]]

fun () -> rollProgressively (Some (printfn "%s")) sequentialRoll false 2000 |> 
ignore
|> _throwsC (fun ex _ ->
    SpiralSm.format_exception ex
    |> _assertEqual "System.Exception: createSequentialRoller / End of list"
)

── [ 46.23ms - stdout ] ────────────────────────────────────────────────────────
│ <fun:it@5-13>
│ 
│ calculateDiceCount / max: 2000 / n: 5 / p: 7776
│ accumulateDiceRolls / power: 4 / acc: 0 / roll: 2 / value: 
1296
│ accumulateDiceRolls / power: 3 / acc: 1296 / roll: 5 / value:
864
│ accumulateDiceRolls / power: 2 / acc: 2160 / roll: 4 / value:
108
│ accumulateDiceRolls / power: 1 / acc: 2268 / roll: 4 / value:
18
│ accumulateDiceRolls / power: 0 / acc: 2286 / roll: 5 / value:
4
│ accumulateDiceRolls / power: -1 / acc: 2290
│ "System.Exception: createSequentialRoller / End of list"
│ 
│ 

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

rollProgressively (Some (printfn "%s")) rollDice false 2000

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

rollProgressively (Some (printfn "%s")) rollDice true 2000

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

[[| 1 .. 10000 |]]
|> Array.Parallel.map (fun _ -> rollProgressively None rollDice false 10)
|> Array.Parallel.groupBy id
|> Array.Parallel.map (fun (k, v) -> k, v.Length)
|> Array.Parallel.sortBy fst

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

[[| 1 .. 10000 |]]
|> Array.Parallel.map (fun _ -> rollProgressively None rollDice true 10)
|> Array.Parallel.groupBy id
|> Array.Parallel.map (fun (k, v) -> k, v.Length)
|> Array.Parallel.sortBy fst

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

[[| 1 .. 100 |]]
|> Array.Parallel.iter (fun n ->
    [[| 0 .. 1 |]]
    |> Array.Parallel.iter (fun reroll ->
        [[| 1 .. 3500 |]]
        |> Array.Parallel.map (fun _ -> rollProgressively None rollDice (reroll 
= 1) n)
        |> Array.Parallel.groupBy id
        |> Array.length
        |> __assertEqual false n
    )
)

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

let inline rollMax fn max n =
    [[| 1 .. n |]]
    |> Array.Parallel.map (fun _ -> fn max)
    |> Array.Parallel.groupBy id
    |> Array.Parallel.map (fun (_, v) -> v.Length)

let rec rollN max n even current =
    let roll = rollMax (rollProgressively None rollDice true) max n
    if roll |> Array.Parallel.forall ((=) even)
    then current
    else rollN max n even (current + 1)

let run () =
    let max = 10
    let n = 30
    let even = (n / max) |> int

    rollN max n even 0

// run ()

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

let run () =
    let max = 10
    let n = 30
    let even = (n / max) |> int
    [[| 1 .. 100 |]]
    |> Array.Parallel.map (fun i ->
        let roll = rollN max n even 0
        printfn $"i: {i} / roll: {roll}"
        float roll
    )
    |> Array.Parallel.average

// run ()

── markdown ────────────────────────────────────────────────────────────────────
│ ## FsCheck (test)

── fsharp ──────────────────────────────────────────────────────────────────────
#r 
@"../../../../../../../.nuget/packages/fscheck/3.0.1/lib/netstandard2.0/FsCheck.
dll"
#r 
@"../../../../../../../.nuget/packages/expecto.fscheck/11.0.0-alpha8/lib/net6.0/
Expecto.FsCheck3.dll"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

type ValorDado =
    | Um
    | Dois
    | Tres
    | Quatro
    | Cinco
    | Seis

type Aspecto =
    | Passado of string
    | Presente of string
    | Futuro of string
    | Desafios of string
    | Recursos of string
    | ResultadoProjetado of string
    | InfluenciaExterna of string

type Contexto =
    | Amor of string
    | Trabalho of string
    | Saude of string
    | Dinheiro of string

type Universo =
    | Real of string
    | Virtual of string
    | Espiritual of string

type Caracteristica =
    | Aspecto of Aspecto
    | Contexto of Contexto
    | Universo of Universo
    | DadoRolado of ValorDado

type Interacao =
    | Conflito
    | Parceria
    | Crescimento
    | Estagnacao
    | Separacao
    | Harmonia
    | Desafio
    | Colaboracao
    | Progresso
    | Mudanca
    | Sucesso

type Interpretacao =
    | Interpretacao of Caracteristica * Interacao * Caracteristica

type SistemaDivinacao =
    | SistemaDivinacao of Interpretacao list * Caracteristica

let config = { Expecto.FsCheckConfig.defaultConfig with maxTest = 10000 }

let shuffleList xs seed =
    let rnd = Random (seed)
    xs
    |> List.map (fun x -> rnd.Next(), x)
    |> List.sortBy fst
    |> List.map snd




type Complexity = Simple | Moderate | Complex
type Duration = Short | Medium | Long

type Dice = D1 of int | D2 of int

type Task =
    | Task of Complexity * Duration * Task
    | NoTask

let durationOfFocus (d1: int) (d2: int) =
    match d1 + d2 with
    | sum when sum <= 4 -> Short
    | sum when sum <= 8 -> Medium
    | _ -> Long

let complexityOfTask (d1: int) (d2: int) =
    match d1 * d2 with
    | product when product <= 12 -> Simple
    | product when product <= 24 -> Moderate
    | _ -> Complex

let rec generateTaskList d1 d2 previousTask =
    match d1, d2 with
    | d1, d2 when d1 > 0 && d2 > 0 ->
        let complexity = complexityOfTask d1 d2
        let duration = durationOfFocus d1 d2
        let newTask = Task (complexity, duration, previousTask)
        generateTaskList (d1 - 1) (d2 - 1) newTask
    | _, _ -> previousTask





let properties =
    Expecto.Tests.testList "FsCheck samples" [[
        let sistemaDivinacao (interpretacoes: Interpretacao list, 
caracteristica: Caracteristica) =
            let interpretacoes = interpretacoes |> List.sort
            SistemaDivinacao (interpretacoes, caracteristica)

        Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
is consistent" <|
            fun (interpretacoes: Interpretacao list, caracteristica: 
Caracteristica) ->
                sistemaDivinacao (interpretacoes, caracteristica)
                    = sistemaDivinacao (interpretacoes, caracteristica)

        Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
is variant under permutation" <|
            fun (input: Interpretacao list, caracteristica: Caracteristica) ->
                let seed = 42
                let shuffledInput = shuffleList input seed
                sistemaDivinacao (input, caracteristica) = sistemaDivinacao 
(shuffledInput, caracteristica)

        Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
can handle lists of any size" <|
            fun (input: Interpretacao list, caracteristica: Caracteristica) ->
                let sistema = sistemaDivinacao (input, caracteristica)
                sistema <> Unchecked.defaultof<_>

        Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
is invariant under data transformations" <|
            fun (input: Interpretacao list, caracteristica: Caracteristica, 
newInterpretation: Interpretacao) ->
                let containsNewInterpretation = input |> List.contains 
newInterpretation
                let modifiedInput =
                    if containsNewInterpretation
                    then input
                    else newInterpretation :: input
                if containsNewInterpretation
                then sistemaDivinacao (List.sort input, caracteristica)
                        = sistemaDivinacao (List.sort modifiedInput, 
caracteristica)
                else sistemaDivinacao (List.sort input, caracteristica)
                        <> sistemaDivinacao (List.sort modifiedInput, 
caracteristica)






        let focusDurationProperty =
            FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
(FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
                let expected =
                    match d1 + d2 with
                    | sum when sum <= 4 -> Short
                    | sum when sum <= 8 -> Medium
                    | _ -> Long
                let actual = durationOfFocus d1 d2
                expected = actual

        let taskComplexityProperty =
            FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
(FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
                let expected =
                    match d1 * d2 with
                    | product when product <= 12 -> Simple
                    | product when product <= 24 -> Moderate
                    | _ -> Complex
                let actual = complexityOfTask d1 d2
                expected = actual

        let taskListLengthProperty =
            FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
(FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
                let taskList = generateTaskList d1 d2 NoTask
                let rec taskListLength taskList =
                    match taskList with
                    | Task (_, _, nextTask) -> 1 + taskListLength nextTask
                    | NoTask -> 0
                let actual = taskListLength taskList
                let expected = min d1 d2
                expected = actual


        Expecto.ExpectoFsCheck.testProperty "Duration of focus should be 
calculated correctly" focusDurationProperty
        Expecto.ExpectoFsCheck.testProperty "Task complexity should be 
calculated correctly" taskComplexityProperty
        Expecto.ExpectoFsCheck.testProperty "Task list should have the correct 
length" taskListLengthProperty



    ]]

let dice1 = 6
let dice2 = 6

let taskList = generateTaskList dice1 dice2 NoTask

let rec printTaskList taskList =
    match taskList with
    | Task (complexity, duration, nextTask) ->
        printfn "Complexidade: %A, Duração: %A" complexity duration
        printTaskList nextTask
    | NoTask -> ()

printTaskList taskList

Expecto.Tests.runTestsWithCLIArgs [[]] [[||]] properties
|> _assertEqual 0

── [ 656.31ms - stderr ] ───────────────────────────────────────────────────────
│ Complexidade: Simple, Duração: Short
│ Complexidade: Simple, Duração: Short
│ Complexidade: Simple, Duração: Medium
│ Complexidade: Moderate, Duração: Medium
│ Complexidade: Complex, Duração: Long
│ Complexidade: Complex, Duração: Long
│ 
NotebookRunner.RunNotebookAsync / exiting... 3

── markdown ────────────────────────────────────────────────────────────────────
│ ## main

── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
    let result = rollProgressively (Some (printfn "%s")) rollDice true 
(System.Int32.MaxValue / 10)
    trace Debug (fun () -> $"main / result: {result}") _locals
    0
NotebookRunner.RunNotebookAsync / exiting... 2
NotebookRunner.RunNotebookAsync / exiting... 1
NotebookRunner.RunNotebookAsync / event: CommandFailed: 
System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Cecil, 
Version=0.11.4.0, Culture=neutral, PublicKeyToken=50cebf1cceb9d05e'. The system 
cannot find the file specified.
File name: 'Mono.Cecil, Version=0.11.4.0, Culture=neutral, 
PublicKeyToken=50cebf1cceb9d05e'
   at <StartupCode$Expecto>.$Expecto.Impl..cctor()
   at Expecto.Impl.get_defaultPrinter@257.Invoke(Test _tests) in 
C:\workspaces\dotnet\expecto\Expecto\Expecto.Impl.fs:line 258
   at Expecto.Impl.runEvalWithCancel@743.Invoke(Unit unitVar) in 
C:\workspaces\dotnet\expecto\Expecto\Expecto.Impl.fs:line 743
   at 
Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati
on`1 ctxt, TResult result1, FSharpFunc`2 part2) in 
D:\a\_work\1\s\src\FSharp.Core\async.fs:line 510
   at Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in 
D:\a\_work\1\s\src\FSharp.Core\async.fs:line 112
--- End of stack trace from previous location ---
   at Microsoft.FSharp.Control.AsyncResult`1.Commit() in 
D:\a\_work\1\s\src\FSharp.Core\async.fs:line 454
   at 
Microsoft.FSharp.Control.AsyncPrimitives.QueueAsyncAndWaitForResultSynchronously
[a](CancellationToken token, FSharpAsync`1 computation, FSharpOption`1 timeout) 
in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1139
   at 
Microsoft.FSharp.Control.AsyncPrimitives.RunSynchronously[T](CancellationToken 
cancellationToken, FSharpAsync`1 computation, FSharpOption`1 timeout) in 
D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1166
   at Microsoft.FSharp.Control.FSharpAsync.RunSynchronously[T](FSharpAsync`1 
computation, FSharpOption`1 timeout, FSharpOption`1 cancellationToken) in 
D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1515
   at Expecto.Tests.runTestsWithCancel@617(CancellationToken ct, ExpectoConfig 
config, Test tests) in C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 635
   at Expecto.Tests.runTestsWithCLIArgsAndCancel(CancellationToken ct, 
IEnumerable`1 cliArgs, String[] args, Test tests) in 
C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 660
   at Expecto.Tests.runTestsWithCLIArgs(IEnumerable`1 cliArgs, String[] args, 
Test tests) in C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 668
   at <StartupCode$FSI_0052>.$FSI_0052.main@()
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, 
Signature sig, Boolean isConstructor)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, 
BindingFlags invokeAttr)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

# Invoke-Block / $retry: 2/3 / $Location: ../../deps/polyglot/lib/fsharp / Get-Location: C:\home\git\dice\deps\polyglot\lib\fsharp / $OnError: Stop / $exitcode: -1073740791 / $Error: '' / $ScriptBlock:
'. ../../deps/spiral/workspace/target/release/spiral$(_exe) dib --path "$ScriptDir/$projectName.dib"'

00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "C:\home\git\dice\lib\fsharp/dice_fsharp.dib"])) }
00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/dice/lib/fsharp/dice_fsharp.dib", "--output-path", "c:/home/git/dice/lib/fsharp/dice_fsharp.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/dice/lib/fsharp/dice_fsharp.dib" --output-path "c:/home/git/dice/lib/fsharp/dice_fsharp.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } }
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ # DiceFSharp (Dice)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #if !INTERACTIVE
> open Polyglot
> open Lib
> #endif
> 
> open Common
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## sixthPowerSequence
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let sixthPowerSequence () =
>     1 |> Seq.unfold (fun state -> Some (state, state * 6)) |> Seq.cache
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> sixthPowerSequence ()
> |> Seq.take 8
> |> Seq.toList
> |> _assertEqual [[ 1; 6; 36; 216; 1296; 7776; 46656; 279936 ]]
> 
> ── [ 65.65ms - stdout ] ────────────────────────────────────────────────────────
> │ [1; 6; 36; 216; 1296; 7776; 46656; 279936]
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## accumulateDiceRolls
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rec accumulateDiceRolls log rolls power acc =
>     match rolls with
>     | _ when power < 0 ->
>         log |> Option.iter ((|>) $"accumulateDiceRolls / power: {power} / acc: 
> {acc}")
>         Some (acc + 1, rolls)
>     | [[]] -> None
>     | roll :: rest when roll > 1 ->
>         let coeff = sixthPowerSequence () |> Seq.item power
>         let value = (roll - 1) * coeff
>         log |> Option.iter ((|>) $"accumulateDiceRolls / \
>             power: {power} / acc: {acc} / roll: {roll} / value: {value}"
>         )
>         accumulateDiceRolls log rest (power - 1) (acc + value)
>     | roll :: rest ->
>         log |> Option.iter ((|>) $"accumulateDiceRolls / power: {power} / acc: 
> {acc} / roll: {roll}")
>         accumulateDiceRolls log rest (power - 1) acc
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 0 1000
> |> _assertEqual (Some (1006, [[ 5; 4; 3; 2 ]]))
> 
> ── [ 31.56ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 0 / acc: 1000 / roll: 6 / value:
> 5
> │ accumulateDiceRolls / power: -1 / acc: 1005
> │ Some (1006, [5; 4; 3; 2])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 1 1000
> |> _assertEqual (Some (1035, [[ 4; 3; 2 ]]))
> 
> ── [ 21.83ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 1 / acc: 1000 / roll: 6 / value:
> 30
> │ accumulateDiceRolls / power: 0 / acc: 1030 / roll: 5 / value:
> 4
> │ accumulateDiceRolls / power: -1 / acc: 1034
> │ Some (1035, [4; 3; 2])
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 2 1000
> |> _assertEqual (Some (1208, [[ 3; 2 ]]))
> 
> ── [ 21.55ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 2 / acc: 1000 / roll: 6 / value:
> 180
> │ accumulateDiceRolls / power: 1 / acc: 1180 / roll: 5 / value:
> 24
> │ accumulateDiceRolls / power: 0 / acc: 1204 / roll: 4 / value:
> 3
> │ accumulateDiceRolls / power: -1 / acc: 1207
> │ Some (1208, [3; 2])
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rollWithinBounds
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rollWithinBounds log max rolls =
>     let power = List.length rolls - 1
>     match accumulateDiceRolls log rolls power 0 with
>     | Some (result, _) when result >= 1 && result <= max -> Some result
>     | _ -> None
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> rollWithinBounds (Some (printfn "%s")) 2000 [[ 1; 5; 4; 4; 5 ]]
> |> _assertEqual (Some 995)
> 
> ── [ 20.76ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 4 / acc: 0 / roll: 1
> │ accumulateDiceRolls / power: 3 / acc: 0 / roll: 5 / value: 
> 864
> │ accumulateDiceRolls / power: 2 / acc: 864 / roll: 4 / value: 
> 108
> │ accumulateDiceRolls / power: 1 / acc: 972 / roll: 4 / value: 
> 18
> │ accumulateDiceRolls / power: 0 / acc: 990 / roll: 5 / value: 
> 4
> │ accumulateDiceRolls / power: -1 / acc: 994
> │ Some 995
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> rollWithinBounds (Some (printfn "%s")) 2000 [[ 2; 2; 6; 4; 5 ]]
> |> _assertEqual (Some 1715)
> 
> ── [ 19.71ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 4 / acc: 0 / roll: 2 / value: 
> 1296
> │ accumulateDiceRolls / power: 3 / acc: 1296 / roll: 2 / value:
> 216
> │ accumulateDiceRolls / power: 2 / acc: 1512 / roll: 6 / value:
> 180
> │ accumulateDiceRolls / power: 1 / acc: 1692 / roll: 4 / value:
> 18
> │ accumulateDiceRolls / power: 0 / acc: 1710 / roll: 5 / value:
> 4
> │ accumulateDiceRolls / power: -1 / acc: 1714
> │ Some 1715
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> rollWithinBounds (Some (printfn "%s")) 2000 [[ 4; 1; 1; 2; 3 ]]
> |> _assertEqual None
> 
> ── [ 19.64ms - stdout ] ────────────────────────────────────────────────────────
> │ accumulateDiceRolls / power: 4 / acc: 0 / roll: 4 / value: 
> 3888
> │ accumulateDiceRolls / power: 3 / acc: 3888 / roll: 1
> │ accumulateDiceRolls / power: 2 / acc: 3888 / roll: 1
> │ accumulateDiceRolls / power: 1 / acc: 3888 / roll: 2 / value:
> 6
> │ accumulateDiceRolls / power: 0 / acc: 3894 / roll: 3 / value:
> 2
> │ accumulateDiceRolls / power: -1 / acc: 3896
> │ <null>
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## calculateDiceCount
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let inline calculateDiceCount log max =
>     let rec loop n p =
>         if p < max
>         then loop (n + 1) (p * 6)
>         else
>             log |> Option.iter ((|>) $"calculateDiceCount / max: {max} / n: {n} 
> / p: {p}")
>             n
>     if max = 1
>     then 1
>     else loop 0 1
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> calculateDiceCount (Some (printfn "%s")) 36
> |> _assertEqual 2
> 
> ── [ 28.83ms - stdout ] ────────────────────────────────────────────────────────
> │ calculateDiceCount / max: 36 / n: 2 / p: 36
> │ 2
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> calculateDiceCount (Some (printfn "%s")) 7777
> |> _assertEqual 6
> 
> ── [ 20.77ms - stdout ] ────────────────────────────────────────────────────────
> │ calculateDiceCount / max: 7777 / n: 6 / p: 46656
> │ 6
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rollDice
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #if FABLE_COMPILER_RUST
> let rollDice () : int =
> #if !WASM && !CONTRACT
>     Fable.Core.RustInterop.emitRustExpr () "rand::Rng::gen_range(&mut 
> rand::thread_rng(), 1..7)"
> #else
>     1
> #endif
> #else
> let private random = System.Random ()
> let rollDice () =
>     random.Next (1, 7)
> #endif
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rotateNumber
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rotateNumber max n =
>     (n - 1 + max) % max + 1
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rotateNumbers
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rotateNumbers max items =
>     items |> Seq.map (rotateNumber max)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> [[ -1 .. 14 ]]
> |> rotateNumbers 6
> |> Seq.toList
> |> _assertEqual [[ 5; 6; 1; 2; 3; 4; 5; 6; 1; 2; 3; 4; 5; 6; 1; 2 ]]
> 
> ── [ 34.62ms - stdout ] ────────────────────────────────────────────────────────
> │ [5; 6; 1; 2; 3; 4; 5; 6; 1; 2; 3; 4; 5; 6; 1; 2]
> │ 
> │ 
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## createSequentialRoller
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let createSequentialRoller list =
>     let mutable currentIndex = 0
>     fun () ->
>         match list |> List.tryItem currentIndex with
>         | Some item ->
>             currentIndex <- currentIndex + 1
>             item
>         | None ->
>             failwith "createSequentialRoller / End of list"
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## rollProgressively
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let rollProgressively log roll reroll max =
>     let power = (calculateDiceCount log max) - 1
>     let rec loop rolls size =
>         if size < power + 1
>         then loop (roll () :: rolls) (size + 1)
>         else
>             match accumulateDiceRolls log rolls power 0 with
>             | Some (result, _) when result <= max -> result
>             | _ when reroll -> loop (List.init power (fun _ -> roll ())) power
>             | _ -> loop (roll () :: rolls) (size + 1)
>     loop [[]] 0
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> rollProgressively None rollDice false 1
> |> _assertEqual 1
> 
> ── [ 16.92ms - stdout ] ────────────────────────────────────────────────────────
> │ 1
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let sequentialRoll = createSequentialRoller [[ 5; 4; 4; 5; 1 ]]
> 
> rollProgressively (Some (printfn "%s")) sequentialRoll false 2000
> |> _assertEqual 995
> 
> ── [ 20.04ms - stdout ] ────────────────────────────────────────────────────────
> │ calculateDiceCount / max: 2000 / n: 5 / p: 7776
> │ accumulateDiceRolls / power: 4 / acc: 0 / roll: 1
> │ accumulateDiceRolls / power: 3 / acc: 0 / roll: 5 / value: 
> 864
> │ accumulateDiceRolls / power: 2 / acc: 864 / roll: 4 / value: 
> 108
> │ accumulateDiceRolls / power: 1 / acc: 972 / roll: 4 / value: 
> 18
> │ accumulateDiceRolls / power: 0 / acc: 990 / roll: 5 / value: 
> 4
> │ accumulateDiceRolls / power: -1 / acc: 994
> │ 995
> │ 
> │ 
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> let sequentialRoll = createSequentialRoller [[ 5; 4; 4; 5; 2 ]]
> 
> fun () -> rollProgressively (Some (printfn "%s")) sequentialRoll false 2000 |> 
> ignore
> |> _throwsC (fun ex _ ->
>     SpiralSm.format_exception ex
>     |> _assertEqual "System.Exception: createSequentialRoller / End of list"
> )
> 
> ── [ 46.37ms - stdout ] ────────────────────────────────────────────────────────
> │ <fun:it@5-13>
> │ 
> │ calculateDiceCount / max: 2000 / n: 5 / p: 7776
> │ accumulateDiceRolls / power: 4 / acc: 0 / roll: 2 / value: 
> 1296
> │ accumulateDiceRolls / power: 3 / acc: 1296 / roll: 5 / value:
> 864
> │ accumulateDiceRolls / power: 2 / acc: 2160 / roll: 4 / value:
> 108
> │ accumulateDiceRolls / power: 1 / acc: 2268 / roll: 4 / value:
> 18
> │ accumulateDiceRolls / power: 0 / acc: 2286 / roll: 5 / value:
> 4
> │ accumulateDiceRolls / power: -1 / acc: 2290
> │ "System.Exception: createSequentialRoller / End of list"
> │ 
> │ 
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> rollProgressively (Some (printfn "%s")) rollDice false 2000
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> rollProgressively (Some (printfn "%s")) rollDice true 2000
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> [[| 1 .. 10000 |]]
> |> Array.Parallel.map (fun _ -> rollProgressively None rollDice false 10)
> |> Array.Parallel.groupBy id
> |> Array.Parallel.map (fun (k, v) -> k, v.Length)
> |> Array.Parallel.sortBy fst
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> [[| 1 .. 10000 |]]
> |> Array.Parallel.map (fun _ -> rollProgressively None rollDice true 10)
> |> Array.Parallel.groupBy id
> |> Array.Parallel.map (fun (k, v) -> k, v.Length)
> |> Array.Parallel.sortBy fst
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> [[| 1 .. 100 |]]
> |> Array.Parallel.iter (fun n ->
>     [[| 0 .. 1 |]]
>     |> Array.Parallel.iter (fun reroll ->
>         [[| 1 .. 3500 |]]
>         |> Array.Parallel.map (fun _ -> rollProgressively None rollDice (reroll 
> = 1) n)
>         |> Array.Parallel.groupBy id
>         |> Array.length
>         |> __assertEqual false n
>     )
> )
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> let inline rollMax fn max n =
>     [[| 1 .. n |]]
>     |> Array.Parallel.map (fun _ -> fn max)
>     |> Array.Parallel.groupBy id
>     |> Array.Parallel.map (fun (_, v) -> v.Length)
> 
> let rec rollN max n even current =
>     let roll = rollMax (rollProgressively None rollDice true) max n
>     if roll |> Array.Parallel.forall ((=) even)
>     then current
>     else rollN max n even (current + 1)
> 
> let run () =
>     let max = 10
>     let n = 30
>     let even = (n / max) |> int
> 
>     rollN max n even 0
> 
> // run ()
> 
> ── fsharp - ignored ────────────────────────────────────────────────────────────
> //// ignore
> 
> let run () =
>     let max = 10
>     let n = 30
>     let even = (n / max) |> int
>     [[| 1 .. 100 |]]
>     |> Array.Parallel.map (fun i ->
>         let roll = rollN max n even 0
>         printfn $"i: {i} / roll: {roll}"
>         float roll
>     )
>     |> Array.Parallel.average
> 
> // run ()
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## FsCheck (test)
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> #r 
> @"../../../../../../../.nuget/packages/fscheck/3.0.1/lib/netstandard2.0/FsCheck.
> dll"
> #r 
> @"../../../../../../../.nuget/packages/expecto.fscheck/11.0.0-alpha8/lib/net6.0/
> Expecto.FsCheck3.dll"
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> //// test
> 
> type ValorDado =
>     | Um
>     | Dois
>     | Tres
>     | Quatro
>     | Cinco
>     | Seis
> 
> type Aspecto =
>     | Passado of string
>     | Presente of string
>     | Futuro of string
>     | Desafios of string
>     | Recursos of string
>     | ResultadoProjetado of string
>     | InfluenciaExterna of string
> 
> type Contexto =
>     | Amor of string
>     | Trabalho of string
>     | Saude of string
>     | Dinheiro of string
> 
> type Universo =
>     | Real of string
>     | Virtual of string
>     | Espiritual of string
> 
> type Caracteristica =
>     | Aspecto of Aspecto
>     | Contexto of Contexto
>     | Universo of Universo
>     | DadoRolado of ValorDado
> 
> type Interacao =
>     | Conflito
>     | Parceria
>     | Crescimento
>     | Estagnacao
>     | Separacao
>     | Harmonia
>     | Desafio
>     | Colaboracao
>     | Progresso
>     | Mudanca
>     | Sucesso
> 
> type Interpretacao =
>     | Interpretacao of Caracteristica * Interacao * Caracteristica
> 
> type SistemaDivinacao =
>     | SistemaDivinacao of Interpretacao list * Caracteristica
> 
> let config = { Expecto.FsCheckConfig.defaultConfig with maxTest = 10000 }
> 
> let shuffleList xs seed =
>     let rnd = Random (seed)
>     xs
>     |> List.map (fun x -> rnd.Next(), x)
>     |> List.sortBy fst
>     |> List.map snd
> 
> 
> 
> 
> type Complexity = Simple | Moderate | Complex
> type Duration = Short | Medium | Long
> 
> type Dice = D1 of int | D2 of int
> 
> type Task =
>     | Task of Complexity * Duration * Task
>     | NoTask
> 
> let durationOfFocus (d1: int) (d2: int) =
>     match d1 + d2 with
>     | sum when sum <= 4 -> Short
>     | sum when sum <= 8 -> Medium
>     | _ -> Long
> 
> let complexityOfTask (d1: int) (d2: int) =
>     match d1 * d2 with
>     | product when product <= 12 -> Simple
>     | product when product <= 24 -> Moderate
>     | _ -> Complex
> 
> let rec generateTaskList d1 d2 previousTask =
>     match d1, d2 with
>     | d1, d2 when d1 > 0 && d2 > 0 ->
>         let complexity = complexityOfTask d1 d2
>         let duration = durationOfFocus d1 d2
>         let newTask = Task (complexity, duration, previousTask)
>         generateTaskList (d1 - 1) (d2 - 1) newTask
>     | _, _ -> previousTask
> 
> 
> 
> 
> 
> let properties =
>     Expecto.Tests.testList "FsCheck samples" [[
>         let sistemaDivinacao (interpretacoes: Interpretacao list, 
> caracteristica: Caracteristica) =
>             let interpretacoes = interpretacoes |> List.sort
>             SistemaDivinacao (interpretacoes, caracteristica)
> 
>         Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
> is consistent" <|
>             fun (interpretacoes: Interpretacao list, caracteristica: 
> Caracteristica) ->
>                 sistemaDivinacao (interpretacoes, caracteristica)
>                     = sistemaDivinacao (interpretacoes, caracteristica)
> 
>         Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
> is variant under permutation" <|
>             fun (input: Interpretacao list, caracteristica: Caracteristica) ->
>                 let seed = 42
>                 let shuffledInput = shuffleList input seed
>                 sistemaDivinacao (input, caracteristica) = sistemaDivinacao 
> (shuffledInput, caracteristica)
> 
>         Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
> can handle lists of any size" <|
>             fun (input: Interpretacao list, caracteristica: Caracteristica) ->
>                 let sistema = sistemaDivinacao (input, caracteristica)
>                 sistema <> Unchecked.defaultof<_>
> 
>         Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
> is invariant under data transformations" <|
>             fun (input: Interpretacao list, caracteristica: Caracteristica, 
> newInterpretation: Interpretacao) ->
>                 let containsNewInterpretation = input |> List.contains 
> newInterpretation
>                 let modifiedInput =
>                     if containsNewInterpretation
>                     then input
>                     else newInterpretation :: input
>                 if containsNewInterpretation
>                 then sistemaDivinacao (List.sort input, caracteristica)
>                         = sistemaDivinacao (List.sort modifiedInput, 
> caracteristica)
>                 else sistemaDivinacao (List.sort input, caracteristica)
>                         <> sistemaDivinacao (List.sort modifiedInput, 
> caracteristica)
> 
> 
> 
> 
> 
> 
>         let focusDurationProperty =
>             FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
> (FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
> 6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
>                 let expected =
>                     match d1 + d2 with
>                     | sum when sum <= 4 -> Short
>                     | sum when sum <= 8 -> Medium
>                     | _ -> Long
>                 let actual = durationOfFocus d1 d2
>                 expected = actual
> 
>         let taskComplexityProperty =
>             FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
> (FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
> 6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
>                 let expected =
>                     match d1 * d2 with
>                     | product when product <= 12 -> Simple
>                     | product when product <= 24 -> Moderate
>                     | _ -> Complex
>                 let actual = complexityOfTask d1 d2
>                 expected = actual
> 
>         let taskListLengthProperty =
>             FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
> (FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
> 6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
>                 let taskList = generateTaskList d1 d2 NoTask
>                 let rec taskListLength taskList =
>                     match taskList with
>                     | Task (_, _, nextTask) -> 1 + taskListLength nextTask
>                     | NoTask -> 0
>                 let actual = taskListLength taskList
>                 let expected = min d1 d2
>                 expected = actual
> 
> 
>         Expecto.ExpectoFsCheck.testProperty "Duration of focus should be 
> calculated correctly" focusDurationProperty
>         Expecto.ExpectoFsCheck.testProperty "Task complexity should be 
> calculated correctly" taskComplexityProperty
>         Expecto.ExpectoFsCheck.testProperty "Task list should have the correct 
> length" taskListLengthProperty
> 
> 
> 
>     ]]
> 
> let dice1 = 6
> let dice2 = 6
> 
> let taskList = generateTaskList dice1 dice2 NoTask
> 
> let rec printTaskList taskList =
>     match taskList with
>     | Task (complexity, duration, nextTask) ->
>         printfn "Complexidade: %A, Duração: %A" complexity duration
>         printTaskList nextTask
>     | NoTask -> ()
> 
> printTaskList taskList
> 
> Expecto.Tests.runTestsWithCLIArgs [[]] [[||]] properties
> |> _assertEqual 0
> 
> ── [ 626.37ms - stderr ] ───────────────────────────────────────────────────────
> │ Complexidade: Simple, Duração: Short
> │ Complexidade: Simple, Duração: Short
> │ Complexidade: Simple, Duração: Medium
> │ Complexidade: Moderate, Duração: Medium
> │ Complexidade: Complex, Duração: Long
> │ Complexidade: Complex, Duração: Long
> │ 
> NotebookRunner.RunNotebookAsync / exiting... 3
> 
> ── markdown ────────────────────────────────────────────────────────────────────
> │ ## main
> 
> ── fsharp ──────────────────────────────────────────────────────────────────────
> let main args =
>     let result = rollProgressively (Some (printfn "%s")) rollDice true 
> (System.Int32.MaxValue / 10)
>     trace Debug (fun () -> $"main / result: {result}") _locals
>     0
> NotebookRunner.RunNotebookAsync / exiting... 2
> NotebookRunner.RunNotebookAsync / exiting... 1
> NotebookRunner.RunNotebookAsync / event: CommandFailed: 
> System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Cecil, 
> Version=0.11.4.0, Culture=neutral, PublicKeyToken=50cebf1cceb9d05e'. The system 
> cannot find the file specified.
> File name: 'Mono.Cecil, Version=0.11.4.0, Culture=neutral, 
> PublicKeyToken=50cebf1cceb9d05e'
>    at <StartupCode$Expecto>.$Expecto.Impl..cctor()
>    at Expecto.Impl.get_defaultPrinter@257.Invoke(Test _tests) in 
> C:\workspaces\dotnet\expecto\Expecto\Expecto.Impl.fs:line 258
>    at Expecto.Impl.runEvalWithCancel@743.Invoke(Unit unitVar) in 
> C:\workspaces\dotnet\expecto\Expecto\Expecto.Impl.fs:line 743
>    at 
> Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati
> on`1 ctxt, TResult result1, FSharpFunc`2 part2) in 
> D:\a\_work\1\s\src\FSharp.Core\async.fs:line 510
>    at Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in 
> D:\a\_work\1\s\src\FSharp.Core\async.fs:line 112
> --- End of stack trace from previous location ---
>    at Microsoft.FSharp.Control.AsyncResult`1.Commit() in 
> D:\a\_work\1\s\src\FSharp.Core\async.fs:line 454
>    at 
> Microsoft.FSharp.Control.AsyncPrimitives.QueueAsyncAndWaitForResultSynchronously
> [a](CancellationToken token, FSharpAsync`1 computation, FSharpOption`1 timeout) 
> in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1139
>    at 
> Microsoft.FSharp.Control.AsyncPrimitives.RunSynchronously[T](CancellationToken 
> cancellationToken, FSharpAsync`1 computation, FSharpOption`1 timeout) in 
> D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1166
>    at Microsoft.FSharp.Control.FSharpAsync.RunSynchronously[T](FSharpAsync`1 
> computation, FSharpOption`1 timeout, FSharpOption`1 cancellationToken) in 
> D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1515
>    at Expecto.Tests.runTestsWithCancel@617(CancellationToken ct, ExpectoConfig 
> config, Test tests) in C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 635
>    at Expecto.Tests.runTestsWithCLIArgsAndCancel(CancellationToken ct, 
> IEnumerable`1 cliArgs, String[] args, Test tests) in 
> C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 660
>    at Expecto.Tests.runTestsWithCLIArgs(IEnumerable`1 cliArgs, String[] args, 
> Test tests) in C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 668
>    at <StartupCode$FSI_0052>.$FSI_0052.main@()
>    at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, 
> Signature sig, Boolean isConstructor)
>    at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, 
> BindingFlags invokeAttr)
00:00:21 v #3 runtime.execute_with_options / result / { exit_code = -1; std_trace_length = 26177 }
00:00:21 d #4 spiral.run / dib / { exit_code = -1; result_length = 26177 }

thread 'main' panicked at C:\home\git\spiral\apps\spiral\spiral.rs:16903:45:
spiral.run / dib / exit_code: -1 / result: 
── markdown ────────────────────────────────────────────────────────────────────
│ # DiceFSharp (Dice)

── fsharp ──────────────────────────────────────────────────────────────────────
#if !INTERACTIVE
open Polyglot
open Lib
#endif

open Common

── markdown ────────────────────────────────────────────────────────────────────
│ ## sixthPowerSequence

── fsharp ──────────────────────────────────────────────────────────────────────
let sixthPowerSequence () =
    1 |> Seq.unfold (fun state -> Some (state, state * 6)) |> Seq.cache

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

sixthPowerSequence ()
|> Seq.take 8
|> Seq.toList
|> _assertEqual [[ 1; 6; 36; 216; 1296; 7776; 46656; 279936 ]]

── [ 65.65ms - stdout ] ────────────────────────────────────────────────────────
│ [1; 6; 36; 216; 1296; 7776; 46656; 279936]
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## accumulateDiceRolls

── fsharp ──────────────────────────────────────────────────────────────────────
let rec accumulateDiceRolls log rolls power acc =
    match rolls with
    | _ when power < 0 ->
        log |> Option.iter ((|>) $"accumulateDiceRolls / power: {power} / acc: 
{acc}")
        Some (acc + 1, rolls)
    | [[]] -> None
    | roll :: rest when roll > 1 ->
        let coeff = sixthPowerSequence () |> Seq.item power
        let value = (roll - 1) * coeff
        log |> Option.iter ((|>) $"accumulateDiceRolls / \
            power: {power} / acc: {acc} / roll: {roll} / value: {value}"
        )
        accumulateDiceRolls log rest (power - 1) (acc + value)
    | roll :: rest ->
        log |> Option.iter ((|>) $"accumulateDiceRolls / power: {power} / acc: 
{acc} / roll: {roll}")
        accumulateDiceRolls log rest (power - 1) acc

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 0 1000
|> _assertEqual (Some (1006, [[ 5; 4; 3; 2 ]]))

── [ 31.56ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 0 / acc: 1000 / roll: 6 / value:
5
│ accumulateDiceRolls / power: -1 / acc: 1005
│ Some (1006, [5; 4; 3; 2])
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 1 1000
|> _assertEqual (Some (1035, [[ 4; 3; 2 ]]))

── [ 21.83ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 1 / acc: 1000 / roll: 6 / value:
30
│ accumulateDiceRolls / power: 0 / acc: 1030 / roll: 5 / value:
4
│ accumulateDiceRolls / power: -1 / acc: 1034
│ Some (1035, [4; 3; 2])
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

accumulateDiceRolls (Some (printfn "%s")) [[ 6; 5; 4; 3; 2 ]] 2 1000
|> _assertEqual (Some (1208, [[ 3; 2 ]]))

── [ 21.55ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 2 / acc: 1000 / roll: 6 / value:
180
│ accumulateDiceRolls / power: 1 / acc: 1180 / roll: 5 / value:
24
│ accumulateDiceRolls / power: 0 / acc: 1204 / roll: 4 / value:
3
│ accumulateDiceRolls / power: -1 / acc: 1207
│ Some (1208, [3; 2])
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## rollWithinBounds

── fsharp ──────────────────────────────────────────────────────────────────────
let rollWithinBounds log max rolls =
    let power = List.length rolls - 1
    match accumulateDiceRolls log rolls power 0 with
    | Some (result, _) when result >= 1 && result <= max -> Some result
    | _ -> None

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

rollWithinBounds (Some (printfn "%s")) 2000 [[ 1; 5; 4; 4; 5 ]]
|> _assertEqual (Some 995)

── [ 20.76ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 4 / acc: 0 / roll: 1
│ accumulateDiceRolls / power: 3 / acc: 0 / roll: 5 / value: 
864
│ accumulateDiceRolls / power: 2 / acc: 864 / roll: 4 / value: 
108
│ accumulateDiceRolls / power: 1 / acc: 972 / roll: 4 / value: 
18
│ accumulateDiceRolls / power: 0 / acc: 990 / roll: 5 / value: 
4
│ accumulateDiceRolls / power: -1 / acc: 994
│ Some 995
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

rollWithinBounds (Some (printfn "%s")) 2000 [[ 2; 2; 6; 4; 5 ]]
|> _assertEqual (Some 1715)

── [ 19.71ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 4 / acc: 0 / roll: 2 / value: 
1296
│ accumulateDiceRolls / power: 3 / acc: 1296 / roll: 2 / value:
216
│ accumulateDiceRolls / power: 2 / acc: 1512 / roll: 6 / value:
180
│ accumulateDiceRolls / power: 1 / acc: 1692 / roll: 4 / value:
18
│ accumulateDiceRolls / power: 0 / acc: 1710 / roll: 5 / value:
4
│ accumulateDiceRolls / power: -1 / acc: 1714
│ Some 1715
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

rollWithinBounds (Some (printfn "%s")) 2000 [[ 4; 1; 1; 2; 3 ]]
|> _assertEqual None

── [ 19.64ms - stdout ] ────────────────────────────────────────────────────────
│ accumulateDiceRolls / power: 4 / acc: 0 / roll: 4 / value: 
3888
│ accumulateDiceRolls / power: 3 / acc: 3888 / roll: 1
│ accumulateDiceRolls / power: 2 / acc: 3888 / roll: 1
│ accumulateDiceRolls / power: 1 / acc: 3888 / roll: 2 / value:
6
│ accumulateDiceRolls / power: 0 / acc: 3894 / roll: 3 / value:
2
│ accumulateDiceRolls / power: -1 / acc: 3896
│ <null>
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## calculateDiceCount

── fsharp ──────────────────────────────────────────────────────────────────────
let inline calculateDiceCount log max =
    let rec loop n p =
        if p < max
        then loop (n + 1) (p * 6)
        else
            log |> Option.iter ((|>) $"calculateDiceCount / max: {max} / n: {n} 
/ p: {p}")
            n
    if max = 1
    then 1
    else loop 0 1

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

calculateDiceCount (Some (printfn "%s")) 36
|> _assertEqual 2

── [ 28.83ms - stdout ] ────────────────────────────────────────────────────────
│ calculateDiceCount / max: 36 / n: 2 / p: 36
│ 2
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

calculateDiceCount (Some (printfn "%s")) 7777
|> _assertEqual 6

── [ 20.77ms - stdout ] ────────────────────────────────────────────────────────
│ calculateDiceCount / max: 7777 / n: 6 / p: 46656
│ 6
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## rollDice

── fsharp ──────────────────────────────────────────────────────────────────────
#if FABLE_COMPILER_RUST
let rollDice () : int =
#if !WASM && !CONTRACT
    Fable.Core.RustInterop.emitRustExpr () "rand::Rng::gen_range(&mut 
rand::thread_rng(), 1..7)"
#else
    1
#endif
#else
let private random = System.Random ()
let rollDice () =
    random.Next (1, 7)
#endif

── markdown ────────────────────────────────────────────────────────────────────
│ ## rotateNumber

── fsharp ──────────────────────────────────────────────────────────────────────
let rotateNumber max n =
    (n - 1 + max) % max + 1

── markdown ────────────────────────────────────────────────────────────────────
│ ## rotateNumbers

── fsharp ──────────────────────────────────────────────────────────────────────
let rotateNumbers max items =
    items |> Seq.map (rotateNumber max)

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

[[ -1 .. 14 ]]
|> rotateNumbers 6
|> Seq.toList
|> _assertEqual [[ 5; 6; 1; 2; 3; 4; 5; 6; 1; 2; 3; 4; 5; 6; 1; 2 ]]

── [ 34.62ms - stdout ] ────────────────────────────────────────────────────────
│ [5; 6; 1; 2; 3; 4; 5; 6; 1; 2; 3; 4; 5; 6; 1; 2]
│ 
│ 

── markdown ────────────────────────────────────────────────────────────────────
│ ## createSequentialRoller

── fsharp ──────────────────────────────────────────────────────────────────────
let createSequentialRoller list =
    let mutable currentIndex = 0
    fun () ->
        match list |> List.tryItem currentIndex with
        | Some item ->
            currentIndex <- currentIndex + 1
            item
        | None ->
            failwith "createSequentialRoller / End of list"

── markdown ────────────────────────────────────────────────────────────────────
│ ## rollProgressively

── fsharp ──────────────────────────────────────────────────────────────────────
let rollProgressively log roll reroll max =
    let power = (calculateDiceCount log max) - 1
    let rec loop rolls size =
        if size < power + 1
        then loop (roll () :: rolls) (size + 1)
        else
            match accumulateDiceRolls log rolls power 0 with
            | Some (result, _) when result <= max -> result
            | _ when reroll -> loop (List.init power (fun _ -> roll ())) power
            | _ -> loop (roll () :: rolls) (size + 1)
    loop [[]] 0

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

rollProgressively None rollDice false 1
|> _assertEqual 1

── [ 16.92ms - stdout ] ────────────────────────────────────────────────────────
│ 1
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let sequentialRoll = createSequentialRoller [[ 5; 4; 4; 5; 1 ]]

rollProgressively (Some (printfn "%s")) sequentialRoll false 2000
|> _assertEqual 995

── [ 20.04ms - stdout ] ────────────────────────────────────────────────────────
│ calculateDiceCount / max: 2000 / n: 5 / p: 7776
│ accumulateDiceRolls / power: 4 / acc: 0 / roll: 1
│ accumulateDiceRolls / power: 3 / acc: 0 / roll: 5 / value: 
864
│ accumulateDiceRolls / power: 2 / acc: 864 / roll: 4 / value: 
108
│ accumulateDiceRolls / power: 1 / acc: 972 / roll: 4 / value: 
18
│ accumulateDiceRolls / power: 0 / acc: 990 / roll: 5 / value: 
4
│ accumulateDiceRolls / power: -1 / acc: 994
│ 995
│ 
│ 

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let sequentialRoll = createSequentialRoller [[ 5; 4; 4; 5; 2 ]]

fun () -> rollProgressively (Some (printfn "%s")) sequentialRoll false 2000 |> 
ignore
|> _throwsC (fun ex _ ->
    SpiralSm.format_exception ex
    |> _assertEqual "System.Exception: createSequentialRoller / End of list"
)

── [ 46.37ms - stdout ] ────────────────────────────────────────────────────────
│ <fun:it@5-13>
│ 
│ calculateDiceCount / max: 2000 / n: 5 / p: 7776
│ accumulateDiceRolls / power: 4 / acc: 0 / roll: 2 / value: 
1296
│ accumulateDiceRolls / power: 3 / acc: 1296 / roll: 5 / value:
864
│ accumulateDiceRolls / power: 2 / acc: 2160 / roll: 4 / value:
108
│ accumulateDiceRolls / power: 1 / acc: 2268 / roll: 4 / value:
18
│ accumulateDiceRolls / power: 0 / acc: 2286 / roll: 5 / value:
4
│ accumulateDiceRolls / power: -1 / acc: 2290
│ "System.Exception: createSequentialRoller / End of list"
│ 
│ 

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

rollProgressively (Some (printfn "%s")) rollDice false 2000

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

rollProgressively (Some (printfn "%s")) rollDice true 2000

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

[[| 1 .. 10000 |]]
|> Array.Parallel.map (fun _ -> rollProgressively None rollDice false 10)
|> Array.Parallel.groupBy id
|> Array.Parallel.map (fun (k, v) -> k, v.Length)
|> Array.Parallel.sortBy fst

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

[[| 1 .. 10000 |]]
|> Array.Parallel.map (fun _ -> rollProgressively None rollDice true 10)
|> Array.Parallel.groupBy id
|> Array.Parallel.map (fun (k, v) -> k, v.Length)
|> Array.Parallel.sortBy fst

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

[[| 1 .. 100 |]]
|> Array.Parallel.iter (fun n ->
    [[| 0 .. 1 |]]
    |> Array.Parallel.iter (fun reroll ->
        [[| 1 .. 3500 |]]
        |> Array.Parallel.map (fun _ -> rollProgressively None rollDice (reroll 
= 1) n)
        |> Array.Parallel.groupBy id
        |> Array.length
        |> __assertEqual false n
    )
)

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

let inline rollMax fn max n =
    [[| 1 .. n |]]
    |> Array.Parallel.map (fun _ -> fn max)
    |> Array.Parallel.groupBy id
    |> Array.Parallel.map (fun (_, v) -> v.Length)

let rec rollN max n even current =
    let roll = rollMax (rollProgressively None rollDice true) max n
    if roll |> Array.Parallel.forall ((=) even)
    then current
    else rollN max n even (current + 1)

let run () =
    let max = 10
    let n = 30
    let even = (n / max) |> int

    rollN max n even 0

// run ()

── fsharp - ignored ────────────────────────────────────────────────────────────
//// ignore

let run () =
    let max = 10
    let n = 30
    let even = (n / max) |> int
    [[| 1 .. 100 |]]
    |> Array.Parallel.map (fun i ->
        let roll = rollN max n even 0
        printfn $"i: {i} / roll: {roll}"
        float roll
    )
    |> Array.Parallel.average

// run ()

── markdown ────────────────────────────────────────────────────────────────────
│ ## FsCheck (test)

── fsharp ──────────────────────────────────────────────────────────────────────
#r 
@"../../../../../../../.nuget/packages/fscheck/3.0.1/lib/netstandard2.0/FsCheck.
dll"
#r 
@"../../../../../../../.nuget/packages/expecto.fscheck/11.0.0-alpha8/lib/net6.0/
Expecto.FsCheck3.dll"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

type ValorDado =
    | Um
    | Dois
    | Tres
    | Quatro
    | Cinco
    | Seis

type Aspecto =
    | Passado of string
    | Presente of string
    | Futuro of string
    | Desafios of string
    | Recursos of string
    | ResultadoProjetado of string
    | InfluenciaExterna of string

type Contexto =
    | Amor of string
    | Trabalho of string
    | Saude of string
    | Dinheiro of string

type Universo =
    | Real of string
    | Virtual of string
    | Espiritual of string

type Caracteristica =
    | Aspecto of Aspecto
    | Contexto of Contexto
    | Universo of Universo
    | DadoRolado of ValorDado

type Interacao =
    | Conflito
    | Parceria
    | Crescimento
    | Estagnacao
    | Separacao
    | Harmonia
    | Desafio
    | Colaboracao
    | Progresso
    | Mudanca
    | Sucesso

type Interpretacao =
    | Interpretacao of Caracteristica * Interacao * Caracteristica

type SistemaDivinacao =
    | SistemaDivinacao of Interpretacao list * Caracteristica

let config = { Expecto.FsCheckConfig.defaultConfig with maxTest = 10000 }

let shuffleList xs seed =
    let rnd = Random (seed)
    xs
    |> List.map (fun x -> rnd.Next(), x)
    |> List.sortBy fst
    |> List.map snd




type Complexity = Simple | Moderate | Complex
type Duration = Short | Medium | Long

type Dice = D1 of int | D2 of int

type Task =
    | Task of Complexity * Duration * Task
    | NoTask

let durationOfFocus (d1: int) (d2: int) =
    match d1 + d2 with
    | sum when sum <= 4 -> Short
    | sum when sum <= 8 -> Medium
    | _ -> Long

let complexityOfTask (d1: int) (d2: int) =
    match d1 * d2 with
    | product when product <= 12 -> Simple
    | product when product <= 24 -> Moderate
    | _ -> Complex

let rec generateTaskList d1 d2 previousTask =
    match d1, d2 with
    | d1, d2 when d1 > 0 && d2 > 0 ->
        let complexity = complexityOfTask d1 d2
        let duration = durationOfFocus d1 d2
        let newTask = Task (complexity, duration, previousTask)
        generateTaskList (d1 - 1) (d2 - 1) newTask
    | _, _ -> previousTask





let properties =
    Expecto.Tests.testList "FsCheck samples" [[
        let sistemaDivinacao (interpretacoes: Interpretacao list, 
caracteristica: Caracteristica) =
            let interpretacoes = interpretacoes |> List.sort
            SistemaDivinacao (interpretacoes, caracteristica)

        Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
is consistent" <|
            fun (interpretacoes: Interpretacao list, caracteristica: 
Caracteristica) ->
                sistemaDivinacao (interpretacoes, caracteristica)
                    = sistemaDivinacao (interpretacoes, caracteristica)

        Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
is variant under permutation" <|
            fun (input: Interpretacao list, caracteristica: Caracteristica) ->
                let seed = 42
                let shuffledInput = shuffleList input seed
                sistemaDivinacao (input, caracteristica) = sistemaDivinacao 
(shuffledInput, caracteristica)

        Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
can handle lists of any size" <|
            fun (input: Interpretacao list, caracteristica: Caracteristica) ->
                let sistema = sistemaDivinacao (input, caracteristica)
                sistema <> Unchecked.defaultof<_>

        Expecto.ExpectoFsCheck.testPropertyWithConfig config "SistemaDivinacao 
is invariant under data transformations" <|
            fun (input: Interpretacao list, caracteristica: Caracteristica, 
newInterpretation: Interpretacao) ->
                let containsNewInterpretation = input |> List.contains 
newInterpretation
                let modifiedInput =
                    if containsNewInterpretation
                    then input
                    else newInterpretation :: input
                if containsNewInterpretation
                then sistemaDivinacao (List.sort input, caracteristica)
                        = sistemaDivinacao (List.sort modifiedInput, 
caracteristica)
                else sistemaDivinacao (List.sort input, caracteristica)
                        <> sistemaDivinacao (List.sort modifiedInput, 
caracteristica)






        let focusDurationProperty =
            FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
(FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
                let expected =
                    match d1 + d2 with
                    | sum when sum <= 4 -> Short
                    | sum when sum <= 8 -> Medium
                    | _ -> Long
                let actual = durationOfFocus d1 d2
                expected = actual

        let taskComplexityProperty =
            FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
(FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
                let expected =
                    match d1 * d2 with
                    | product when product <= 12 -> Simple
                    | product when product <= 24 -> Moderate
                    | _ -> Complex
                let actual = complexityOfTask d1 d2
                expected = actual

        let taskListLengthProperty =
            FsCheck.FSharp.Prop.forAll (FsCheck.FSharp.Arb.fromGen 
(FsCheck.FSharp.Gen.map2 (fun d1 d2 -> (d1, d2)) (FsCheck.FSharp.Gen.choose (1, 
6)) (FsCheck.FSharp.Gen.choose (1, 6)))) <| fun (d1, d2) ->
                let taskList = generateTaskList d1 d2 NoTask
                let rec taskListLength taskList =
                    match taskList with
                    | Task (_, _, nextTask) -> 1 + taskListLength nextTask
                    | NoTask -> 0
                let actual = taskListLength taskList
                let expected = min d1 d2
                expected = actual


        Expecto.ExpectoFsCheck.testProperty "Duration of focus should be 
calculated correctly" focusDurationProperty
        Expecto.ExpectoFsCheck.testProperty "Task complexity should be 
calculated correctly" taskComplexityProperty
        Expecto.ExpectoFsCheck.testProperty "Task list should have the correct 
length" taskListLengthProperty



    ]]

let dice1 = 6
let dice2 = 6

let taskList = generateTaskList dice1 dice2 NoTask

let rec printTaskList taskList =
    match taskList with
    | Task (complexity, duration, nextTask) ->
        printfn "Complexidade: %A, Duração: %A" complexity duration
        printTaskList nextTask
    | NoTask -> ()

printTaskList taskList

Expecto.Tests.runTestsWithCLIArgs [[]] [[||]] properties
|> _assertEqual 0

── [ 626.37ms - stderr ] ───────────────────────────────────────────────────────
│ Complexidade: Simple, Duração: Short
│ Complexidade: Simple, Duração: Short
│ Complexidade: Simple, Duração: Medium
│ Complexidade: Moderate, Duração: Medium
│ Complexidade: Complex, Duração: Long
│ Complexidade: Complex, Duração: Long
│ 
NotebookRunner.RunNotebookAsync / exiting... 3

── markdown ────────────────────────────────────────────────────────────────────
│ ## main

── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
    let result = rollProgressively (Some (printfn "%s")) rollDice true 
(System.Int32.MaxValue / 10)
    trace Debug (fun () -> $"main / result: {result}") _locals
    0
NotebookRunner.RunNotebookAsync / exiting... 2
NotebookRunner.RunNotebookAsync / exiting... 1
NotebookRunner.RunNotebookAsync / event: CommandFailed: 
System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Cecil, 
Version=0.11.4.0, Culture=neutral, PublicKeyToken=50cebf1cceb9d05e'. The system 
cannot find the file specified.
File name: 'Mono.Cecil, Version=0.11.4.0, Culture=neutral, 
PublicKeyToken=50cebf1cceb9d05e'
   at <StartupCode$Expecto>.$Expecto.Impl..cctor()
   at Expecto.Impl.get_defaultPrinter@257.Invoke(Test _tests) in 
C:\workspaces\dotnet\expecto\Expecto\Expecto.Impl.fs:line 258
   at Expecto.Impl.runEvalWithCancel@743.Invoke(Unit unitVar) in 
C:\workspaces\dotnet\expecto\Expecto\Expecto.Impl.fs:line 743
   at 
Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati
on`1 ctxt, TResult result1, FSharpFunc`2 part2) in 
D:\a\_work\1\s\src\FSharp.Core\async.fs:line 510
   at Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in 
D:\a\_work\1\s\src\FSharp.Core\async.fs:line 112
--- End of stack trace from previous location ---
   at Microsoft.FSharp.Control.AsyncResult`1.Commit() in 
D:\a\_work\1\s\src\FSharp.Core\async.fs:line 454
   at 
Microsoft.FSharp.Control.AsyncPrimitives.QueueAsyncAndWaitForResultSynchronously
[a](CancellationToken token, FSharpAsync`1 computation, FSharpOption`1 timeout) 
in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1139
   at 
Microsoft.FSharp.Control.AsyncPrimitives.RunSynchronously[T](CancellationToken 
cancellationToken, FSharpAsync`1 computation, FSharpOption`1 timeout) in 
D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1166
   at Microsoft.FSharp.Control.FSharpAsync.RunSynchronously[T](FSharpAsync`1 
computation, FSharpOption`1 timeout, FSharpOption`1 cancellationToken) in 
D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1515
   at Expecto.Tests.runTestsWithCancel@617(CancellationToken ct, ExpectoConfig 
config, Test tests) in C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 635
   at Expecto.Tests.runTestsWithCLIArgsAndCancel(CancellationToken ct, 
IEnumerable`1 cliArgs, String[] args, Test tests) in 
C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 660
   at Expecto.Tests.runTestsWithCLIArgs(IEnumerable`1 cliArgs, String[] args, 
Test tests) in C:\workspaces\dotnet\expecto\Expecto\Expecto.fs:line 668
   at <StartupCode$FSI_0052>.$FSI_0052.main@()
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, 
Signature sig, Boolean isConstructor)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, 
BindingFlags invokeAttr)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

# Invoke-Block / $retry: 3/3 / $Location: ../../deps/polyglot/lib/fsharp / Get-Location: C:\home\git\dice\deps\polyglot\lib\fsharp / $OnError: Stop / $exitcode: -1073740791 / $Error: '' / $ScriptBlock:
'. ../../deps/spiral/workspace/target/release/spiral$(_exe) dib --path "$ScriptDir/$projectName.dib"'


# Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: C:\home\git\dice\scripts / $OnError: Stop / $exitcode: 1073740791 / $Error: '' / $ScriptBlock:
'pwsh ../lib/fsharp/build.ps1'


# Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: C:\home\git\i574n.github\scripts / $OnError: Continue / $exitcode: 1073740791 / $Error: '' / $ScriptBlock:
'pwsh ../../dice/scripts/build.ps1'

In [ ]:
{ pwsh outdated.ps1 } | Invoke-Block
CheckToml / toml: C:\home\git\spiral\workspace\Cargo.toml
error: failed to download `hybrid-array v0.3.0`

Caused by:
  unable to get packages from source

Caused by:
  failed to parse manifest at `C:\Users\i574n\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\hybrid-array-0.3.0\Cargo.toml`

Caused by:
  feature `edition2024` is required

  The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.81.0).
  Consider trying a more recent nightly release.
  See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.

# Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: C:\home\git\spiral\scripts / $OnError: Continue / $exitcode: 1 / $Error: '' / $ScriptBlock:
'cargo outdated -m $toml @_args'


CheckToml / toml: C:\home\git\spiral\apps\spiral\Cargo.toml
error: failed to download `hybrid-array v0.3.0`

Caused by:
  unable to get packages from source

Caused by:
  failed to parse manifest at `C:\Users\i574n\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\hybrid-array-0.3.0\Cargo.toml`

Caused by:
  feature `edition2024` is required

  The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.81.0).
  Consider trying a more recent nightly release.
  See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.

# Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: C:\home\git\spiral\scripts / $OnError: Continue / $exitcode: 1 / $Error: '' / $ScriptBlock:
'cargo outdated -m $toml @_args'

Paket version 9.0.2+d62083715d89e1fe48337ae2246558ea67c58342
Resolving dependency graph...
Outdated packages found:
  Group: Main
    * Argu 6.2.4 -> 6.2.5
    * Expecto.FsCheck 11.0.0-alpha8 -> 11.0.0-alpha8-fscheck2
    * Fable.Core 4.3 -> 4.5.0
    * FsCheck 3.0.1 -> 2.16.6
    * Microsoft.AspNetCore.App.Ref 9.0.3 -> 10.0.0-preview.2.25164.1
    * Microsoft.AspNetCore.Connections.Abstractions 7.0 -> 10.0.0-preview.2.25164.1
    * Microsoft.AspNetCore.Http.Connections.Client 7.0 -> 10.0.0-preview.2.25164.1
    * Microsoft.AspNetCore.Http.Connections.Common 7.0 -> 10.0.0-preview.2.25164.1
    * Microsoft.AspNetCore.SignalR.Client 7.0 -> 10.0.0-preview.2.25164.1
    * Microsoft.AspNetCore.SignalR.Client.Core 7.0 -> 10.0.0-preview.2.25164.1
    * Microsoft.AspNetCore.SignalR.Common 7.0 -> 10.0.0-preview.2.25164.1
    * Microsoft.AspNetCore.SignalR.Protocols.Json 7.0 -> 10.0.0-preview.2.25164.1
    * Microsoft.Bcl.AsyncInterfaces 9.0.3 -> 10.0.0-preview.2.25163.2
    * Microsoft.Extensions.DependencyInjection 9.0.3 -> 10.0.0-preview.2.25163.2
    * Microsoft.Extensions.DependencyInjection.Abstractions 9.0.3 -> 10.0.0-preview.2.25163.2
    * Microsoft.Extensions.Features 7.0 -> 10.0.0-preview.2.25164.1
    * Microsoft.Extensions.Logging 9.0.3 -> 10.0.0-preview.2.25163.2
    * Microsoft.Extensions.Logging.Abstractions 9.0.3 -> 10.0.0-preview.2.25163.2
    * Microsoft.Extensions.Options 9.0.3 -> 10.0.0-preview.2.25163.2
    * Microsoft.Extensions.Primitives 9.0.3 -> 10.0.0-preview.2.25163.2
    * System.CodeDom 9.0.3 -> 10.0.0-preview.2.25163.2
    * System.IO.Pipelines 9.0.3 -> 10.0.0-preview.2.25163.2
    * System.Management 7.0 -> 10.0.0-preview.2.25163.2
    * System.Threading.Channels 9.0.3 -> 10.0.0-preview.2.25163.2
    * System.Threading.Tasks.Extensions 4.6.1 -> 4.6.2
Total time taken: 45 seconds

CheckToml / toml: C:\home\git\polyglot\workspace\Cargo.toml
chat_contract_tests
================
Name                        Project                        Compat   Latest   Kind    Platform
----                        -------                        ------   ------   ----    --------
ahash                       0.7.8                          Removed  ---      Normal  ---
android-tzdata              0.1.1                          Removed  ---      Normal  cfg(target_os = "android")
android_system_properties   0.1.5                          Removed  ---      Normal  cfg(target_os = "android")
autocfg                     1.4.0                          Removed  ---      Build   ---
bumpalo                     3.16.0                         Removed  ---      Normal  ---
cc                          1.2.4                          Removed  ---      Build   ---
cfg-if                      1.0.0                          Removed  ---      Normal  ---
chrono                      0.4.39                         Removed  ---      Normal  ---
core-foundation-sys         0.8.7                          Removed  ---      Normal  cfg(any(target_os = "macos", target_os = "ios"))
equivalent                  1.0.1                          ---      Removed  Normal  ---
getrandom                   0.2.15                         Removed  ---      Normal  cfg(any(target_os = "linux", target_os = "android", target_os = "windows", target_os = "macos", target_os = "ios", target_os = "freebsd", target_os = "openbsd", target_os = "netbsd", target_os = "dragonfly", target_os = "solaris", target_os = "illumos", target_os = "fuchsia", target_os = "redox", target_os = "cloudabi", target_os = "haiku", target_os = "vxworks", target_os = "emscripten", target_os = "wasi"))
hashbrown                   0.12.3                         0.15.2   ---      Normal  ---
hashbrown                   0.15.2                         ---      0.12.3   Normal  ---
iana-time-zone              0.1.61                         Removed  ---      Normal  cfg(unix)
iana-time-zone-haiku        0.1.2                          Removed  ---      Normal  cfg(target_os = "haiku")
indexmap                    1.9.3                          2.7.0    ---      Normal  ---
indexmap                    2.7.0                          ---      1.9.3    Normal  ---
jobserver                   0.1.32                         Removed  ---      Normal  ---
js-sys                      0.3.76                         Removed  ---      Normal  cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))
js-sys                      0.3.76                         Removed  ---      Normal  cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi"))))
js-sys                      0.3.76                         Removed  ---      Normal  cfg(all(target_arch = "wasm32", target_os = "unknown"))
libc                        0.2.168                        Removed  ---      Normal  ---
libc                        0.2.168                        Removed  ---      Normal  cfg(unix)
libm                        0.2.11                         Removed  ---      Normal  ---
log                         0.4.22                         Removed  ---      Normal  ---
near-sandbox-utils          0.8.0                          0.9.0    ---      Build   ---
near-sandbox-utils          0.9.0                          ---      0.8.0    Normal  ---
num-traits                  0.2.19                         Removed  ---      Normal  ---
once_cell                   1.20.2                         Removed  ---      Normal  ---
once_cell                   1.20.2                         Removed  ---      Normal  cfg(not(all(target_arch = "arm", target_os = "none")))
proc-macro2                 1.0.92                         Removed  ---      Normal  ---
quote                       1.0.37                         Removed  ---      Normal  ---
serde                       1.0.216                        Removed  ---      Normal  ---
serde_derive                1.0.216                        Removed  ---      Normal  ---
shlex                       1.3.0                          Removed  ---      Normal  ---
syn                         2.0.90                         Removed  ---      Normal  ---
unicode-ident               1.0.14                         Removed  ---      Normal  ---
version_check               0.9.5                          Removed  ---      Build   ---
wasi                        0.11.0+wasi-snapshot-preview1  Removed  ---      Normal  cfg(target_os = "wasi")
wasm-bindgen                0.2.99                         Removed  ---      Normal  ---
wasm-bindgen                0.2.99                         Removed  ---      Normal  cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))
wasm-bindgen                0.2.99                         Removed  ---      Normal  cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi"))))
wasm-bindgen                0.2.99                         Removed  ---      Normal  cfg(all(target_arch = "wasm32", target_os = "unknown"))
wasm-bindgen-backend        0.2.99                         Removed  ---      Normal  ---
wasm-bindgen-macro          0.2.99                         Removed  ---      Normal  ---
wasm-bindgen-macro-support  0.2.99                         Removed  ---      Normal  ---
wasm-bindgen-shared         0.2.99                         Removed  ---      Normal  ---
windows-core                0.52.0                         Removed  ---      Normal  cfg(target_os = "windows")
windows-targets             0.52.6                         Removed  ---      Normal  ---
windows-targets             0.52.6                         Removed  ---      Normal  cfg(windows)
windows_aarch64_gnullvm     0.52.6                         Removed  ---      Normal  aarch64-pc-windows-gnullvm
windows_aarch64_msvc        0.52.6                         Removed  ---      Normal  cfg(all(target_arch = "aarch64", target_env = "msvc", not(windows_raw_dylib)))
windows_i686_gnu            0.52.6                         Removed  ---      Normal  cfg(all(target_arch = "x86", target_env = "gnu", not(target_abi = "llvm"), not(windows_raw_dylib)))
windows_i686_gnullvm        0.52.6                         Removed  ---      Normal  i686-pc-windows-gnullvm
windows_i686_msvc           0.52.6                         Removed  ---      Normal  cfg(all(target_arch = "x86", target_env = "msvc", not(windows_raw_dylib)))
windows_x86_64_gnu          0.52.6                         Removed  ---      Normal  cfg(all(target_arch = "x86_64", target_env = "gnu", not(target_abi = "llvm"), not(windows_raw_dylib)))
windows_x86_64_gnullvm      0.52.6                         Removed  ---      Normal  x86_64-pc-windows-gnullvm
windows_x86_64_msvc         0.52.6                         Removed  ---      Normal  cfg(all(any(target_arch = "x86_64", target_arch = "arm64ec"), target_env = "msvc", not(windows_raw_dylib)))

CheckToml / toml: C:\home\git\polyglot\apps\chat\contract\Cargo.toml
error: failed to download `hybrid-array v0.3.0`

Caused by:
  unable to get packages from source

Caused by:
  failed to parse manifest at `C:\Users\i574n\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\hybrid-array-0.3.0\Cargo.toml`

Caused by:
  feature `edition2024` is required

  The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.81.0).
  Consider trying a more recent nightly release.
  See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.

# Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: C:\home\git\polyglot\scripts / $OnError: Continue / $exitcode: 1 / $Error: '' / $ScriptBlock:
'cargo outdated -m $toml @_args'


CheckToml / toml: C:\home\git\polyglot\apps\chat\contract\tests\Cargo.toml
error: failed to download `hybrid-array v0.3.0`

Caused by:
  unable to get packages from source

Caused by:
  failed to parse manifest at `C:\Users\i574n\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\hybrid-array-0.3.0\Cargo.toml`

Caused by:
  feature `edition2024` is required

  The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.81.0).
  Consider trying a more recent nightly release.
  See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.

# Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: C:\home\git\polyglot\scripts / $OnError: Continue / $exitcode: 1 / $Error: '' / $ScriptBlock:
'cargo outdated -m $toml @_args'


CheckToml / toml: C:\home\git\polyglot\apps\plot\Cargo.toml
error: failed to download `hybrid-array v0.3.0`

Caused by:
  unable to get packages from source

Caused by:
  failed to parse manifest at `C:\Users\i574n\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\hybrid-array-0.3.0\Cargo.toml`

Caused by:
  feature `edition2024` is required

  The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.81.0).
  Consider trying a more recent nightly release.
  See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.

# Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: C:\home\git\polyglot\scripts / $OnError: Continue / $exitcode: 1 / $Error: '' / $ScriptBlock:
'cargo outdated -m $toml @_args'


CheckJson / json: C:/home/git/polyglot
$ npm-check-updates --target greatest
Using bun
Checking C:\home\git\polyglot\package.json


 @types/node          ~22.10  →    ~22.13
 npm-check-updates  ~17.1.14  →  ~17.1.16

Run ncu --target greatest -u to upgrade package.json

CheckJson / json: C:/home/git/polyglot/apps/ipfs
$ npm-check-updates --target greatest
Using bun
Checking C:\home\git\polyglot\apps\ipfs\package.json


 @types/node          ~22.10  →    ~22.13
 npm-check-updates  ~17.1.14  →  ~17.1.16

Run ncu --target greatest -u to upgrade package.json

CheckJson / json: C:/home/git/polyglot/apps/spiral/temp/extension
$ npm-check-updates --target greatest
Using bun
Checking C:\home\git\polyglot\apps\spiral\temp\extension\package.json


 @playwright/test     1.44.0  →  1.52.0-alpha-2025-03-29
 @types/chrome      ~0.0.268  →                 ~0.0.313
 npm-check-updates  ~17.1.14  →                 ~17.1.16

Run ncu --target greatest -u to upgrade package.json

CheckJson / json: C:/home/git/polyglot/apps/spiral/vscode
$ npm-check-updates --target greatest
Using bun
Checking C:\home\git\polyglot\apps\spiral\vscode\package.json


 @types/node          ~22.10  →    ~22.13
 @types/vscode         ~1.96  →     ~1.98
 npm-check-updates  ~17.1.14  →  ~17.1.16

Run ncu --target greatest -u to upgrade package.json

CheckJson / json: C:/home/git/polyglot/deps/The-Spiral-Language/VS Code Plugin
$ npm-check-updates --target greatest
Checking C:\home\git\polyglot\deps\The-Spiral-Language\VS Code Plugin\package.json


 @microsoft/signalr     8.0.0  →     8.0.7
 @types/node           ~22.10  →    ~22.13
 @types/vscode          ~1.95  →     ~1.98
 @vscode/vsce            ~3.2  →      ~3.3
 esbuild                ~0.24  →     ~0.25
 npm-check-updates   ~17.1.14  →  ~17.1.16
 portfinder           ^1.0.32  →   ^1.0.35

Run ncu --target greatest -u to upgrade package.json

CheckToml / toml: C:\home\git\dice\Cargo.toml / _args: -w
dice_contract
================
Name            Project  Compat   Latest   Kind    Platform
----            -------  ------   ------   ----    --------
allocator-api2  0.2.20   Removed  Removed  Normal  ---
equivalent      1.0.1    Removed  Removed  Normal  ---
foldhash        0.1.3    Removed  Removed  Normal  ---

dice_contract_lib
================
Name            Project  Compat   Latest   Kind    Platform
----            -------  ------   ------   ----    --------
allocator-api2  0.2.20   Removed  Removed  Normal  ---
equivalent      1.0.1    Removed  Removed  Normal  ---
foldhash        0.1.3    Removed  Removed  Normal  ---

fable_library_rust
================
Name              Project                        Compat   Latest   Kind    Platform
----              -------                        ------   ------   ----    --------
ahash             0.7.8                          Removed  Removed  Normal  ---
aho-corasick      1.1.3                          Removed  Removed  Normal  ---
allocator-api2    0.2.20                         Removed  Removed  Normal  ---
arrayvec          0.7.6                          Removed  Removed  Normal  ---
autocfg           1.4.0                          Removed  Removed  Build   ---
bitvec            1.0.1                          Removed  Removed  Normal  ---
borsh             1.5.3                          Removed  Removed  Normal  ---
borsh-derive      1.5.3                          Removed  Removed  Normal  ---
bytecheck         0.6.12                         Removed  Removed  Normal  ---
bytecheck_derive  0.6.12                         Removed  Removed  Normal  ---
byteorder         1.5.0                          Removed  Removed  Normal  ---
bytes             1.10.1                         Removed  Removed  Normal  ---
cfg-if            1.0.0                          Removed  Removed  Normal  ---
cfg_aliases       0.2.1                          Removed  Removed  Build   ---
equivalent        1.0.1                          Removed  Removed  Normal  ---
foldhash          0.1.3                          Removed  Removed  Normal  ---
funty             2.0.0                          Removed  Removed  Normal  ---
getrandom         0.2.15                         Removed  Removed  Normal  ---
getrandom         0.2.15                         Removed  Removed  Normal  cfg(any(target_os = "linux", target_os = "android", target_os = "windows", target_os = "macos", target_os = "ios", target_os = "freebsd", target_os = "openbsd", target_os = "netbsd", target_os = "dragonfly", target_os = "solaris", target_os = "illumos", target_os = "fuchsia", target_os = "redox", target_os = "cloudabi", target_os = "haiku", target_os = "vxworks", target_os = "emscripten", target_os = "wasi"))
hashbrown         0.12.3                         Removed  Removed  Normal  ---
hashbrown         0.15.1                         Removed  Removed  Normal  ---
indexmap          2.6.0                          Removed  Removed  Normal  ---
itoa              1.0.11                         Removed  Removed  Normal  ---
libc              0.2.162                        Removed  Removed  Normal  cfg(unix)
memchr            2.7.4                          Removed  Removed  Normal  ---
num-bigint        0.4.6                          Removed  Removed  Normal  ---
num-integer       0.1.46                         Removed  Removed  Normal  ---
num-traits        0.2.19                         Removed  Removed  Normal  ---
once_cell         1.20.2                         Removed  Removed  Normal  ---
once_cell         1.20.2                         Removed  Removed  Normal  cfg(not(all(target_arch = "arm", target_os = "none")))
ppv-lite86        0.2.20                         Removed  Removed  Normal  ---
proc-macro-crate  3.2.0                          Removed  Removed  Normal  ---
proc-macro2       1.0.89                         Removed  Removed  Normal  ---
ptr_meta          0.1.4                          Removed  Removed  Normal  ---
ptr_meta_derive   0.1.4                          Removed  Removed  Normal  ---
quote             1.0.37                         Removed  Removed  Normal  ---
radium            0.7.0                          Removed  Removed  Normal  ---
rand              0.8.5                          Removed  Removed  Normal  ---
rand_chacha       0.3.1                          Removed  Removed  Normal  ---
rand_core         0.6.4                          Removed  Removed  Normal  ---
regex             1.11.1                         Removed  Removed  Normal  ---
regex-automata    0.4.9                          Removed  Removed  Normal  ---
regex-syntax      0.8.5                          Removed  Removed  Normal  ---
rend              0.4.2                          Removed  Removed  Normal  ---
rkyv              0.7.45                         Removed  Removed  Normal  ---
rkyv_derive       0.7.45                         Removed  Removed  Normal  ---
rust_decimal      1.36.0                         Removed  Removed  Normal  ---
ryu               1.0.18                         Removed  Removed  Normal  ---
seahash           4.1.0                          Removed  Removed  Normal  ---
serde             1.0.215                        Removed  Removed  Normal  ---
serde_derive      1.0.215                        Removed  Removed  Normal  ---
serde_json        1.0.132                        Removed  Removed  Normal  ---
serde_spanned     0.6.8                          Removed  Removed  Normal  ---
simdutf8          0.1.5                          Removed  Removed  Normal  ---
syn               1.0.109                        Removed  Removed  Normal  ---
syn               2.0.87                         Removed  Removed  Normal  ---
tap               1.0.1                          Removed  Removed  Normal  ---
tinyvec           1.8.0                          Removed  Removed  Normal  ---
tinyvec_macros    0.1.1                          Removed  Removed  Normal  ---
toml_datetime     0.6.8                          Removed  Removed  Normal  ---
toml_edit         0.22.22                        Removed  Removed  Normal  ---
unicode-ident     1.0.13                         Removed  Removed  Normal  ---
uuid              1.11.0                         Removed  Removed  Normal  ---
version_check     0.9.5                          Removed  Removed  Build   ---
wasi              0.11.0+wasi-snapshot-preview1  Removed  Removed  Normal  cfg(target_os = "wasi")
winnow            0.6.20                         Removed  Removed  Normal  ---
wyz               0.5.1                          Removed  Removed  Normal  ---
zerocopy          0.7.35                         Removed  Removed  Normal  ---
zerocopy-derive   0.7.35                         Removed  Removed  Normal  ---

dice_contract_tests
================
Name                        Project  Compat   Latest   Kind    Platform
----                        -------  ------   ------   ----    --------
allocator-api2              0.2.20   Removed  Removed  Normal  ---
android-tzdata              0.1.1    ---      Removed  Normal  cfg(target_os = "android")
android_system_properties   0.1.5    ---      Removed  Normal  cfg(target_os = "android")
autocfg                     1.4.0    ---      Removed  Build   ---
bumpalo                     3.16.0   ---      Removed  Normal  ---
cc                          1.2.1    ---      Removed  Build   ---
cfg-if                      1.0.0    ---      Removed  Normal  ---
chrono                      0.4.38   ---      Removed  Normal  ---
core-foundation-sys         0.8.7    ---      Removed  Normal  cfg(any(target_os = "macos", target_os = "ios"))
equivalent                  1.0.1    Removed  Removed  Normal  ---
foldhash                    0.1.3    Removed  Removed  Normal  ---
hashbrown                   0.15.1   0.12.3   0.12.3   Normal  ---
iana-time-zone              0.1.61   ---      Removed  Normal  cfg(unix)
iana-time-zone-haiku        0.1.2    ---      Removed  Normal  cfg(target_os = "haiku")
indexmap                    2.6.0    1.9.3    1.9.3    Normal  ---
jobserver                   0.1.32   ---      Removed  Normal  ---
js-sys                      0.3.77   ---      Removed  Normal  cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi"))))
js-sys                      0.3.77   ---      Removed  Normal  cfg(all(target_arch = "wasm32", target_os = "unknown"))
libc                        0.2.162  ---      Removed  Normal  ---
libc                        0.2.162  ---      Removed  Normal  cfg(unix)
log                         0.4.22   ---      Removed  Normal  ---
near-sandbox-utils          0.8.0    ---      0.9.0    Build   ---
near-sandbox-utils          0.9.0    0.8.0    ---      Normal  ---
num-traits                  0.2.19   ---      Removed  Normal  ---
once_cell                   1.20.2   ---      Removed  Normal  ---
proc-macro2                 1.0.89   ---      Removed  Normal  ---
quote                       1.0.37   ---      Removed  Normal  ---
rustversion                 1.0.18   ---      Removed  Normal  ---
serde                       1.0.215  ---      Removed  Normal  ---
serde_derive                1.0.215  ---      Removed  Normal  ---
shlex                       1.3.0    ---      Removed  Normal  ---
syn                         2.0.87   ---      Removed  Normal  ---
unicode-ident               1.0.13   ---      Removed  Normal  ---
wasm-bindgen                0.2.100  ---      Removed  Normal  ---
wasm-bindgen                0.2.100  ---      Removed  Normal  cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi"))))
wasm-bindgen                0.2.100  ---      Removed  Normal  cfg(all(target_arch = "wasm32", target_os = "unknown"))
wasm-bindgen-backend        0.2.100  ---      Removed  Normal  ---
wasm-bindgen-macro          0.2.100  ---      Removed  Normal  ---
wasm-bindgen-macro-support  0.2.100  ---      Removed  Normal  ---
wasm-bindgen-shared         0.2.100  ---      Removed  Normal  ---
windows-core                0.52.0   ---      Removed  Normal  cfg(target_os = "windows")
windows-targets             0.52.6   ---      Removed  Normal  ---
windows-targets             0.52.6   ---      Removed  Normal  cfg(windows)
windows_aarch64_gnullvm     0.52.6   ---      Removed  Normal  aarch64-pc-windows-gnullvm
windows_aarch64_msvc        0.52.6   ---      Removed  Normal  cfg(all(target_arch = "aarch64", target_env = "msvc", not(windows_raw_dylib)))
windows_i686_gnu            0.52.6   ---      Removed  Normal  cfg(all(target_arch = "x86", target_env = "gnu", not(target_abi = "llvm"), not(windows_raw_dylib)))
windows_i686_gnullvm        0.52.6   ---      Removed  Normal  i686-pc-windows-gnullvm
windows_i686_msvc           0.52.6   ---      Removed  Normal  cfg(all(target_arch = "x86", target_env = "msvc", not(windows_raw_dylib)))
windows_x86_64_gnu          0.52.6   ---      Removed  Normal  cfg(all(target_arch = "x86_64", target_env = "gnu", not(target_abi = "llvm"), not(windows_raw_dylib)))
windows_x86_64_gnullvm      0.52.6   ---      Removed  Normal  x86_64-pc-windows-gnullvm
windows_x86_64_msvc         0.52.6   ---      Removed  Normal  cfg(all(any(target_arch = "x86_64", target_arch = "arm64ec"), target_env = "msvc", not(windows_raw_dylib)))

dice_ui
================
Name            Project  Compat   Latest   Kind    Platform
----            -------  ------   ------   ----    --------
allocator-api2  0.2.20   Removed  Removed  Normal  ---
equivalent      1.0.1    Removed  Removed  Normal  ---
foldhash        0.1.3    Removed  Removed  Normal  ---

CheckToml / toml: C:\home\git\dice\lib\Cargo.toml / _args: 
error: failed to download `hybrid-array v0.3.0`

Caused by:
  unable to get packages from source

Caused by:
  failed to parse manifest at `C:\Users\i574n\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\hybrid-array-0.3.0\Cargo.toml`

Caused by:
  feature `edition2024` is required

  The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.81.0).
  Consider trying a more recent nightly release.
  See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.

# Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: C:\home\git\dice\scripts / $OnError: Continue / $exitcode: 1 / $Error: '' / $ScriptBlock:
'cargo outdated -m $toml @_args'


CheckToml / toml: C:\home\git\dice\lib\contract\Cargo.toml / _args: 
error: failed to download `hybrid-array v0.3.0`

Caused by:
  unable to get packages from source

Caused by:
  failed to parse manifest at `C:\Users\i574n\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\hybrid-array-0.3.0\Cargo.toml`

Caused by:
  feature `edition2024` is required

  The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.81.0).
  Consider trying a more recent nightly release.
  See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.

# Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: C:\home\git\dice\scripts / $OnError: Continue / $exitcode: 1 / $Error: '' / $ScriptBlock:
'cargo outdated -m $toml @_args'


CheckToml / toml: C:\home\git\dice\lib\fsharp\Cargo.toml / _args: 
error: failed to download `hybrid-array v0.3.0`

Caused by:
  unable to get packages from source

Caused by:
  failed to parse manifest at `C:\Users\i574n\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\hybrid-array-0.3.0\Cargo.toml`

Caused by:
  feature `edition2024` is required

  The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.81.0).
  Consider trying a more recent nightly release.
  See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.

# Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: C:\home\git\dice\scripts / $OnError: Continue / $exitcode: 1 / $Error: '' / $ScriptBlock:
'cargo outdated -m $toml @_args'


CheckToml / toml: C:\home\git\dice\contract\Cargo.toml / _args: 
error: failed to download `hybrid-array v0.3.0`

Caused by:
  unable to get packages from source

Caused by:
  failed to parse manifest at `C:\Users\i574n\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\hybrid-array-0.3.0\Cargo.toml`

Caused by:
  feature `edition2024` is required

  The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.81.0).
  Consider trying a more recent nightly release.
  See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.

# Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: C:\home\git\dice\scripts / $OnError: Continue / $exitcode: 1 / $Error: '' / $ScriptBlock:
'cargo outdated -m $toml @_args'


CheckToml / toml: C:\home\git\dice\contract\tests\Cargo.toml / _args: 
error: failed to download `hybrid-array v0.3.0`

Caused by:
  unable to get packages from source

Caused by:
  failed to parse manifest at `C:\Users\i574n\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\hybrid-array-0.3.0\Cargo.toml`

Caused by:
  feature `edition2024` is required

  The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.81.0).
  Consider trying a more recent nightly release.
  See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.

# Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: C:\home\git\dice\scripts / $OnError: Continue / $exitcode: 1 / $Error: '' / $ScriptBlock:
'cargo outdated -m $toml @_args'


CheckToml / toml: C:\home\git\dice\ui\Cargo.toml / _args: 
error: failed to download `hybrid-array v0.3.0`

Caused by:
  unable to get packages from source

Caused by:
  failed to parse manifest at `C:\Users\i574n\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\hybrid-array-0.3.0\Cargo.toml`

Caused by:
  feature `edition2024` is required

  The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.81.0).
  Consider trying a more recent nightly release.
  See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.

# Invoke-Block / $retry: 1/1 / $Location:  / Get-Location: C:\home\git\dice\scripts / $OnError: Continue / $exitcode: 1 / $Error: '' / $ScriptBlock:
'cargo outdated -m $toml @_args'


CheckJson / json: C:/home/git/dice/ui
$ npm-check-updates --target greatest
Using bun
Checking C:\home\git\dice\ui\package.json


 @types/node          ~22.10  →    ~22.13
 npm-check-updates  ~17.1.14  →  ~17.1.16
 tailwindcss            ~3.4  →      ~4.0

Run ncu --target greatest -u to upgrade package.json

CheckJson / json: C:/home/git/dice/ui/e2e
$ npm-check-updates --target greatest
Using bun
Checking C:\home\git\dice\ui\e2e\package.json


 @playwright/test     1.44.0  →  1.52.0-alpha-2025-03-29
 npm-check-updates  ~17.1.14  →                 ~17.1.16

Run ncu --target greatest -u to upgrade package.json
In [ ]:
{ pwsh publish.ps1 } | Invoke-Block
building file list ... done
created directory ../dist
./
.editorconfig
.gitattributes
.gitignore
CODE_OF_CONDUCT.md
CONTRIBUTING.md
README.md
i574n-deps.code-workspace
i574n.code-workspace
init.ps1
outdated.ps1
publish.ps1
workflow.dib
workflow.dib.html
workflow.dib.ipynb
workflow.ps1
.devcontainer/
.devcontainer/Dockerfile
.devcontainer/devcontainer.json
.github/
.github/FUNDING.yml
.github/workflows/
.github/workflows/gh-pages.yml
profile/
profile/README.md
scripts/
scripts/build.ps1
scripts/init.ps1
scripts/outdated.ps1
scripts/publish.ps1
scripts/workflow.dib
scripts/workflow.dib.html
scripts/workflow.dib.ipynb
scripts/workflow.ps1

sent 29,817,569 bytes  received 596 bytes  59,636,330.00 bytes/sec
total size is 29,811,586  speedup is 1.00
building file list ... done
created directory ../dist
./
skipping non-regular file ".obsidian/plugins/obsidian-custom-frames/main.js"
.editorconfig
.gitattributes
.gitignore
.markdownlint.json
LICENSE
README.md
fleek.config.json
init.ps1
publish-fleek.ps1
publish.ps1
workflow.ps1
.babashka/
.babashka/bb.edn
.babashka/nbb.edn
.devcontainer/
.devcontainer/Dockerfile
.devcontainer/devcontainer.json
.github/
.github/workflows/
.github/workflows/gh-pages.yml
.obsidian/
.obsidian/app.json
.obsidian/appearance.json
.obsidian/bookmarks.json
.obsidian/community-plugins.json
.obsidian/core-plugins.json
.obsidian/daily-notes.json
.obsidian/graph.json
.obsidian/hotkeys.json
.obsidian/workspace-mobile.json
.obsidian/workspace.json
.obsidian/plugins/
.obsidian/plugins/babashka/
.obsidian/plugins/babashka/data.json
.obsidian/plugins/babashka/main.js
.obsidian/plugins/babashka/manifest.json
.obsidian/plugins/better-word-count/
.obsidian/plugins/better-word-count/main.js
.obsidian/plugins/better-word-count/manifest.json
.obsidian/plugins/better-word-count/styles.css
.obsidian/plugins/calendar/
.obsidian/plugins/calendar/data.json
.obsidian/plugins/calendar/main.js
.obsidian/plugins/calendar/manifest.json
.obsidian/plugins/convert-url-to-iframe/
.obsidian/plugins/convert-url-to-iframe/main.js
.obsidian/plugins/convert-url-to-iframe/manifest.json
.obsidian/plugins/convert-url-to-iframe/styles.css
.obsidian/plugins/dataview/
.obsidian/plugins/dataview/main.js
.obsidian/plugins/dataview/manifest.json
.obsidian/plugins/dataview/styles.css
.obsidian/plugins/file-indicators/
.obsidian/plugins/file-indicators/data.json
.obsidian/plugins/file-indicators/main.js
.obsidian/plugins/file-indicators/manifest.json
.obsidian/plugins/file-indicators/styles.css
.obsidian/plugins/key-promoter/
.obsidian/plugins/key-promoter/data.json
.obsidian/plugins/key-promoter/main.js
.obsidian/plugins/key-promoter/manifest.json
.obsidian/plugins/novel-word-count/
.obsidian/plugins/novel-word-count/data.json
.obsidian/plugins/novel-word-count/main.js
.obsidian/plugins/novel-word-count/manifest.json
.obsidian/plugins/novel-word-count/styles.css
.obsidian/plugins/obsidian-checklist-plugin/
.obsidian/plugins/obsidian-checklist-plugin/main.js
.obsidian/plugins/obsidian-checklist-plugin/manifest.json
.obsidian/plugins/obsidian-checklist-plugin/styles.css
.obsidian/plugins/obsidian-custom-file-extensions-plugin/
.obsidian/plugins/obsidian-custom-file-extensions-plugin/data.json
.obsidian/plugins/obsidian-custom-file-extensions-plugin/main.js
.obsidian/plugins/obsidian-custom-file-extensions-plugin/manifest.json
.obsidian/plugins/obsidian-custom-frames/
.obsidian/plugins/obsidian-custom-frames/_main.js
.obsidian/plugins/obsidian-custom-frames/data.json
.obsidian/plugins/obsidian-custom-frames/manifest.json
.obsidian/plugins/obsidian-custom-frames/styles.css
.obsidian/plugins/obsidian-day-planner/
.obsidian/plugins/obsidian-day-planner/data.json
.obsidian/plugins/obsidian-day-planner/main.js
.obsidian/plugins/obsidian-day-planner/manifest.json
.obsidian/plugins/obsidian-day-planner/styles.css
.obsidian/plugins/obsidian-git/
.obsidian/plugins/obsidian-git/data.json
.obsidian/plugins/obsidian-git/main.js
.obsidian/plugins/obsidian-git/manifest.json
.obsidian/plugins/obsidian-git/styles.css
.obsidian/plugins/obsidian-html-plugin/
.obsidian/plugins/obsidian-html-plugin/main.js
.obsidian/plugins/obsidian-html-plugin/manifest.json
.obsidian/plugins/obsidian-kanban/
.obsidian/plugins/obsidian-kanban/main.js
.obsidian/plugins/obsidian-kanban/manifest.json
.obsidian/plugins/obsidian-kanban/styles.css
.obsidian/plugins/obsidian-linter/
.obsidian/plugins/obsidian-linter/data.json
.obsidian/plugins/obsidian-linter/main.js
.obsidian/plugins/obsidian-linter/manifest.json
.obsidian/plugins/obsidian-linter/styles.css
.obsidian/plugins/obsidian-mind-map/
.obsidian/plugins/obsidian-mind-map/main.js
.obsidian/plugins/obsidian-mind-map/manifest.json
.obsidian/plugins/obsidian-plugin-toc/
.obsidian/plugins/obsidian-plugin-toc/data.json
.obsidian/plugins/obsidian-plugin-toc/main.js
.obsidian/plugins/obsidian-plugin-toc/manifest.json
.obsidian/plugins/obsidian-prominent-starred-files/
.obsidian/plugins/obsidian-prominent-starred-files/main.js
.obsidian/plugins/obsidian-prominent-starred-files/manifest.json
.obsidian/plugins/obsidian-prominent-starred-files/styles.css
.obsidian/plugins/obsidian-tasks-plugin/
.obsidian/plugins/obsidian-tasks-plugin/data.json
.obsidian/plugins/obsidian-tasks-plugin/main.js
.obsidian/plugins/obsidian-tasks-plugin/manifest.json
.obsidian/plugins/obsidian-tasks-plugin/styles.css
.obsidian/plugins/obsidian-version-history-diff/
.obsidian/plugins/obsidian-version-history-diff/main.js
.obsidian/plugins/obsidian-version-history-diff/manifest.json
.obsidian/plugins/obsidian-version-history-diff/styles.css
.obsidian/plugins/oz-image-plugin/
.obsidian/plugins/oz-image-plugin/data.json
.obsidian/plugins/oz-image-plugin/main.js
.obsidian/plugins/oz-image-plugin/manifest.json
.obsidian/plugins/oz-image-plugin/styles.css
.obsidian/plugins/recent-files-obsidian/
.obsidian/plugins/recent-files-obsidian/data.json
.obsidian/plugins/recent-files-obsidian/main.js
.obsidian/plugins/recent-files-obsidian/manifest.json
.obsidian/plugins/recent-files-obsidian/styles.css
.obsidian/plugins/remember-cursor-position/
.obsidian/plugins/remember-cursor-position/cursor-positions.json
.obsidian/plugins/remember-cursor-position/main.js
.obsidian/plugins/remember-cursor-position/manifest.json
.obsidian/plugins/reveal-active-file-button/
.obsidian/plugins/reveal-active-file-button/main.js
.obsidian/plugins/reveal-active-file-button/manifest.json
.obsidian/plugins/terminal/
.obsidian/plugins/terminal/data.json
.obsidian/plugins/terminal/main.js
.obsidian/plugins/terminal/manifest.json
.obsidian/plugins/terminal/styles.css
data/
data/ai/
data/ai/ai.md
data/ai/ai.mp3.md
data/ai/ai.pdf.md
data/ai/chatgpt.html.md
data/ai/chatgpt.md
data/ai/chatgpt.toml
data/ai/gpt3.html.md
data/ai/rhyme 6.md
data/apple/
data/apple/apple.html.md
data/apple/apple.i574n.md
data/art/
data/art/art.md
data/astrology/
data/astrology/astrology.fc1943s.md
data/astrology/astrology.html.md
data/astrology/astrology.md
data/astronomy/
data/astronomy/astronomy.md
data/biology/
data/biology/biology.mp3.md
data/books/
data/books/books.md
data/business/
data/business/business.md
data/chat/
data/chat/AdySweet.html.md
data/chat/Angrykat.html.md
data/chat/AubriToffee.html.md
data/chat/AwesomeEly.html.md
data/chat/BirthdayLexxx.html.md
data/chat/Blond3B.html.md
data/chat/Brithanybrown.html.md
data/chat/Cherrycute666.html.md
data/chat/Dakota_Blare.html.md
data/chat/EffyTudor.html.md
data/chat/Fairy_Sweet.html.md
data/chat/GirlOffGrid.html.md
data/chat/HinakoHime.html.md
data/chat/ImperialKiss.html.md
data/chat/JALYN.html.md
data/chat/Jully_Lov.html.md
data/chat/Kitty.html.md
data/chat/Luckyystrike.html.md
data/chat/MissLullu.html.md
data/chat/Missbaby8.html.md
data/chat/NicolePowell.html.md
data/chat/Olivia.html.md
data/chat/Red_Flower203.html.md
data/chat/RocknRose.html.md
data/chat/RorrieGomez.html.md
data/chat/Stacy_x3.html.md
data/chat/Stephanie.html.md
data/chat/TinaHale.html.md
data/chat/WhitneyR.html.md
data/chat/Yarrow.html.md
data/chat/Yukenzi.html.md
data/chat/aliceisonfire.html.md
data/chat/chloewildd.html.md
data/chat/diney_.html.md
data/chat/kittennmoon.html.md
data/chat/mfc.html.md
data/chores/
data/chores/chores.md
data/cliparts/
data/cliparts/avatars.i574n.png.md
data/cliparts/cliparts.html.md
data/clojure/
data/clojure/clojure.md
data/community/
data/community/community.md
data/community/netiquette_pt-br.md
data/compilers/
data/compilers/compilers.md
data/compilers/compilers.pdf.md
data/cryptography/
data/cryptography/cryptography.md
data/dance/
data/dance/dance.md
data/dialects/
data/dialects/dialects.md
data/dialects/dialects.pdf.md
data/dialects/english.md
data/dialects/korean.html.md
data/dialects/korean.md
data/dialects/korean.mp3.md
data/dialects/korean.mp4.md
data/dialects/korean.pdf.md
data/dialects/korean.png.md
data/dialects/portuguese.md
data/dialects/spanish.md
data/dotnet/
data/dotnet/dotnet.md
data/doujinshi/
data/doujinshi/doujinshi.md
data/drugs/
data/drugs/drugs.html.md
data/drugs/drugs.md
data/drugs/drugs.mp3.md
data/drugs/drugs.pdf.md
data/drugs/selva-verde_pt-br.md
data/economy/
data/economy/만리마속도_pt-br.md
data/engineering/
data/engineering/engineering.mp3.md
data/ethics/
data/ethics/ethics.mp3.md
data/exercism/
data/exercism/exercism.html.md
data/facebook/
data/facebook/facebook.fc1943s.md
data/facebook/facebook.html.md
data/fashion/
data/fashion/fashion.md
data/fiction/
data/fiction/acting.md
data/fiction/animation.md
data/fiction/comics.md
data/fiction/fiction.md
data/fiction/fiction.mp3.md
data/fiction/series.mp4.md
data/fiction/stories.md
data/filmow/
data/filmow/filmow.fc1943s.md
data/filmow/filmow.html.md
data/fitness/
data/fitness/fitness.md
data/food/
data/food/food.md
data/food/food.mp3.md
data/gamedev/
data/gamedev/gamedev.pdf.md
data/gaming/
data/gaming/gaming.7z.md
data/git/
data/git/git.md
data/github/
data/github/github.fc1943s.md
data/github/github.html.md
data/github/github.md
data/google/
data/google/google.fc1943s.md
data/google/google.i574n.md
data/hardware/
data/hardware/hardware.html.md
data/hardware/hardware.md
data/hip-hop/
data/hip-hop/complexity-and-competition_pt-br.md
data/hip-hop/hip-hop.md
data/history/
data/history/history.md
data/history/history.mp3.md
data/hunting/
data/hunting/hunting.md
data/identity/
data/identity/identity.fc1943s.7z.md
data/identity/identity.fc1943s.pdf.md
data/identity/identity.fc1943s.png.md
data/identity/identity.프리마.toml
data/kakao/
data/kakao/kakao.html.md
data/kakao/kakao.i574n.md
data/lastfm/
data/lastfm/lastfm.fc1943s.html.md
data/lastfm/lastfm.fc1943s.md
data/lastfm/lastfm.html.md
data/linux/
data/linux/linux.md
data/magic/
data/magic/magic.html.md
data/magic/magic.md
data/magic/magic.pdf.md
data/magic/o-caminho-demonico-dos-dados_pt-br.md
data/magic/the-book-of-remembering_pt-br.md
data/martial-arts/
data/martial-arts/martial-arts.md
data/math/
data/math/math.md
data/mercadolivre/
data/mercadolivre/mercadolivre.html.md
data/mercadolivre/mercadolivre.i574n.md
data/microsoft/
data/microsoft/microsoft.html.md
data/microsoft/microsoft.i574n.md
data/motorcycle/
data/motorcycle/motorcycle.md
data/music/
data/music/mecha-haze.7z.md
data/music/mecha-haze.html.md
data/music/mecha-haze.pdf.md
data/music/mixtape-pluto.md
data/music/music.md
data/music/music.mp3.md
data/navigation/
data/navigation/navigation.html.md
data/navigation/navigation.png.md
data/nix/
data/nix/nix.html.md
data/nix/nix.md
data/numbers/
data/numbers/numbers.md
data/personality/
data/personality/mbti.toml
data/personality/personality.html.md
data/personality/personality.md
data/personality/personality.pdf.md
data/personality/personality.png.md
data/philosophy/
data/philosophy/philosophy.mp3.md
data/physics/
data/physics/physics.md
data/politics/
data/politics/hanauittang.md
data/politics/politics.md
data/politics/politics.mp3.md
data/politics/politics.pdf.md
data/politics/politics.png.md
data/programming/
data/programming/polyglot.html.md
data/programming/polyglot.md
data/programming/powershell.md
data/programming/programming.md
data/programming/programming.mp3.md
data/programming/rust.md
data/programming/rust.pdf.md
data/programming/systems.md
data/protonmail/
data/protonmail/protonmail.fc1943s.md
data/protonmail/protonmail.html.md
data/protonmail/protonmail.i574n.md
data/psychology/
data/psychology/inner-inferno_pt-br.md
data/psychology/psychology.md
data/psychology/psychology.mp3.md
data/psychology/psychology.pdf.md
data/reddit/
data/reddit/reddit.html.md
data/reddit/reddit.i574n.md
data/relationships/
data/relationships/relationships.md
data/religion/
data/religion/hinduism.md
data/religion/kimbanda.md
data/religion/kimbanda.pdf.md
data/religion/maya.md
data/religion/religion.md
data/religion/religion.pdf.md
data/science/
data/science/science.md
data/security/
data/security/security.md
data/sex/
data/sex/sex.html.md
data/sex/sex.md
data/sex/sex.mp3.md
data/sex/sex.pdf.md
data/spiral/
data/spiral/spiral.html.md
data/spirituality/
data/spirituality/gvk_en-us.md
data/spirituality/gvk_pt-br.md
data/spirituality/ressurection_pt-br.md
data/spirituality/spirituality.md
data/spirituality/spirituality.mp4.md
data/spirituality/spirituality.pdf.md
data/spirituality/the-book-of-innocence_pt-br.md
data/streaming/
data/streaming/streaming.md
data/tarot/
data/tarot/tarot.md
data/tarot/tarot.png.md
data/tech/
data/tech/devilopment_pt-br.md
data/tech/tech.epub.md
data/tech/tech.html.md
data/tech/tech.md
data/tech/tech.mp3.md
data/tidal/
data/tidal/tidal.html.md
data/trakt/
data/trakt/trakt.html.md
data/trakt/trakt.i574n.md
data/travel/
data/travel/maps.html.md
data/travel/maps.md
data/travel/maps.png.md
data/travel/north korea.png.md
data/travel/travel.html.md
data/travel/travel.i574n.html.md
data/travel/travel.i574n.md
data/travel/travel.md
data/travel/travel.mp3.md
data/travel/travel.png.md
data/twitter/
data/twitter/twitter.fc1943s.md
data/twitter/twitter.html.md
data/twitter/twitter.i574n.md
data/typing/
data/typing/typing.html.md
data/typing/typing.i574n.md
data/typing/typing.md
data/vim/
data/vim/vimrc.md
data/warez/
data/warez/warez.html.md
data/weather/
data/weather/weather.html.md
data/weather/weather.md
data/web3/
data/web3/near.html.md
data/web3/storage.fc1943s.md
data/web3/storage.html.md
data/web3/web3.fc1943s.7z.md
data/web3/web3.fc1943s.md
data/web3/web3.html.md
data/web3/web3.i574n.md
data/web3/web3.md
data/web3/web3.pdf.md
data/windows/
data/windows/windows.html.md
data/windows/windows.md
data/work/
data/work/cv.fc1943s.md
data/work/cv.fc1943s.pdf.md
data/work/cv_pt-br.fc1943s.md
data/work/work.fc1943s.pdf.md
data/workflow/
data/workflow/tasks.md
data/workflow/test.md
data/workflow/test.toml
data/workflow/vault.fc1943s.7z.md
data/workflow/vault.html.md
data/workflow/vault.md
data/workflow/workflow.md
data/workflow/workflow.mp3.md
data/writing/
data/writing/writing.html.md
data/writing/writing.md
scripts/
scripts/init.ps1
scripts/publish-fleek.ps1
scripts/publish.ps1
scripts/workflow.ps1

sent 266,900,183 bytes  received 7,522 bytes  59,312,823.33 bytes/sec
total size is 266,806,068  speedup is 1.00
vault/scripts/publish.ps1 / targetDir: C:\home\git\vault\target\gh-pages / distDir: C:\home\git\vault/dist / targetDirLog: C:\home\git\vault/target/gh-pages / resolvedTargetDir: C:\home\git\vault\target\gh-pages
fatal: destination path 'gh-pages' already exists and is not an empty directory.
error: cannot pull with rebase: You have unstaged changes.
error: Please commit or stash them.
00:00:00 i #1 documents.main / { args = Array(MutCell(["--source-dir", "C:\home\git\vault", "--dist-dir", "C:\home\git\vault/dist", "--cache-dir", "C:\home\git\vault\target\gh-pages", "--hangul-spec", "por-br"])) }
00:00:00 d #2 documents.run / { source_dir = \\?\C:\home\git\vault; dist_dir = \\?\C:\home\git\vault\dist; cache_dir = \\?\C:\home\git\vault\target\gh-pages; hangul_spec = por-br }
00:00:00 d #3 documents.run / { files_len = 252 }
00:00:00 d #4 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/magic/magic.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/magic/magic.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 d #5 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/fiction/stories.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/fiction/stories.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 d #6 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/ai/ai.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/ai/ai.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 d #7 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/dialects/dialects.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/dialects/dialects.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 d #8 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/windows/windows.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/windows/windows.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 d #9 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/spirituality/gvk_en-us.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/spirituality/gvk_en-us.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 d #10 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/typing/typing.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/typing/typing.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 d #11 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/workflow/vault.fc1943s.7z.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/workflow/vault.fc1943s.7z.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 v #12 > '51563b7ac15182af49fe8a3e4fba27f308d9492a'
00:00:00 v #13 > '49ff14103fb24b78a712c68eda596e167ee58322'
00:00:00 v #13 > '774e2194fe72bc417e8c0e1df440587de46ba008'
00:00:00 v #15 > '8aa274da073635a68a9f909b759505235c2bac57'
00:00:00 v #16 > 'e93e10423e6621a5538596571851d23a593252d3'
00:00:00 v #17 > 'bc664f6fe58e40fdb09e32888ff175b541ca60bb'
00:00:00 v #18 > '099ae9eb8a1733fc1f5da893621fdbb57e5078e0'
00:00:00 v #19 > '92d1d8cd0a34226b7cdf85130b1dd4d1f0423e10'
00:00:00 v #20 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 d #21 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/ai/ai.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/ai/ai.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 v #22 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 v #22 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 v #24 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 v #24 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 v #26 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 v #27 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 d #28 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/fiction/stories.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/fiction/stories.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 d #29 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/magic/magic.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/magic/magic.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 d #29 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/spirituality/gvk_en-us.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/spirituality/gvk_en-us.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 d #31 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/workflow/vault.fc1943s.7z.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/workflow/vault.fc1943s.7z.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 d #32 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/dialects/dialects.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/dialects/dialects.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 d #33 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/typing/typing.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/typing/typing.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 v #34 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 d #35 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/windows/windows.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/windows/windows.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 v #36 > 099ae9eb8a1733fc1f5da893621fdbb57e5078e0
00:00:00 v #37 > 8aa274da073635a68a9f909b759505235c2bac57
00:00:00 v #38 > 51563b7ac15182af49fe8a3e4fba27f308d9492a
00:00:00 v #39 > 92d1d8cd0a34226b7cdf85130b1dd4d1f0423e10
00:00:00 v #40 > bc664f6fe58e40fdb09e32888ff175b541ca60bb
00:00:00 v #41 > 49ff14103fb24b78a712c68eda596e167ee58322
00:00:00 v #42 > e93e10423e6621a5538596571851d23a593252d3
00:00:00 v #43 > 774e2194fe72bc417e8c0e1df440587de46ba008
00:00:00 v #44 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 v #45 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 v #46 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 i #47 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.hangul.md.epub }
00:00:00 i #48 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.fc1943s.7z.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.fc1943s.7z.hangul.md.epub }
00:00:00 i #49 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/stories.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\stories.hangul.md.epub }
00:00:00 v #50 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 v #51 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 v #52 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 d #53 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.fc1943s.7z.hangul.md.epub; new_path = c:/home/git/vault/dist/data/workflow/vault.fc1943s.7z.hangul.md.epub; result = 10026 }
00:00:00 i #54 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.fc1943s.7z.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.fc1943s.7z.hangul.md.pdf }
00:00:00 d #54 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.hangul.md.epub; new_path = c:/home/git/vault/dist/data/ai/ai.hangul.md.epub; result = 77900 }
00:00:00 d #56 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\stories.hangul.md.epub; new_path = c:/home/git/vault/dist/data/fiction/stories.hangul.md.epub; result = 150468 }
00:00:00 i #57 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.hangul.md.pdf }
00:00:00 i #58 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/windows/windows.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\windows.html.hangul.md.epub }
00:00:00 i #59 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/gvk_en-us.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gvk_en-us.hangul.md.epub }
00:00:00 i #60 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/stories.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\stories.hangul.md.pdf }
00:00:00 i #61 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.pdf.hangul.md.epub }
00:00:00 d #62 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.fc1943s.7z.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/workflow/vault.fc1943s.7z.hangul.md.pdf; result = 8957 }
00:00:00 i #63 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.fc1943s.7z.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.fc1943s.7z.hangul.md.html }
00:00:00 d #64 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\windows.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/windows/windows.html.hangul.md.epub; result = 5584 }
00:00:00 d #65 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/ai/ai.hangul.md.pdf; result = 270471 }
00:00:00 i #66 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.hangul.md.html }
00:00:00 d #67 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gvk_en-us.hangul.md.epub; new_path = c:/home/git/vault/dist/data/spirituality/gvk_en-us.hangul.md.epub; result = 305445 }
00:00:00 d #68 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.fc1943s.7z.hangul.md.html; new_path = c:/home/git/vault/dist/data/workflow/vault.fc1943s.7z.hangul.md.html; result = 22716 }
00:00:00 d #69 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/magic/magic.pdf.hangul.md.epub; result = 6752 }
00:00:00 i #69 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/windows/windows.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\windows.html.hangul.md.pdf }
00:00:00 d #71 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\stories.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/fiction/stories.hangul.md.pdf; result = 209486 }
00:00:00 i #72 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/gvk_en-us.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gvk_en-us.hangul.md.pdf }
00:00:00 i #73 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.fc1943s.7z.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.fc1943s.7z.md.epub }
00:00:00 i #74 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.pdf.hangul.md.pdf }
00:00:00 i #75 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/stories.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\stories.hangul.md.html }
00:00:00 d #76 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.hangul.md.html; new_path = c:/home/git/vault/dist/data/ai/ai.hangul.md.html; result = 331977 }
00:00:00 i #77 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.md.epub }
00:00:00 d #78 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\windows.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/windows/windows.html.hangul.md.pdf; result = 3996 }
00:00:00 v #79 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 v #80 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 d #81 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/magic/magic.pdf.hangul.md.pdf; result = 6682 }
00:00:00 d #82 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.fc1943s.7z.md.epub; new_path = c:/home/git/vault/dist/data/workflow/vault.fc1943s.7z.md.epub; result = 9459 }
00:00:00 d #83 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gvk_en-us.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/spirituality/gvk_en-us.hangul.md.pdf; result = 393049 }
00:00:00 i #84 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.pdf.hangul.md.html }
00:00:00 i #84 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.fc1943s.7z.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.fc1943s.7z.md.pdf }
00:00:00 i #84 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/gvk_en-us.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gvk_en-us.hangul.md.html }
00:00:00 i #87 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/windows/windows.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\windows.html.hangul.md.html }
00:00:00 d #88 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.md.epub; new_path = c:/home/git/vault/dist/data/ai/ai.md.epub; result = 68680 }
00:00:00 i #89 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.md.pdf }
00:00:00 d #90 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\stories.hangul.md.html; new_path = c:/home/git/vault/dist/data/fiction/stories.hangul.md.html; result = 690683 }
00:00:00 d #91 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.fc1943s.7z.md.pdf; new_path = c:/home/git/vault/dist/data/workflow/vault.fc1943s.7z.md.pdf; result = 20798 }
00:00:00 d #91 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\windows.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/windows/windows.html.hangul.md.html; result = 10192 }
00:00:00 i #93 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/stories.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\stories.md.epub }
00:00:00 i #94 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/dialects.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dialects.hangul.md.epub }
00:00:00 i #95 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.fc1943s.7z.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.fc1943s.7z.md.html }
00:00:00 d #96 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/magic/magic.pdf.hangul.md.html; result = 15565 }
00:00:00 i #97 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/windows/windows.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\windows.html.md.epub }
00:00:00 i #97 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.pdf.md.epub }
00:00:00 d #99 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gvk_en-us.hangul.md.html; new_path = c:/home/git/vault/dist/data/spirituality/gvk_en-us.hangul.md.html; result = 1320097 }
00:00:00 d #100 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.fc1943s.7z.md.html; new_path = c:/home/git/vault/dist/data/workflow/vault.fc1943s.7z.md.html; result = 22691 }
00:00:00 i #101 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.html.hangul.md.epub }
00:00:00 d #101 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dialects.hangul.md.epub; new_path = c:/home/git/vault/dist/data/dialects/dialects.hangul.md.epub; result = 14754 }
00:00:00 d #103 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.md.pdf; new_path = c:/home/git/vault/dist/data/ai/ai.md.pdf; result = 214865 }
00:00:00 d #104 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\stories.md.epub; new_path = c:/home/git/vault/dist/data/fiction/stories.md.epub; result = 138020 }
00:00:00 i #105 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.md.html }
00:00:00 i #106 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/gvk_en-us.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gvk_en-us.md.epub }
00:00:00 i #107 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.fc1943s.7z.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.fc1943s.7z.hangul.md }
00:00:00 i #108 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/dialects.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dialects.hangul.md.pdf }
00:00:00 i #109 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/stories.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\stories.md.pdf }
00:00:00 d #110 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.pdf.md.epub; new_path = c:/home/git/vault/dist/data/magic/magic.pdf.md.epub; result = 6327 }
00:00:00 d #111 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\windows.html.md.epub; new_path = c:/home/git/vault/dist/data/windows/windows.html.md.epub; result = 5492 }
00:00:00 d #112 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.fc1943s.7z.hangul.md; new_path = c:/home/git/vault/dist/data/workflow/vault.fc1943s.7z.hangul.md; result = 12694 }
00:00:00 d #113 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.md.html; new_path = c:/home/git/vault/dist/data/ai/ai.md.html; result = 227267 }
00:00:00 i #114 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.hangul.md }
00:00:00 i #115 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/windows/windows.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\windows.html.md.pdf }
00:00:00 i #116 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.pdf.md.pdf }
00:00:00 d #117 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/typing/typing.html.hangul.md.epub; result = 5914 }
00:00:00 d #118 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dialects.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/dialects.hangul.md.pdf; result = 18125 }
00:00:00 d #119 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gvk_en-us.md.epub; new_path = c:/home/git/vault/dist/data/spirituality/gvk_en-us.md.epub; result = 271989 }
00:00:00 i #120 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.html.hangul.md.pdf }
00:00:00 i #121 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/dialects.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dialects.hangul.md.html }
00:00:00 i #121 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/gvk_en-us.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gvk_en-us.md.pdf }
00:00:00 d #123 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\stories.md.pdf; new_path = c:/home/git/vault/dist/data/fiction/stories.md.pdf; result = 545333 }
00:00:00 i #124 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/stories.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\stories.md.html }
00:00:00 d #125 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\windows.html.md.pdf; new_path = c:/home/git/vault/dist/data/windows/windows.html.md.pdf; result = 6517 }
00:00:00 d #126 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/magic/magic.pdf.md.pdf; result = 15781 }
00:00:00 d #127 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/typing/typing.html.hangul.md.pdf; result = 4977 }
00:00:00 d #128 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.hangul.md; new_path = c:/home/git/vault/dist/data/ai/ai.hangul.md; result = 300046 }
00:00:00 i #129 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/windows/windows.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\windows.html.md.html }
00:00:00 d #130 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dialects.hangul.md.html; new_path = c:/home/git/vault/dist/data/dialects/dialects.hangul.md.html; result = 55636 }
00:00:00 d #131 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/workflow/vault.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/workflow/vault.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 i #132 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.pdf.md.html }
00:00:00 i #132 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.html.hangul.md.html }
00:00:00 i #134 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/dialects.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dialects.md.epub }
00:00:00 d #135 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/ai/ai.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/ai/ai.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 d #136 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\windows.html.md.html; new_path = c:/home/git/vault/dist/data/windows/windows.html.md.html; result = 10128 }
00:00:00 d #137 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.pdf.md.html; new_path = c:/home/git/vault/dist/data/magic/magic.pdf.md.html; result = 13789 }
00:00:00 d #138 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gvk_en-us.md.pdf; new_path = c:/home/git/vault/dist/data/spirituality/gvk_en-us.md.pdf; result = 1037850 }
00:00:00 d #139 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/typing/typing.html.hangul.md.html; result = 11391 }
00:00:00 d #140 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\stories.md.html; new_path = c:/home/git/vault/dist/data/fiction/stories.md.html; result = 486630 }
00:00:00 i #141 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/windows/windows.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\windows.html.hangul.md }
00:00:00 i #141 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.pdf.hangul.md }
00:00:00 i #143 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.html.md.epub }
00:00:00 i #143 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/stories.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\stories.hangul.md }
00:00:00 d #145 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\windows.html.hangul.md; new_path = c:/home/git/vault/dist/data/windows/windows.html.hangul.md; result = 204 }
00:00:00 d #146 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/windows/windows.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/windows/windows.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 i #147 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/gvk_en-us.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gvk_en-us.md.html }
00:00:00 d #148 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.html.md.epub; new_path = c:/home/git/vault/dist/data/typing/typing.html.md.epub; result = 5866 }
00:00:00 d #150 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dialects.md.epub; new_path = c:/home/git/vault/dist/data/dialects/dialects.md.epub; result = 13689 }
00:00:00 d #148 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/magic/magic.pdf.hangul.md; result = 4606 }
00:00:00 d #151 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\stories.hangul.md; new_path = c:/home/git/vault/dist/data/fiction/stories.hangul.md; result = 591526 }
00:00:00 i #152 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.html.md.pdf }
00:00:00 d #153 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/filmow/filmow.fc1943s.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/filmow/filmow.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 d #154 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/magic/o-caminho-demonico-dos-dados_pt-br.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/magic/o-caminho-demonico-dos-dados_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 i #155 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/dialects.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dialects.md.pdf }
00:00:00 d #156 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gvk_en-us.md.html; new_path = c:/home/git/vault/dist/data/spirituality/gvk_en-us.md.html; result = 915676 }
00:00:00 d #157 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.html.md.pdf; new_path = c:/home/git/vault/dist/data/typing/typing.html.md.pdf; result = 7480 }
00:00:00 i #158 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.html.md.html }
00:00:00 d #159 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dialects.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/dialects.md.pdf; result = 44687 }
00:00:00 i #160 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/dialects.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dialects.md.html }
00:00:00 i #161 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/gvk_en-us.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gvk_en-us.hangul.md }
00:00:00 d #162 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dialects.md.html; new_path = c:/home/git/vault/dist/data/dialects/dialects.md.html; result = 42513 }
00:00:00 d #163 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.html.md.html; new_path = c:/home/git/vault/dist/data/typing/typing.html.md.html; result = 11233 }
00:00:00 i #164 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.html.hangul.md }
00:00:00 i #165 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/dialects.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dialects.hangul.md }
00:00:00 d #166 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.html.hangul.md; new_path = c:/home/git/vault/dist/data/typing/typing.html.hangul.md; result = 1149 }
00:00:00 d #167 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gvk_en-us.hangul.md; new_path = c:/home/git/vault/dist/data/spirituality/gvk_en-us.hangul.md; result = 1201409 }
00:00:00 d #168 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/typing/typing.i574n.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/typing/typing.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 d #169 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dialects.hangul.md; new_path = c:/home/git/vault/dist/data/dialects/dialects.hangul.md; result = 36913 }
00:00:00 d #170 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/spirituality/gvk_pt-br.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/spirituality/gvk_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 d #171 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/dialects/dialects.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/dialects/dialects.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 v #172 > 'a50cce7fd0d103cd8c2be18cdf0bd82a74690b3a'
00:00:00 v #173 > '41c27f4e0fbaa63ad44e6d51714f29b18cca7124'
00:00:00 v #174 > '03383a9384a0859e4842d78e86808657db8be433'
00:00:00 v #175 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 v #176 > '41908b616ee0d23d4bf8e8d74c949bdd21a2abf3'
00:00:00 d #177 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/workflow/vault.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/workflow/vault.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 v #178 > 'bc2fc4871a825475ed82471fa09ac9ead438a16f'
00:00:00 v #179 > '817107c0597fbf70a405d513f5860e2a10c82620'
00:00:00 v #180 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 d #181 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/ai/ai.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/ai/ai.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 v #182 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 d #183 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/windows/windows.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/windows/windows.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 v #184 > 'd31795b1f438dc6014c26e770c0731d65ff3aac2'
00:00:00 v #185 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 v #186 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 d #187 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/filmow/filmow.fc1943s.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/filmow/filmow.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 d #188 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/magic/o-caminho-demonico-dos-dados_pt-br.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/magic/o-caminho-demonico-dos-dados_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 v #189 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 d #190 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/typing/typing.i574n.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/typing/typing.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 v #191 > '9d8a58110fa4acf8f547c88b5246fdd2e2fce405'
00:00:00 v #192 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 d #193 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/spirituality/gvk_pt-br.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/spirituality/gvk_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 v #194 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 d #195 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/dialects/dialects.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/dialects/dialects.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 v #196 > 41c27f4e0fbaa63ad44e6d51714f29b18cca7124
00:00:00 v #197 > a50cce7fd0d103cd8c2be18cdf0bd82a74690b3a
00:00:00 v #198 > 41908b616ee0d23d4bf8e8d74c949bdd21a2abf3
00:00:00 v #199 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 i #200 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.mp3.hangul.md.epub }
00:00:00 d #201 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/ai/ai.mp3.hangul.md.epub; result = 6231 }
00:00:00 i #202 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.mp3.hangul.md.pdf }
00:00:00 v #203 > bc2fc4871a825475ed82471fa09ac9ead438a16f
00:00:00 d #204 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/ai/ai.mp3.hangul.md.pdf; result = 4899 }
00:00:00 i #205 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.mp3.hangul.md.html }
00:00:00 v #206 > 817107c0597fbf70a405d513f5860e2a10c82620
00:00:00 d #207 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/ai/ai.mp3.hangul.md.html; result = 13563 }
00:00:00 v #208 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 v #209 > 03383a9384a0859e4842d78e86808657db8be433
00:00:00 i #210 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.mp3.md.epub }
00:00:00 d #211 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.mp3.md.epub; new_path = c:/home/git/vault/dist/data/ai/ai.mp3.md.epub; result = 5964 }
00:00:00 i #212 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.mp3.md.pdf }
00:00:00 i #213 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.html.hangul.md.epub }
00:00:00 d #214 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/ai/ai.mp3.md.pdf; result = 10630 }
00:00:00 i #215 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.mp3.md.html }
00:00:00 d #216 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/workflow/vault.html.hangul.md.epub; result = 5536 }
00:00:00 i #217 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.html.hangul.md.pdf }
00:00:00 d #218 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.mp3.md.html; new_path = c:/home/git/vault/dist/data/ai/ai.mp3.md.html; result = 12131 }
00:00:00 i #219 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.mp3.hangul.md }
00:00:00 d #220 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/workflow/vault.html.hangul.md.pdf; result = 3958 }
00:00:00 d #221 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/ai/ai.mp3.hangul.md; result = 3316 }
00:00:00 i #222 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.html.hangul.md.html }
00:00:00 d #223 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/workflow/vault.html.hangul.md.html; result = 10125 }
00:00:00 v #223 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 i #225 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.html.md.epub }
00:00:00 d #226 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.html.md.epub; new_path = c:/home/git/vault/dist/data/workflow/vault.html.md.epub; result = 5458 }
00:00:00 i #227 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.html.md.pdf }
00:00:00 d #228 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/ai/ai.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/ai/ai.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 i #229 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/filmow/filmow.fc1943s.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\filmow.fc1943s.hangul.md.epub }
00:00:00 d #230 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.html.md.pdf; new_path = c:/home/git/vault/dist/data/workflow/vault.html.md.pdf; result = 6122 }
00:00:00 i #231 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.html.md.html }
00:00:00 d #232 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\filmow.fc1943s.hangul.md.epub; new_path = c:/home/git/vault/dist/data/filmow/filmow.fc1943s.hangul.md.epub; result = 5511 }
00:00:00 i #233 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/filmow/filmow.fc1943s.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\filmow.fc1943s.hangul.md.pdf }
00:00:00 d #234 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.html.md.html; new_path = c:/home/git/vault/dist/data/workflow/vault.html.md.html; result = 10079 }
00:00:00 d #235 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\filmow.fc1943s.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/filmow/filmow.fc1943s.hangul.md.pdf; result = 4534 }
00:00:00 i #236 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.html.hangul.md }
00:00:00 i #237 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/filmow/filmow.fc1943s.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\filmow.fc1943s.hangul.md.html }
00:00:00 d #238 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.html.hangul.md; new_path = c:/home/git/vault/dist/data/workflow/vault.html.hangul.md; result = 158 }
00:00:00 d #239 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\filmow.fc1943s.hangul.md.html; new_path = c:/home/git/vault/dist/data/filmow/filmow.fc1943s.hangul.md.html; result = 10083 }
00:00:00 i #240 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/filmow/filmow.fc1943s.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\filmow.fc1943s.md.epub }
00:00:00 d #241 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\filmow.fc1943s.md.epub; new_path = c:/home/git/vault/dist/data/filmow/filmow.fc1943s.md.epub; result = 5448 }
00:00:00 i #242 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/filmow/filmow.fc1943s.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\filmow.fc1943s.md.pdf }
00:00:00 d #243 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\filmow.fc1943s.md.pdf; new_path = c:/home/git/vault/dist/data/filmow/filmow.fc1943s.md.pdf; result = 6270 }
00:00:00 v #244 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 d #245 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/workflow/vault.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/workflow/vault.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 i #246 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/filmow/filmow.fc1943s.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\filmow.fc1943s.md.html }
00:00:00 v #247 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 d #248 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\filmow.fc1943s.md.html; new_path = c:/home/git/vault/dist/data/filmow/filmow.fc1943s.md.html; result = 10056 }
00:00:00 i #249 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/filmow/filmow.fc1943s.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\filmow.fc1943s.hangul.md }
00:00:00 v #250 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 d #251 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\filmow.fc1943s.hangul.md; new_path = c:/home/git/vault/dist/data/filmow/filmow.fc1943s.hangul.md; result = 103 }
00:00:00 i #252 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/o-caminho-demonico-dos-dados_pt-br.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\o-caminho-demonico-dos-dados_pt-br.hangul.md.epub }
00:00:00 i #253 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/windows/windows.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\windows.hangul.md.epub }
00:00:00 d #254 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\o-caminho-demonico-dos-dados_pt-br.hangul.md.epub; new_path = c:/home/git/vault/dist/data/magic/o-caminho-demonico-dos-dados_pt-br.hangul.md.epub; result = 69109 }
00:00:00 i #255 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/o-caminho-demonico-dos-dados_pt-br.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\o-caminho-demonico-dos-dados_pt-br.hangul.md.pdf }
00:00:00 d #256 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\windows.hangul.md.epub; new_path = c:/home/git/vault/dist/data/windows/windows.hangul.md.epub; result = 10248 }
00:00:00 i #257 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/windows/windows.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\windows.hangul.md.pdf }
00:00:00 i #257 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.i574n.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.i574n.hangul.md.epub }
00:00:00 d #259 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\o-caminho-demonico-dos-dados_pt-br.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/magic/o-caminho-demonico-dos-dados_pt-br.hangul.md.pdf; result = 79893 }
00:00:00 i #260 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/o-caminho-demonico-dos-dados_pt-br.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\o-caminho-demonico-dos-dados_pt-br.hangul.md.html }
00:00:00 d #261 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/filmow/filmow.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/filmow/filmow.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 d #262 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.i574n.hangul.md.epub; new_path = c:/home/git/vault/dist/data/typing/typing.i574n.hangul.md.epub; result = 5512 }
00:00:00 d #263 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\windows.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/windows/windows.hangul.md.pdf; result = 15362 }
00:00:00 i #264 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.i574n.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.i574n.hangul.md.pdf }
00:00:00 d #266 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\o-caminho-demonico-dos-dados_pt-br.hangul.md.html; new_path = c:/home/git/vault/dist/data/magic/o-caminho-demonico-dos-dados_pt-br.hangul.md.html; result = 293260 }
00:00:00 i #264 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/windows/windows.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\windows.hangul.md.html }
00:00:00 i #267 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/o-caminho-demonico-dos-dados_pt-br.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\o-caminho-demonico-dos-dados_pt-br.md.epub }
00:00:00 d #268 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.i574n.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/typing/typing.i574n.hangul.md.pdf; result = 4136 }
00:00:00 i #269 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.i574n.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.i574n.hangul.md.html }
00:00:00 d #270 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\windows.hangul.md.html; new_path = c:/home/git/vault/dist/data/windows/windows.hangul.md.html; result = 33121 }
00:00:00 d #271 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\o-caminho-demonico-dos-dados_pt-br.md.epub; new_path = c:/home/git/vault/dist/data/magic/o-caminho-demonico-dos-dados_pt-br.md.epub; result = 61781 }
00:00:00 d #272 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.i574n.hangul.md.html; new_path = c:/home/git/vault/dist/data/typing/typing.i574n.hangul.md.html; result = 10084 }
00:00:00 i #273 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/o-caminho-demonico-dos-dados_pt-br.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\o-caminho-demonico-dos-dados_pt-br.md.pdf }
00:00:00 i #274 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/windows/windows.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\windows.md.epub }
00:00:00 i #275 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.i574n.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.i574n.md.epub }
00:00:00 d #276 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\windows.md.epub; new_path = c:/home/git/vault/dist/data/windows/windows.md.epub; result = 9420 }
00:00:00 d #276 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.i574n.md.epub; new_path = c:/home/git/vault/dist/data/typing/typing.i574n.md.epub; result = 5446 }
00:00:00 i #278 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/windows/windows.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\windows.md.pdf }
00:00:00 i #278 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.i574n.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.i574n.md.pdf }
00:00:00 d #280 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\o-caminho-demonico-dos-dados_pt-br.md.pdf; new_path = c:/home/git/vault/dist/data/magic/o-caminho-demonico-dos-dados_pt-br.md.pdf; result = 230927 }
00:00:00 i #281 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/o-caminho-demonico-dos-dados_pt-br.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\o-caminho-demonico-dos-dados_pt-br.md.html }
00:00:00 d #282 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.i574n.md.pdf; new_path = c:/home/git/vault/dist/data/typing/typing.i574n.md.pdf; result = 6289 }
00:00:00 d #283 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\windows.md.pdf; new_path = c:/home/git/vault/dist/data/windows/windows.md.pdf; result = 38935 }
00:00:00 i #284 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.i574n.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.i574n.md.html }
00:00:00 i #285 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/windows/windows.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\windows.md.html }
00:00:00 d #286 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\o-caminho-demonico-dos-dados_pt-br.md.html; new_path = c:/home/git/vault/dist/data/magic/o-caminho-demonico-dos-dados_pt-br.md.html; result = 204770 }
00:00:00 d #287 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.i574n.md.html; new_path = c:/home/git/vault/dist/data/typing/typing.i574n.md.html; result = 10052 }
00:00:00 i #288 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/o-caminho-demonico-dos-dados_pt-br.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\o-caminho-demonico-dos-dados_pt-br.hangul.md }
00:00:00 i #289 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.i574n.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.i574n.hangul.md }
00:00:00 d #290 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\windows.md.html; new_path = c:/home/git/vault/dist/data/windows/windows.md.html; result = 26664 }
00:00:00 d #291 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.i574n.hangul.md; new_path = c:/home/git/vault/dist/data/typing/typing.i574n.hangul.md; result = 104 }
00:00:00 i #292 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/windows/windows.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\windows.hangul.md }
00:00:00 v #293 > d31795b1f438dc6014c26e770c0731d65ff3aac2
00:00:00 d #294 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\o-caminho-demonico-dos-dados_pt-br.hangul.md; new_path = c:/home/git/vault/dist/data/magic/o-caminho-demonico-dos-dados_pt-br.hangul.md; result = 267218 }
00:00:00 d #295 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\windows.hangul.md; new_path = c:/home/git/vault/dist/data/windows/windows.hangul.md; result = 16490 }
00:00:00 d #296 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/typing/typing.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/typing/typing.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 d #297 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/magic/the-book-of-remembering_pt-br.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/magic/the-book-of-remembering_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 d #298 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/work/cv.fc1943s.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/work/cv.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 v #299 > 9d8a58110fa4acf8f547c88b5246fdd2e2fce405
00:00:00 v #300 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 i #301 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/gvk_pt-br.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gvk_pt-br.hangul.md.epub }
00:00:00 d #302 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gvk_pt-br.hangul.md.epub; new_path = c:/home/git/vault/dist/data/spirituality/gvk_pt-br.hangul.md.epub; result = 329465 }
00:00:00 i #303 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/gvk_pt-br.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gvk_pt-br.hangul.md.pdf }
00:00:00 v #304 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 d #305 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gvk_pt-br.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/spirituality/gvk_pt-br.hangul.md.pdf; result = 414344 }
00:00:00 i #306 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/gvk_pt-br.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gvk_pt-br.hangul.md.html }
00:00:00 i #307 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/dialects.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dialects.pdf.hangul.md.epub }
00:00:00 d #308 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dialects.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/dialects/dialects.pdf.hangul.md.epub; result = 5727 }
00:00:00 i #309 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/dialects.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dialects.pdf.hangul.md.pdf }
00:00:00 d #310 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dialects.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/dialects.pdf.hangul.md.pdf; result = 4865 }
00:00:00 d #311 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gvk_pt-br.hangul.md.html; new_path = c:/home/git/vault/dist/data/spirituality/gvk_pt-br.hangul.md.html; result = 1391899 }
00:00:00 i #312 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/gvk_pt-br.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gvk_pt-br.md.epub }
00:00:00 i #313 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/dialects.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dialects.pdf.hangul.md.html }
00:00:00 d #314 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dialects.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/dialects/dialects.pdf.hangul.md.html; result = 10426 }
00:00:00 i #315 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/dialects.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dialects.pdf.md.epub }
00:00:00 d #316 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gvk_pt-br.md.epub; new_path = c:/home/git/vault/dist/data/spirituality/gvk_pt-br.md.epub; result = 292945 }
00:00:00 d #317 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dialects.pdf.md.epub; new_path = c:/home/git/vault/dist/data/dialects/dialects.pdf.md.epub; result = 5592 }
00:00:00 i #318 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/gvk_pt-br.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gvk_pt-br.md.pdf }
00:00:00 i #319 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/dialects.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dialects.pdf.md.pdf }
00:00:00 d #320 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dialects.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/dialects.pdf.md.pdf; result = 8318 }
00:00:00 i #321 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/dialects.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dialects.pdf.md.html }
00:00:00 d #322 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dialects.pdf.md.html; new_path = c:/home/git/vault/dist/data/dialects/dialects.pdf.md.html; result = 10266 }
00:00:00 i #323 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/dialects.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dialects.pdf.hangul.md }
00:00:00 d #324 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dialects.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/dialects/dialects.pdf.hangul.md; result = 438 }
00:00:00 d #325 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gvk_pt-br.md.pdf; new_path = c:/home/git/vault/dist/data/spirituality/gvk_pt-br.md.pdf; result = 1102930 }
00:00:00 i #326 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/gvk_pt-br.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gvk_pt-br.md.html }
00:00:00 d #327 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/dialects/english.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/dialects/english.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 d #328 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gvk_pt-br.md.html; new_path = c:/home/git/vault/dist/data/spirituality/gvk_pt-br.md.html; result = 991541 }
00:00:00 i #329 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/gvk_pt-br.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gvk_pt-br.hangul.md }
00:00:00 d #330 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gvk_pt-br.hangul.md; new_path = c:/home/git/vault/dist/data/spirituality/gvk_pt-br.hangul.md; result = 1263050 }
00:00:00 v #331 > '67b9900d52ac2dcff335ad67ffd7f56d6b4f9b01'
00:00:00 d #332 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/spirituality/ressurection_pt-br.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/spirituality/ressurection_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 v #333 > '42cdf7b6ccd8f267a0ab14ed4302d2666126f920'
00:00:00 v #334 > 'f014c8e3c31d9f07da79aab6bae53f0d944e95be'
00:00:00 v #335 > '2eaad8018400c59788eb9fdfb158408967c2a680'
00:00:00 v #336 > '48dcc245fdab8c3eb81effb7c26587051a8741e8'
00:00:00 v #337 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 d #338 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/workflow/vault.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/workflow/vault.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 v #339 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 d #340 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/ai/ai.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/ai/ai.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 v #341 > '1d0d3682925ba7dd9f8b40c3f0c9a0b2aef9107c'
00:00:00 v #342 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 v #343 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 d #344 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/filmow/filmow.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/filmow/filmow.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 d #345 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/typing/typing.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/typing/typing.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 v #346 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 d #347 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/magic/the-book-of-remembering_pt-br.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/magic/the-book-of-remembering_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 v #348 > '094c61b8db2dc16a5a80d1b7dcc16cadde7b3c7e'
00:00:00 v #349 > 'cfdc145226339017389a66169f0e19bba4ca6d65'
00:00:00 v #350 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 d #351 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/work/cv.fc1943s.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/work/cv.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 v #352 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 d #353 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/dialects/english.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/dialects/english.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 v #354 > 42cdf7b6ccd8f267a0ab14ed4302d2666126f920
00:00:00 v #355 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:00 d #356 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/spirituality/ressurection_pt-br.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/spirituality/ressurection_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:00 v #357 > f014c8e3c31d9f07da79aab6bae53f0d944e95be
00:00:00 v #358 > 2eaad8018400c59788eb9fdfb158408967c2a680
00:00:00 v #359 > 67b9900d52ac2dcff335ad67ffd7f56d6b4f9b01
00:00:00 v #360 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 v #361 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 v #362 > 48dcc245fdab8c3eb81effb7c26587051a8741e8
00:00:00 i #363 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.pdf.hangul.md.epub }
00:00:00 v #364 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 i #365 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/filmow/filmow.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\filmow.html.hangul.md.epub }
00:00:00 d #366 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/ai/ai.pdf.hangul.md.epub; result = 5671 }
00:00:00 d #367 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\filmow.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/filmow/filmow.html.hangul.md.epub; result = 5787 }
00:00:00 i #368 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.pdf.hangul.md.pdf }
00:00:00 i #369 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/filmow/filmow.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\filmow.html.hangul.md.pdf }
00:00:00 d #370 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/ai/ai.pdf.hangul.md.pdf; result = 4712 }
00:00:00 i #371 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.pdf.hangul.md.html }
00:00:00 d #372 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\filmow.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/filmow/filmow.html.hangul.md.pdf; result = 5321 }
00:00:00 v #373 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 i #374 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/filmow/filmow.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\filmow.html.hangul.md.html }
00:00:00 i #375 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.hangul.md.epub }
00:00:00 d #376 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/ai/ai.pdf.hangul.md.html; result = 10345 }
00:00:00 i #377 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.pdf.md.epub }
00:00:00 d #378 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\filmow.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/filmow/filmow.html.hangul.md.html; result = 14722 }
00:00:00 i #379 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/filmow/filmow.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\filmow.html.md.epub }
00:00:00 d #380 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.hangul.md.epub; new_path = c:/home/git/vault/dist/data/typing/typing.hangul.md.epub; result = 6711 }
00:00:00 d #381 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.pdf.md.epub; new_path = c:/home/git/vault/dist/data/ai/ai.pdf.md.epub; result = 5549 }
00:00:00 i #382 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.hangul.md.pdf }
00:00:00 d #383 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\filmow.html.md.epub; new_path = c:/home/git/vault/dist/data/filmow/filmow.html.md.epub; result = 5627 }
00:00:00 i #384 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.pdf.md.pdf }
00:00:00 d #385 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/typing/typing.hangul.md.pdf; result = 6124 }
00:00:00 i #386 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.hangul.md.epub }
00:00:00 i #387 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/filmow/filmow.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\filmow.html.md.pdf }
00:00:00 i #388 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.hangul.md.html }
00:00:00 d #389 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/ai/ai.pdf.md.pdf; result = 7659 }
00:00:00 i #390 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.pdf.md.html }
00:00:00 d #391 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.hangul.md.epub; new_path = c:/home/git/vault/dist/data/workflow/vault.hangul.md.epub; result = 5433 }
00:00:00 d #392 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\filmow.html.md.pdf; new_path = c:/home/git/vault/dist/data/filmow/filmow.html.md.pdf; result = 8657 }
00:00:00 d #393 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.hangul.md.html; new_path = c:/home/git/vault/dist/data/typing/typing.hangul.md.html; result = 13344 }
00:00:00 i #394 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/filmow/filmow.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\filmow.html.md.html }
00:00:00 i #395 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.hangul.md.pdf }
00:00:00 i #396 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.md.epub }
00:00:00 d #397 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.pdf.md.html; new_path = c:/home/git/vault/dist/data/ai/ai.pdf.md.html; result = 10204 }
00:00:00 i #398 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/ai.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ai.pdf.hangul.md }
00:00:00 d #399 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/workflow/vault.hangul.md.pdf; result = 3454 }
00:00:00 d #400 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\filmow.html.md.html; new_path = c:/home/git/vault/dist/data/filmow/filmow.html.md.html; result = 13836 }
00:00:00 d #401 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.md.epub; new_path = c:/home/git/vault/dist/data/typing/typing.md.epub; result = 6377 }
00:00:00 i #402 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.hangul.md.html }
00:00:00 i #402 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/filmow/filmow.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\filmow.html.hangul.md }
00:00:00 i #402 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.md.pdf }
00:00:00 d #405 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ai.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/ai/ai.pdf.hangul.md; result = 377 }
00:00:00 d #406 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.hangul.md.html; new_path = c:/home/git/vault/dist/data/workflow/vault.hangul.md.html; result = 9950 }
00:00:00 d #406 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\filmow.html.hangul.md; new_path = c:/home/git/vault/dist/data/filmow/filmow.html.hangul.md; result = 3064 }
00:00:00 d #408 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.md.pdf; new_path = c:/home/git/vault/dist/data/typing/typing.md.pdf; result = 14671 }
00:00:00 i #409 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.md.epub }
00:00:00 i #410 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.md.html }
00:00:00 d #411 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.md.epub; new_path = c:/home/git/vault/dist/data/workflow/vault.md.epub; result = 5407 }
00:00:00 d #412 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.md.html; new_path = c:/home/git/vault/dist/data/typing/typing.md.html; result = 12254 }
00:00:00 i #413 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/typing/typing.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\typing.hangul.md }
00:00:00 i #413 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.md.pdf }
00:00:00 d #415 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/ai/chatgpt.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/ai/chatgpt.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 d #416 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.md.pdf; new_path = c:/home/git/vault/dist/data/workflow/vault.md.pdf; result = 4526 }
00:00:00 d #417 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\typing.hangul.md; new_path = c:/home/git/vault/dist/data/typing/typing.hangul.md; result = 3116 }
00:00:00 i #418 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.md.html }
00:00:00 d #419 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/fitness/fitness.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/fitness/fitness.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 d #420 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.md.html; new_path = c:/home/git/vault/dist/data/workflow/vault.md.html; result = 9943 }
00:00:00 d #421 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/vim/vimrc.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/vim/vimrc.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 i #422 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/vault.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vault.hangul.md }
00:00:00 d #423 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vault.hangul.md; new_path = c:/home/git/vault/dist/data/workflow/vault.hangul.md; result = 39 }
00:00:00 v #424 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:00 d #425 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/workflow/workflow.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/workflow/workflow.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:00 i #426 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/the-book-of-remembering_pt-br.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-remembering_pt-br.hangul.md.epub }
00:00:00 d #427 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-remembering_pt-br.hangul.md.epub; new_path = c:/home/git/vault/dist/data/magic/the-book-of-remembering_pt-br.hangul.md.epub; result = 195458 }
00:00:00 i #428 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/the-book-of-remembering_pt-br.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-remembering_pt-br.hangul.md.pdf }
00:00:00 d #429 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-remembering_pt-br.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/magic/the-book-of-remembering_pt-br.hangul.md.pdf; result = 203453 }
00:00:00 i #430 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/the-book-of-remembering_pt-br.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-remembering_pt-br.hangul.md.html }
00:00:00 d #431 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-remembering_pt-br.hangul.md.html; new_path = c:/home/git/vault/dist/data/magic/the-book-of-remembering_pt-br.hangul.md.html; result = 786300 }
00:00:00 i #432 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/the-book-of-remembering_pt-br.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-remembering_pt-br.md.epub }
00:00:00 d #433 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-remembering_pt-br.md.epub; new_path = c:/home/git/vault/dist/data/magic/the-book-of-remembering_pt-br.md.epub; result = 171495 }
00:00:00 i #434 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/the-book-of-remembering_pt-br.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-remembering_pt-br.md.pdf }
00:00:00 v #435 > 1d0d3682925ba7dd9f8b40c3f0c9a0b2aef9107c
00:00:00 d #436 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-remembering_pt-br.md.pdf; new_path = c:/home/git/vault/dist/data/magic/the-book-of-remembering_pt-br.md.pdf; result = 617393 }
00:00:00 i #437 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/the-book-of-remembering_pt-br.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-remembering_pt-br.md.html }
00:00:01 v #438 > 094c61b8db2dc16a5a80d1b7dcc16cadde7b3c7e
00:00:01 d #439 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-remembering_pt-br.md.html; new_path = c:/home/git/vault/dist/data/magic/the-book-of-remembering_pt-br.md.html; result = 540206 }
00:00:01 i #440 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/the-book-of-remembering_pt-br.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-remembering_pt-br.hangul.md }
00:00:01 d #441 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-remembering_pt-br.hangul.md; new_path = c:/home/git/vault/dist/data/magic/the-book-of-remembering_pt-br.hangul.md; result = 739723 }
00:00:01 d #442 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/martial-arts/martial-arts.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/martial-arts/martial-arts.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 v #443 > cfdc145226339017389a66169f0e19bba4ca6d65
00:00:01 v #444 > '92c1cc9e4652398e85a563d1e6b80d0c32a875cf'
00:00:01 v #445 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 v #446 > '9e9633005f4854af5132be43c52c81f1abc3118c'
00:00:01 v #447 > '24833b2f816481cdd369f731b8c534211a13069c'
00:00:01 i #448 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/english.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\english.hangul.md.epub }
00:00:01 d #449 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\english.hangul.md.epub; new_path = c:/home/git/vault/dist/data/dialects/english.hangul.md.epub; result = 11327 }
00:00:01 i #450 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/english.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\english.hangul.md.pdf }
00:00:01 d #451 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\english.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/english.hangul.md.pdf; result = 7596 }
00:00:01 i #452 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/english.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\english.hangul.md.html }
00:00:01 d #453 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\english.hangul.md.html; new_path = c:/home/git/vault/dist/data/dialects/english.hangul.md.html; result = 27975 }
00:00:01 i #454 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/english.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\english.md.epub }
00:00:01 v #455 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 v #456 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 d #457 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\english.md.epub; new_path = c:/home/git/vault/dist/data/dialects/english.md.epub; result = 10376 }
00:00:01 i #458 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/english.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\english.md.pdf }
00:00:01 d #459 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\english.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/english.md.pdf; result = 22689 }
00:00:01 i #460 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/english.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\english.md.html }
00:00:01 i #461 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv.fc1943s.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.hangul.md.epub }
00:00:01 d #461 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\english.md.html; new_path = c:/home/git/vault/dist/data/dialects/english.md.html; result = 22049 }
00:00:01 i #463 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/english.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\english.hangul.md }
00:00:01 v #464 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 d #465 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/ai/chatgpt.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/ai/chatgpt.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 i #466 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/ressurection_pt-br.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ressurection_pt-br.hangul.md.epub }
00:00:01 d #467 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\english.hangul.md; new_path = c:/home/git/vault/dist/data/dialects/english.hangul.md; result = 16757 }
00:00:01 d #468 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/dialects/korean.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/dialects/korean.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 d #469 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.hangul.md.epub; new_path = c:/home/git/vault/dist/data/work/cv.fc1943s.hangul.md.epub; result = 12317 }
00:00:01 d #470 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ressurection_pt-br.hangul.md.epub; new_path = c:/home/git/vault/dist/data/spirituality/ressurection_pt-br.hangul.md.epub; result = 206420 }
00:00:01 v #471 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 v #472 > '23758be8f32af0fbd2cdcafa908f9b54cc000dc7'
00:00:01 i #473 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv.fc1943s.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.hangul.md.pdf }
00:00:01 v #474 > '3366dc77515fb705fc648bdabb7f4020a39d5abb'
00:00:01 i #475 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/ressurection_pt-br.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ressurection_pt-br.hangul.md.pdf }
00:00:01 d #476 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/workflow/workflow.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/workflow/workflow.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 d #477 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/work/cv.fc1943s.hangul.md.pdf; result = 12619 }
00:00:01 d #478 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ressurection_pt-br.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/spirituality/ressurection_pt-br.hangul.md.pdf; result = 208459 }
00:00:01 i #479 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv.fc1943s.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.hangul.md.html }
00:00:01 i #480 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/ressurection_pt-br.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ressurection_pt-br.hangul.md.html }
00:00:01 d #481 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.hangul.md.html; new_path = c:/home/git/vault/dist/data/work/cv.fc1943s.hangul.md.html; result = 32163 }
00:00:01 i #482 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv.fc1943s.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.md.epub }
00:00:01 d #483 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ressurection_pt-br.hangul.md.html; new_path = c:/home/git/vault/dist/data/spirituality/ressurection_pt-br.hangul.md.html; result = 855278 }
00:00:01 d #484 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.md.epub; new_path = c:/home/git/vault/dist/data/work/cv.fc1943s.md.epub; result = 11214 }
00:00:01 i #485 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv.fc1943s.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.md.pdf }
00:00:01 v #486 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 i #486 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/ressurection_pt-br.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ressurection_pt-br.md.epub }
00:00:01 d #488 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.md.pdf; new_path = c:/home/git/vault/dist/data/work/cv.fc1943s.md.pdf; result = 43968 }
00:00:01 d #489 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ressurection_pt-br.md.epub; new_path = c:/home/git/vault/dist/data/spirituality/ressurection_pt-br.md.epub; result = 181148 }
00:00:01 i #490 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/ressurection_pt-br.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ressurection_pt-br.md.pdf }
00:00:01 i #491 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv.fc1943s.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.md.html }
00:00:01 d #492 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/fitness/fitness.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/fitness/fitness.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 d #493 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.md.html; new_path = c:/home/git/vault/dist/data/work/cv.fc1943s.md.html; result = 25325 }
00:00:01 i #494 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv.fc1943s.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.hangul.md }
00:00:01 d #495 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ressurection_pt-br.md.pdf; new_path = c:/home/git/vault/dist/data/spirituality/ressurection_pt-br.md.pdf; result = 646237 }
00:00:01 v #496 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 d #497 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.hangul.md; new_path = c:/home/git/vault/dist/data/work/cv.fc1943s.hangul.md; result = 19270 }
00:00:01 d #498 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/martial-arts/martial-arts.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/martial-arts/martial-arts.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 i #499 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/ressurection_pt-br.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ressurection_pt-br.md.html }
00:00:01 d #500 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/work/cv.fc1943s.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/work/cv.fc1943s.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 d #501 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ressurection_pt-br.md.html; new_path = c:/home/git/vault/dist/data/spirituality/ressurection_pt-br.md.html; result = 592691 }
00:00:01 i #502 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/ressurection_pt-br.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ressurection_pt-br.hangul.md }
00:00:01 v #503 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 d #504 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ressurection_pt-br.hangul.md; new_path = c:/home/git/vault/dist/data/spirituality/ressurection_pt-br.hangul.md; result = 822094 }
00:00:01 d #505 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/vim/vimrc.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/vim/vimrc.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 d #506 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/spirituality/spirituality.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/spirituality/spirituality.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 v #507 > 9e9633005f4854af5132be43c52c81f1abc3118c
00:00:01 v #508 > 23758be8f32af0fbd2cdcafa908f9b54cc000dc7
00:00:01 v #509 > '5e27ade0698b4ee7994791fd595a4fcbdcf49b21'
00:00:01 v #510 > 92c1cc9e4652398e85a563d1e6b80d0c32a875cf
00:00:01 v #511 > 24833b2f816481cdd369f731b8c534211a13069c
00:00:01 v #512 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 v #513 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 v #514 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 d #515 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/dialects/korean.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/dialects/korean.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 v #516 > '26dcc4e83c56ad8b2a105ae037c8d26685ce75cb'
00:00:01 i #517 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/chatgpt.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.html.hangul.md.epub }
00:00:01 i #518 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/martial-arts/martial-arts.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\martial-arts.hangul.md.epub }
00:00:01 v #519 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 d #520 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/ai/chatgpt.html.hangul.md.epub; result = 5514 }
00:00:01 i #521 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/chatgpt.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.html.hangul.md.pdf }
00:00:01 v #522 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 d #523 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\martial-arts.hangul.md.epub; new_path = c:/home/git/vault/dist/data/martial-arts/martial-arts.hangul.md.epub; result = 38033 }
00:00:01 v #524 > 3366dc77515fb705fc648bdabb7f4020a39d5abb
00:00:01 d #525 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/ai/chatgpt.html.hangul.md.pdf; result = 3758 }
00:00:01 i #526 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/martial-arts/martial-arts.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\martial-arts.hangul.md.pdf }
00:00:01 i #527 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/chatgpt.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.html.hangul.md.html }
00:00:01 i #528 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fitness/fitness.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fitness.hangul.md.epub }
00:00:01 d #529 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\martial-arts.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/martial-arts/martial-arts.hangul.md.pdf; result = 44090 }
00:00:01 d #529 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/ai/chatgpt.html.hangul.md.html; result = 10100 }
00:00:01 i #531 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/chatgpt.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.html.md.epub }
00:00:01 i #532 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/martial-arts/martial-arts.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\martial-arts.hangul.md.html }
00:00:01 d #533 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fitness.hangul.md.epub; new_path = c:/home/git/vault/dist/data/fitness/fitness.hangul.md.epub; result = 7127 }
00:00:01 i #534 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/workflow.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\workflow.hangul.md.epub }
00:00:01 i #535 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fitness/fitness.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fitness.hangul.md.pdf }
00:00:01 d #536 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.html.md.epub; new_path = c:/home/git/vault/dist/data/ai/chatgpt.html.md.epub; result = 5447 }
00:00:01 d #537 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\martial-arts.hangul.md.html; new_path = c:/home/git/vault/dist/data/martial-arts/martial-arts.hangul.md.html; result = 188516 }
00:00:01 d #538 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\workflow.hangul.md.epub; new_path = c:/home/git/vault/dist/data/workflow/workflow.hangul.md.epub; result = 42389 }
00:00:01 i #539 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/chatgpt.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.html.md.pdf }
00:00:01 i #540 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/martial-arts/martial-arts.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\martial-arts.md.epub }
00:00:01 i #541 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/workflow.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\workflow.hangul.md.pdf }
00:00:01 d #542 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fitness.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/fitness/fitness.hangul.md.pdf; result = 7244 }
00:00:01 d #543 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.html.md.pdf; new_path = c:/home/git/vault/dist/data/ai/chatgpt.html.md.pdf; result = 5892 }
00:00:01 i #544 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fitness/fitness.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fitness.hangul.md.html }
00:00:01 d #545 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\martial-arts.md.epub; new_path = c:/home/git/vault/dist/data/martial-arts/martial-arts.md.epub; result = 33383 }
00:00:01 i #546 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/chatgpt.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.html.md.html }
00:00:01 i #547 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/martial-arts/martial-arts.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\martial-arts.md.pdf }
00:00:01 d #548 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\workflow.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/workflow/workflow.hangul.md.pdf; result = 63919 }
00:00:01 d #549 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fitness.hangul.md.html; new_path = c:/home/git/vault/dist/data/fitness/fitness.hangul.md.html; result = 14757 }
00:00:01 d #550 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.html.md.html; new_path = c:/home/git/vault/dist/data/ai/chatgpt.html.md.html; result = 10065 }
00:00:01 i #551 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/workflow.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\workflow.hangul.md.html }
00:00:01 i #552 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/chatgpt.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.html.hangul.md }
00:00:01 i #553 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fitness/fitness.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fitness.md.epub }
00:00:01 d #554 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.html.hangul.md; new_path = c:/home/git/vault/dist/data/ai/chatgpt.html.hangul.md; result = 133 }
00:00:01 d #555 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\martial-arts.md.pdf; new_path = c:/home/git/vault/dist/data/martial-arts/martial-arts.md.pdf; result = 133631 }
00:00:01 i #556 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/martial-arts/martial-arts.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\martial-arts.md.html }
00:00:01 d #557 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fitness.md.epub; new_path = c:/home/git/vault/dist/data/fitness/fitness.md.epub; result = 6723 }
00:00:01 d #558 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\workflow.hangul.md.html; new_path = c:/home/git/vault/dist/data/workflow/workflow.hangul.md.html; result = 189367 }
00:00:01 i #559 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fitness/fitness.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fitness.md.pdf }
00:00:01 i #560 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/workflow.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\workflow.md.epub }
00:00:01 d #561 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\martial-arts.md.html; new_path = c:/home/git/vault/dist/data/martial-arts/martial-arts.md.html; result = 131276 }
00:00:01 d #562 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fitness.md.pdf; new_path = c:/home/git/vault/dist/data/fitness/fitness.md.pdf; result = 18508 }
00:00:01 i #563 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/martial-arts/martial-arts.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\martial-arts.hangul.md }
00:00:01 i #564 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fitness/fitness.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fitness.md.html }
00:00:01 d #565 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\workflow.md.epub; new_path = c:/home/git/vault/dist/data/workflow/workflow.md.epub; result = 39242 }
00:00:01 v #566 > 'da686aa9d0ac03f64ff44dbebfcaf3fa7dacdf6a'
00:00:01 i #567 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/workflow.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\workflow.md.pdf }
00:00:01 d #568 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\martial-arts.hangul.md; new_path = c:/home/git/vault/dist/data/martial-arts/martial-arts.hangul.md; result = 156203 }
00:00:01 d #569 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/ai/chatgpt.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/ai/chatgpt.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 d #570 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fitness.md.html; new_path = c:/home/git/vault/dist/data/fitness/fitness.md.html; result = 13224 }
00:00:01 i #571 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fitness/fitness.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fitness.hangul.md }
00:00:01 d #572 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\workflow.md.pdf; new_path = c:/home/git/vault/dist/data/workflow/workflow.md.pdf; result = 170155 }
00:00:01 d #573 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fitness.hangul.md; new_path = c:/home/git/vault/dist/data/fitness/fitness.hangul.md; result = 4527 }
00:00:01 i #574 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/workflow.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\workflow.md.html }
00:00:01 d #575 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\workflow.md.html; new_path = c:/home/git/vault/dist/data/workflow/workflow.md.html; result = 159326 }
00:00:01 d #576 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/math/math.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/math/math.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 i #577 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/workflow.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\workflow.hangul.md }
00:00:01 d #578 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/food/food.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/food/food.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 d #579 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\workflow.hangul.md; new_path = c:/home/git/vault/dist/data/workflow/workflow.hangul.md; result = 142620 }
00:00:01 v #580 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 v #581 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 d #582 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/workflow/workflow.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/workflow/workflow.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 d #583 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/work/cv.fc1943s.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/work/cv.fc1943s.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 i #584 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/vim/vimrc.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vimrc.hangul.md.epub }
00:00:01 d #585 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vimrc.hangul.md.epub; new_path = c:/home/git/vault/dist/data/vim/vimrc.hangul.md.epub; result = 6821 }
00:00:01 i #586 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/vim/vimrc.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vimrc.hangul.md.pdf }
00:00:01 d #587 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vimrc.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/vim/vimrc.hangul.md.pdf; result = 7869 }
00:00:01 i #588 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/vim/vimrc.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vimrc.hangul.md.html }
00:00:01 d #589 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vimrc.hangul.md.html; new_path = c:/home/git/vault/dist/data/vim/vimrc.hangul.md.html; result = 20818 }
00:00:01 i #590 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/vim/vimrc.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vimrc.md.epub }
00:00:01 d #591 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vimrc.md.epub; new_path = c:/home/git/vault/dist/data/vim/vimrc.md.epub; result = 6589 }
00:00:01 i #592 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/vim/vimrc.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vimrc.md.pdf }
00:00:01 d #593 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vimrc.md.pdf; new_path = c:/home/git/vault/dist/data/vim/vimrc.md.pdf; result = 13552 }
00:00:01 i #594 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/vim/vimrc.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vimrc.md.html }
00:00:01 d #595 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vimrc.md.html; new_path = c:/home/git/vault/dist/data/vim/vimrc.md.html; result = 18853 }
00:00:01 i #596 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/vim/vimrc.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\vimrc.hangul.md }
00:00:01 d #597 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\vimrc.hangul.md; new_path = c:/home/git/vault/dist/data/vim/vimrc.hangul.md; result = 5518 }
00:00:01 d #598 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/warez/warez.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/warez/warez.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 v #599 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 d #600 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/spirituality/spirituality.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/spirituality/spirituality.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 v #601 > 5e27ade0698b4ee7994791fd595a4fcbdcf49b21
00:00:01 v #602 > '5a67a00b2a87bc4d1fd4b4a8a03cc9ac996871f8'
00:00:01 v #603 > 'bdb231b92700c577e134d2ae8d941fd84f388693'
00:00:01 v #604 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 v #605 > '70e7431d7fa3cd9c92de39e0deffacdb7c5f7005'
00:00:01 i #606 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.html.hangul.md.epub }
00:00:01 v #607 > '064a22fe29f93a179c0a78a90e69c2837a9bef3b'
00:00:01 v #608 > 26dcc4e83c56ad8b2a105ae037c8d26685ce75cb
00:00:01 d #609 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/dialects/korean.html.hangul.md.epub; result = 5825 }
00:00:01 i #610 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.html.hangul.md.pdf }
00:00:01 d #611 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/korean.html.hangul.md.pdf; result = 4703 }
00:00:01 i #612 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.html.hangul.md.html }
00:00:01 d #613 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/dialects/korean.html.hangul.md.html; result = 13006 }
00:00:01 i #614 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.html.md.epub }
00:00:01 d #615 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.html.md.epub; new_path = c:/home/git/vault/dist/data/dialects/korean.html.md.epub; result = 5668 }
00:00:01 i #616 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.html.md.pdf }
00:00:01 d #617 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.html.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/korean.html.md.pdf; result = 8992 }
00:00:01 i #618 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.html.md.html }
00:00:01 v #619 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 d #620 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.html.md.html; new_path = c:/home/git/vault/dist/data/dialects/korean.html.md.html; result = 12334 }
00:00:01 i #621 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.html.hangul.md }
00:00:01 v #622 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 d #622 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.html.hangul.md; new_path = c:/home/git/vault/dist/data/dialects/korean.html.hangul.md; result = 2149 }
00:00:01 d #624 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/food/food.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/food/food.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 d #625 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/ai/chatgpt.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/ai/chatgpt.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 v #626 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 v #627 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 d #628 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/dialects/korean.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/dialects/korean.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 v #629 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 d #630 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/workflow/workflow.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/workflow/workflow.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 i #631 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv.fc1943s.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.pdf.hangul.md.epub }
00:00:01 d #632 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/math/math.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/math/math.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 d #633 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/work/cv.fc1943s.pdf.hangul.md.epub; result = 5746 }
00:00:01 i #634 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv.fc1943s.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.pdf.hangul.md.pdf }
00:00:01 d #635 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/work/cv.fc1943s.pdf.hangul.md.pdf; result = 4759 }
00:00:01 i #636 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv.fc1943s.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.pdf.hangul.md.html }
00:00:01 d #637 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/work/cv.fc1943s.pdf.hangul.md.html; result = 10812 }
00:00:01 i #638 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv.fc1943s.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.pdf.md.epub }
00:00:01 d #639 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.pdf.md.epub; new_path = c:/home/git/vault/dist/data/work/cv.fc1943s.pdf.md.epub; result = 5598 }
00:00:01 i #640 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv.fc1943s.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.pdf.md.pdf }
00:00:01 d #641 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/work/cv.fc1943s.pdf.md.pdf; result = 7620 }
00:00:01 i #642 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv.fc1943s.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.pdf.md.html }
00:00:01 d #643 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.pdf.md.html; new_path = c:/home/git/vault/dist/data/work/cv.fc1943s.pdf.md.html; result = 10522 }
00:00:01 i #644 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv.fc1943s.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.pdf.hangul.md }
00:00:01 d #645 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv.fc1943s.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/work/cv.fc1943s.pdf.hangul.md; result = 755 }
00:00:01 v #646 > 'd6e3efa4eceeb79061d0e8a8d516036f770d4691'
00:00:01 d #647 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/work/cv_pt-br.fc1943s.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/work/cv_pt-br.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 v #648 > da686aa9d0ac03f64ff44dbebfcaf3fa7dacdf6a
00:00:01 v #649 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 v #650 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 d #651 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/warez/warez.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/warez/warez.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 i #652 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.hangul.md.epub }
00:00:01 d #653 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.hangul.md.epub; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.hangul.md.epub; result = 26366 }
00:00:01 i #654 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.hangul.md.pdf }
00:00:01 d #655 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.hangul.md.pdf; result = 27386 }
00:00:01 i #656 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.hangul.md.html }
00:00:01 d #657 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.hangul.md.html; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.hangul.md.html; result = 98846 }
00:00:01 i #658 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.md.epub }
00:00:01 d #659 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.md.epub; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.md.epub; result = 24236 }
00:00:01 i #660 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.md.pdf }
00:00:01 d #661 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.md.pdf; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.md.pdf; result = 81214 }
00:00:01 i #662 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.md.html }
00:00:01 d #663 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.md.html; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.md.html; result = 72012 }
00:00:01 i #664 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.hangul.md }
00:00:01 d #665 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.hangul.md; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.hangul.md; result = 76071 }
00:00:01 d #666 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/spirituality/spirituality.mp4.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/spirituality/spirituality.mp4.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 v #667 > '2dfe570d538066c6a62ee8e5e4c05b67160b042c'
00:00:01 v #668 > bdb231b92700c577e134d2ae8d941fd84f388693
00:00:01 v #669 > 70e7431d7fa3cd9c92de39e0deffacdb7c5f7005
00:00:01 v #670 > 5a67a00b2a87bc4d1fd4b4a8a03cc9ac996871f8
00:00:01 v #671 > 064a22fe29f93a179c0a78a90e69c2837a9bef3b
00:00:01 v #672 > 'ffab8f376d7f53d106f540c2ac421f5555f14780'
00:00:01 v #673 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 d #674 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/dialects/korean.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/dialects/korean.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 v #675 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 v #676 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 v #677 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 i #678 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/food/food.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\food.hangul.md.epub }
00:00:01 i #679 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/math/math.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\math.hangul.md.epub }
00:00:01 i #680 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/chatgpt.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.hangul.md.epub }
00:00:01 d #681 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\math.hangul.md.epub; new_path = c:/home/git/vault/dist/data/math/math.hangul.md.epub; result = 6278 }
00:00:01 d #682 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\food.hangul.md.epub; new_path = c:/home/git/vault/dist/data/food/food.hangul.md.epub; result = 36753 }
00:00:01 d #682 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.hangul.md.epub; new_path = c:/home/git/vault/dist/data/ai/chatgpt.hangul.md.epub; result = 21991 }
00:00:01 v #684 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 i #685 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/math/math.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\math.hangul.md.pdf }
00:00:01 i #686 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/chatgpt.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.hangul.md.pdf }
00:00:01 i #687 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/food/food.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\food.hangul.md.pdf }
00:00:01 d #688 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\math.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/math/math.hangul.md.pdf; result = 7355 }
00:00:01 d #689 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/ai/chatgpt.hangul.md.pdf; result = 26438 }
00:00:01 d #690 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\food.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/food/food.hangul.md.pdf; result = 63383 }
00:00:01 i #690 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/math/math.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\math.hangul.md.html }
00:00:01 i #692 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/food/food.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\food.hangul.md.html }
00:00:01 i #693 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/chatgpt.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.hangul.md.html }
00:00:01 d #694 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\math.hangul.md.html; new_path = c:/home/git/vault/dist/data/math/math.hangul.md.html; result = 12268 }
00:00:01 v #695 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 i #696 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/math/math.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\math.md.epub }
00:00:01 d #697 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.hangul.md.html; new_path = c:/home/git/vault/dist/data/ai/chatgpt.hangul.md.html; result = 87531 }
00:00:01 d #698 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\food.hangul.md.html; new_path = c:/home/git/vault/dist/data/food/food.hangul.md.html; result = 174783 }
00:00:01 i #699 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/chatgpt.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.md.epub }
00:00:01 i #700 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/food/food.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\food.md.epub }
00:00:01 d #701 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/work/cv_pt-br.fc1943s.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/work/cv_pt-br.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 d #702 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\math.md.epub; new_path = c:/home/git/vault/dist/data/math/math.md.epub; result = 6065 }
00:00:01 d #703 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.md.epub; new_path = c:/home/git/vault/dist/data/ai/chatgpt.md.epub; result = 19733 }
00:00:01 i #704 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/math/math.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\math.md.pdf }
00:00:01 d #705 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\food.md.epub; new_path = c:/home/git/vault/dist/data/food/food.md.epub; result = 33010 }
00:00:01 i #706 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/chatgpt.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.md.pdf }
00:00:01 i #707 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/food/food.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\food.md.pdf }
00:00:01 d #708 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\math.md.pdf; new_path = c:/home/git/vault/dist/data/math/math.md.pdf; result = 14947 }
00:00:01 i #709 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/workflow.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\workflow.mp3.hangul.md.epub }
00:00:01 d #710 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.md.pdf; new_path = c:/home/git/vault/dist/data/ai/chatgpt.md.pdf; result = 79304 }
00:00:01 i #711 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/math/math.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\math.md.html }
00:00:01 i #712 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/chatgpt.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.md.html }
00:00:01 d #713 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\workflow.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/workflow/workflow.mp3.hangul.md.epub; result = 5697 }
00:00:01 d #714 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\math.md.html; new_path = c:/home/git/vault/dist/data/math/math.md.html; result = 11558 }
00:00:01 d #715 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\food.md.pdf; new_path = c:/home/git/vault/dist/data/food/food.md.pdf; result = 135025 }
00:00:01 i #716 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/math/math.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\math.hangul.md }
00:00:01 i #716 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/workflow.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\workflow.mp3.hangul.md.pdf }
00:00:01 d #719 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.md.html; new_path = c:/home/git/vault/dist/data/ai/chatgpt.md.html; result = 65906 }
00:00:01 i #716 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/food/food.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\food.md.html }
00:00:01 i #720 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/chatgpt.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.hangul.md }
00:00:01 d #721 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\workflow.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/workflow/workflow.mp3.hangul.md.pdf; result = 3988 }
00:00:01 d #722 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\math.hangul.md; new_path = c:/home/git/vault/dist/data/math/math.hangul.md; result = 2232 }
00:00:01 i #723 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/workflow.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\workflow.mp3.hangul.md.html }
00:00:01 d #724 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\food.md.html; new_path = c:/home/git/vault/dist/data/food/food.md.html; result = 128885 }
00:00:01 i #725 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/food/food.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\food.hangul.md }
00:00:01 d #726 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chatgpt.hangul.md; new_path = c:/home/git/vault/dist/data/ai/chatgpt.hangul.md; result = 67428 }
00:00:01 d #727 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\workflow.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/workflow/workflow.mp3.hangul.md.html; result = 10327 }
00:00:01 i #728 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/workflow.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\workflow.mp3.md.epub }
00:00:01 d #729 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\food.hangul.md; new_path = c:/home/git/vault/dist/data/food/food.hangul.md; result = 127583 }
00:00:01 d #730 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\workflow.mp3.md.epub; new_path = c:/home/git/vault/dist/data/workflow/workflow.mp3.md.epub; result = 5557 }
00:00:01 i #731 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/workflow.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\workflow.mp3.md.pdf }
00:00:01 d #732 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\workflow.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/workflow/workflow.mp3.md.pdf; result = 7796 }
00:00:01 d #732 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/mercadolivre/mercadolivre.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/mercadolivre/mercadolivre.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 i #734 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/workflow.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\workflow.mp3.md.html }
00:00:01 d #735 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/ai/gpt3.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/ai/gpt3.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 d #736 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\workflow.mp3.md.html; new_path = c:/home/git/vault/dist/data/workflow/workflow.mp3.md.html; result = 10142 }
00:00:01 i #737 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/workflow.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\workflow.mp3.hangul.md }
00:00:01 d #738 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/food/food.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/food/food.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 d #739 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\workflow.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/workflow/workflow.mp3.hangul.md; result = 402 }
00:00:01 d #740 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/writing/writing.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/writing/writing.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 v #741 > d6e3efa4eceeb79061d0e8a8d516036f770d4691
00:00:01 v #742 > 'c4624204251d68c706be6da67cea892f5bfeead7'
00:00:01 v #743 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 v #744 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 i #745 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/warez/warez.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\warez.html.hangul.md.epub }
00:00:01 d #746 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/spirituality/spirituality.mp4.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/spirituality/spirituality.mp4.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 d #747 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\warez.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/warez/warez.html.hangul.md.epub; result = 9974 }
00:00:01 i #748 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/warez/warez.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\warez.html.hangul.md.pdf }
00:00:01 d #749 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\warez.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/warez/warez.html.hangul.md.pdf; result = 14235 }
00:00:01 i #750 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/warez/warez.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\warez.html.hangul.md.html }
00:00:01 d #751 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\warez.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/warez/warez.html.hangul.md.html; result = 30230 }
00:00:01 i #752 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/warez/warez.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\warez.html.md.epub }
00:00:01 v #753 > ffab8f376d7f53d106f540c2ac421f5555f14780
00:00:01 d #754 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\warez.html.md.epub; new_path = c:/home/git/vault/dist/data/warez/warez.html.md.epub; result = 9230 }
00:00:01 i #755 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/warez/warez.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\warez.html.md.pdf }
00:00:01 d #756 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\warez.html.md.pdf; new_path = c:/home/git/vault/dist/data/warez/warez.html.md.pdf; result = 28650 }
00:00:01 i #757 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/warez/warez.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\warez.html.md.html }
00:00:01 v #758 > 'd05c5d0f35097a6a85d45b60ebf092ab80c163c8'
00:00:01 v #758 > 2dfe570d538066c6a62ee8e5e4c05b67160b042c
00:00:01 d #760 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\warez.html.md.html; new_path = c:/home/git/vault/dist/data/warez/warez.html.md.html; result = 25159 }
00:00:01 v #761 > '941beea1483213ff0ffe70d5c32f391923b16030'
00:00:01 i #762 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/warez/warez.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\warez.html.hangul.md }
00:00:01 v #763 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 v #764 > 'a929a5a405afe3ec45d53978c7f1a3a6ebb78795'
00:00:01 d #765 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\warez.html.hangul.md; new_path = c:/home/git/vault/dist/data/warez/warez.html.hangul.md; result = 15005 }
00:00:01 i #766 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv_pt-br.fc1943s.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv_pt-br.fc1943s.hangul.md.epub }
00:00:01 d #767 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv_pt-br.fc1943s.hangul.md.epub; new_path = c:/home/git/vault/dist/data/work/cv_pt-br.fc1943s.hangul.md.epub; result = 12693 }
00:00:01 i #768 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv_pt-br.fc1943s.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv_pt-br.fc1943s.hangul.md.pdf }
00:00:01 d #769 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/weather/weather.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/weather/weather.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 d #770 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv_pt-br.fc1943s.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/work/cv_pt-br.fc1943s.hangul.md.pdf; result = 13093 }
00:00:01 i #771 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv_pt-br.fc1943s.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv_pt-br.fc1943s.hangul.md.html }
00:00:01 v #772 > 'a1f263813735775e0636a8b7a19d85259cbbbc8f'
00:00:01 d #773 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv_pt-br.fc1943s.hangul.md.html; new_path = c:/home/git/vault/dist/data/work/cv_pt-br.fc1943s.hangul.md.html; result = 33732 }
00:00:01 i #774 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv_pt-br.fc1943s.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv_pt-br.fc1943s.md.epub }
00:00:01 d #775 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv_pt-br.fc1943s.md.epub; new_path = c:/home/git/vault/dist/data/work/cv_pt-br.fc1943s.md.epub; result = 11606 }
00:00:01 i #776 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv_pt-br.fc1943s.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv_pt-br.fc1943s.md.pdf }
00:00:01 d #777 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv_pt-br.fc1943s.md.pdf; new_path = c:/home/git/vault/dist/data/work/cv_pt-br.fc1943s.md.pdf; result = 45640 }
00:00:01 i #778 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv_pt-br.fc1943s.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv_pt-br.fc1943s.md.html }
00:00:01 d #779 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv_pt-br.fc1943s.md.html; new_path = c:/home/git/vault/dist/data/work/cv_pt-br.fc1943s.md.html; result = 26660 }
00:00:01 i #780 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/cv_pt-br.fc1943s.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cv_pt-br.fc1943s.hangul.md }
00:00:01 v #781 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 v #781 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 d #783 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cv_pt-br.fc1943s.hangul.md; new_path = c:/home/git/vault/dist/data/work/cv_pt-br.fc1943s.hangul.md; result = 20859 }
00:00:01 v #784 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 d #785 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/ai/gpt3.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/ai/gpt3.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 i #786 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.hangul.md.epub }
00:00:01 d #787 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/work/work.fc1943s.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/work/work.fc1943s.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 d #788 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/mercadolivre/mercadolivre.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/mercadolivre/mercadolivre.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 d #789 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.hangul.md.epub; new_path = c:/home/git/vault/dist/data/dialects/korean.hangul.md.epub; result = 224165 }
00:00:01 i #790 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.hangul.md.pdf }
00:00:01 d #791 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/korean.hangul.md.pdf; result = 296445 }
00:00:01 i #792 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.hangul.md.html }
00:00:01 v #793 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 v #794 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 d #795 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/food/food.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/food/food.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 d #796 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/writing/writing.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/writing/writing.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 d #797 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.hangul.md.html; new_path = c:/home/git/vault/dist/data/dialects/korean.hangul.md.html; result = 1132691 }
00:00:01 i #798 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.md.epub }
00:00:01 d #799 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.md.epub; new_path = c:/home/git/vault/dist/data/dialects/korean.md.epub; result = 207001 }
00:00:01 i #800 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.md.pdf }
00:00:01 d #801 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/korean.md.pdf; result = 738483 }
00:00:01 i #802 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.md.html }
00:00:01 d #803 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.md.html; new_path = c:/home/git/vault/dist/data/dialects/korean.md.html; result = 823639 }
00:00:01 i #804 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.hangul.md }
00:00:01 d #805 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.hangul.md; new_path = c:/home/git/vault/dist/data/dialects/korean.hangul.md; result = 976987 }
00:00:01 d #806 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/dialects/korean.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/dialects/korean.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 v #807 > c4624204251d68c706be6da67cea892f5bfeead7
00:00:01 v #808 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 i #809 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.mp4.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.mp4.hangul.md.epub }
00:00:01 v #810 > 'c0dcdb33d63bcaff0a2b877d49653abc333d11ed'
00:00:01 d #811 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.mp4.hangul.md.epub; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.mp4.hangul.md.epub; result = 5778 }
00:00:01 i #812 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.mp4.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.mp4.hangul.md.pdf }
00:00:01 v #813 > d05c5d0f35097a6a85d45b60ebf092ab80c163c8
00:00:01 d #814 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.mp4.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.mp4.hangul.md.pdf; result = 5975 }
00:00:01 i #815 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.mp4.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.mp4.hangul.md.html }
00:00:01 d #816 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.mp4.hangul.md.html; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.mp4.hangul.md.html; result = 11198 }
00:00:01 i #817 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.mp4.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.mp4.md.epub }
00:00:01 d #818 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.mp4.md.epub; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.mp4.md.epub; result = 5630 }
00:00:01 i #819 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.mp4.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.mp4.md.pdf }
00:00:01 d #820 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.mp4.md.pdf; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.mp4.md.pdf; result = 12974 }
00:00:01 v #821 > a929a5a405afe3ec45d53978c7f1a3a6ebb78795
00:00:01 i #822 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.mp4.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.mp4.md.html }
00:00:01 d #823 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.mp4.md.html; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.mp4.md.html; result = 10750 }
00:00:01 i #824 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.mp4.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.mp4.hangul.md }
00:00:01 d #825 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.mp4.hangul.md; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.mp4.hangul.md; result = 1050 }
00:00:01 d #826 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/spirituality/spirituality.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/spirituality/spirituality.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 v #827 > 941beea1483213ff0ffe70d5c32f391923b16030
00:00:01 v #828 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 v #829 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 d #830 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/weather/weather.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/weather/weather.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 v #831 > a1f263813735775e0636a8b7a19d85259cbbbc8f
00:00:01 i #832 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.html.hangul.md.epub }
00:00:01 d #833 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.html.hangul.md.epub; result = 5512 }
00:00:01 i #834 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.html.hangul.md.pdf }
00:00:01 v #835 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 d #836 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.html.hangul.md.pdf; result = 3756 }
00:00:01 i #837 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.html.hangul.md.html }
00:00:01 v #838 > '23887617bd91a3849e5506af095bf349436acb0e'
00:00:01 d #839 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.html.hangul.md.html; result = 10092 }
00:00:01 i #840 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.html.md.epub }
00:00:01 i #841 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/food/food.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\food.mp3.hangul.md.epub }
00:00:01 d #842 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.html.md.epub; new_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.html.md.epub; result = 5443 }
00:00:01 i #843 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.html.md.pdf }
00:00:01 d #844 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\food.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/food/food.mp3.hangul.md.epub; result = 5607 }
00:00:01 d #845 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.html.md.pdf; new_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.html.md.pdf; result = 5929 }
00:00:01 i #846 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.html.md.html }
00:00:01 i #847 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/food/food.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\food.mp3.hangul.md.pdf }
00:00:01 d #848 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.html.md.html; new_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.html.md.html; result = 10060 }
00:00:01 d #849 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\food.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/food/food.mp3.hangul.md.pdf; result = 3726 }
00:00:01 i #850 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.html.hangul.md }
00:00:01 i #851 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/food/food.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\food.mp3.hangul.md.html }
00:00:01 d #852 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.html.hangul.md; new_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.html.hangul.md; result = 125 }
00:00:01 d #853 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\food.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/food/food.mp3.hangul.md.html; result = 10197 }
00:00:01 i #854 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/food/food.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\food.mp3.md.epub }
00:00:01 v #855 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 d #856 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\food.mp3.md.epub; new_path = c:/home/git/vault/dist/data/food/food.mp3.md.epub; result = 5493 }
00:00:01 i #857 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/food/food.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\food.mp3.md.pdf }
00:00:01 d #858 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/mercadolivre/mercadolivre.i574n.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/mercadolivre/mercadolivre.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 d #859 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\food.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/food/food.mp3.md.pdf; result = 6917 }
00:00:01 i #860 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/food/food.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\food.mp3.md.html }
00:00:01 i #860 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/gpt3.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gpt3.html.hangul.md.epub }
00:00:01 v #862 > '12b0a770aa67947704dc6cd7888ba8ca1df39a61'
00:00:01 d #863 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\food.mp3.md.html; new_path = c:/home/git/vault/dist/data/food/food.mp3.md.html; result = 10055 }
00:00:01 d #864 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gpt3.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/ai/gpt3.html.hangul.md.epub; result = 5733 }
00:00:01 i #865 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/gpt3.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gpt3.html.hangul.md.pdf }
00:00:01 i #866 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/food/food.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\food.mp3.hangul.md }
00:00:01 v #865 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:01 d #868 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\food.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/food/food.mp3.hangul.md; result = 273 }
00:00:01 d #868 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gpt3.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/ai/gpt3.html.hangul.md.pdf; result = 4899 }
00:00:01 i #870 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/gpt3.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gpt3.html.hangul.md.html }
00:00:01 d #871 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gpt3.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/ai/gpt3.html.hangul.md.html; result = 11175 }
00:00:01 i #872 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/gpt3.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gpt3.html.md.epub }
00:00:01 i #873 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/writing/writing.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\writing.html.hangul.md.epub }
00:00:01 d #874 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\writing.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/writing/writing.html.hangul.md.epub; result = 5533 }
00:00:01 d #874 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gpt3.html.md.epub; new_path = c:/home/git/vault/dist/data/ai/gpt3.html.md.epub; result = 5588 }
00:00:01 i #876 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/gpt3.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gpt3.html.md.pdf }
00:00:01 i #877 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/writing/writing.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\writing.html.hangul.md.pdf }
00:00:01 d #878 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gpt3.html.md.pdf; new_path = c:/home/git/vault/dist/data/ai/gpt3.html.md.pdf; result = 7458 }
00:00:01 d #879 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/gamedev/gamedev.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/gamedev/gamedev.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 d #880 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\writing.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/writing/writing.html.hangul.md.pdf; result = 3980 }
00:00:01 i #881 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/gpt3.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gpt3.html.md.html }
00:00:01 i #882 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/writing/writing.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\writing.html.hangul.md.html }
00:00:01 d #883 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gpt3.html.md.html; new_path = c:/home/git/vault/dist/data/ai/gpt3.html.md.html; result = 10887 }
00:00:01 d #884 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\writing.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/writing/writing.html.hangul.md.html; result = 10310 }
00:00:01 i #884 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/gpt3.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gpt3.html.hangul.md }
00:00:01 i #886 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/writing/writing.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\writing.html.md.epub }
00:00:01 v #887 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 d #888 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gpt3.html.hangul.md; new_path = c:/home/git/vault/dist/data/ai/gpt3.html.hangul.md; result = 941 }
00:00:01 d #889 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\writing.html.md.epub; new_path = c:/home/git/vault/dist/data/writing/writing.html.md.epub; result = 5459 }
00:00:01 i #890 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/writing/writing.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\writing.html.md.pdf }
00:00:01 d #891 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\writing.html.md.pdf; new_path = c:/home/git/vault/dist/data/writing/writing.html.md.pdf; result = 6044 }
00:00:01 i #892 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/writing/writing.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\writing.html.md.html }
00:00:01 d #893 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/work/work.fc1943s.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/work/work.fc1943s.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 d #894 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/ai/rhyme 6.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/ai/rhyme 6.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 d #895 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\writing.html.md.html; new_path = c:/home/git/vault/dist/data/writing/writing.html.md.html; result = 10241 }
00:00:01 i #896 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/writing/writing.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\writing.html.hangul.md }
00:00:01 d #897 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\writing.html.hangul.md; new_path = c:/home/git/vault/dist/data/writing/writing.html.hangul.md; result = 254 }
00:00:01 d #898 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/writing/writing.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/writing/writing.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:01 v #899 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:01 d #900 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/dialects/korean.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/dialects/korean.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:01 v #901 > c0dcdb33d63bcaff0a2b877d49653abc333d11ed
00:00:02 v #902 > '685814244b3cd01129b7add79b090cdfdd86b989'
00:00:02 v #903 > 'f17f49a270365e8c39076003cf9650004458b689'
00:00:02 v #904 > 'c0cfc32ae13aa63faf689421c4f9688e7dd36e97'
00:00:02 v #905 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 d #906 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/mercadolivre/mercadolivre.i574n.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/mercadolivre/mercadolivre.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 v #907 > 23887617bd91a3849e5506af095bf349436acb0e
00:00:02 v #908 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 v #909 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 v #910 > 12b0a770aa67947704dc6cd7888ba8ca1df39a61
00:00:02 v #911 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 i #912 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/weather/weather.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\weather.html.hangul.md.epub }
00:00:02 d #913 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/spirituality/spirituality.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/spirituality/spirituality.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 d #914 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/gamedev/gamedev.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/gamedev/gamedev.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 d #915 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\weather.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/weather/weather.html.hangul.md.epub; result = 6345 }
00:00:02 i #916 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/weather/weather.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\weather.html.hangul.md.pdf }
00:00:02 d #917 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\weather.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/weather/weather.html.hangul.md.pdf; result = 7389 }
00:00:02 i #918 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/weather/weather.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\weather.html.hangul.md.html }
00:00:02 d #919 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\weather.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/weather/weather.html.hangul.md.html; result = 15692 }
00:00:02 i #920 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/weather/weather.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\weather.html.md.epub }
00:00:02 d #921 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\weather.html.md.epub; new_path = c:/home/git/vault/dist/data/weather/weather.html.md.epub; result = 6091 }
00:00:02 i #922 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/weather/weather.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\weather.html.md.pdf }
00:00:02 d #923 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\weather.html.md.pdf; new_path = c:/home/git/vault/dist/data/weather/weather.html.md.pdf; result = 11345 }
00:00:02 i #924 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/weather/weather.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\weather.html.md.html }
00:00:02 d #925 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\weather.html.md.html; new_path = c:/home/git/vault/dist/data/weather/weather.html.md.html; result = 14475 }
00:00:02 v #926 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 i #927 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/weather/weather.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\weather.html.hangul.md }
00:00:02 d #928 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\weather.html.hangul.md; new_path = c:/home/git/vault/dist/data/weather/weather.html.hangul.md; result = 4193 }
00:00:02 v #929 > 'e80cfd7265fe2b552d3a6b9a6779d3be6747ce96'
00:00:02 v #930 > '18f02f65ac00e3313a7248eff4d1f1ba41a1ee08'
00:00:02 v #931 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 i #932 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/work.fc1943s.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\work.fc1943s.pdf.hangul.md.epub }
00:00:02 d #933 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/weather/weather.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/weather/weather.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 d #934 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\work.fc1943s.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/work/work.fc1943s.pdf.hangul.md.epub; result = 5704 }
00:00:02 i #935 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/work.fc1943s.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\work.fc1943s.pdf.hangul.md.pdf }
00:00:02 d #936 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\work.fc1943s.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/work/work.fc1943s.pdf.hangul.md.pdf; result = 4821 }
00:00:02 i #937 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/work.fc1943s.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\work.fc1943s.pdf.hangul.md.html }
00:00:02 d #938 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\work.fc1943s.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/work/work.fc1943s.pdf.hangul.md.html; result = 10407 }
00:00:02 i #939 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/work.fc1943s.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\work.fc1943s.pdf.md.epub }
00:00:02 d #940 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\work.fc1943s.pdf.md.epub; new_path = c:/home/git/vault/dist/data/work/work.fc1943s.pdf.md.epub; result = 5569 }
00:00:02 i #941 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/work.fc1943s.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\work.fc1943s.pdf.md.pdf }
00:00:02 d #942 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\work.fc1943s.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/work/work.fc1943s.pdf.md.pdf; result = 7732 }
00:00:02 i #943 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp3.hangul.md.epub }
00:00:02 i #943 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/work.fc1943s.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\work.fc1943s.pdf.md.html }
00:00:02 d #945 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/dialects/korean.mp3.hangul.md.epub; result = 5981 }
00:00:02 d #946 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\work.fc1943s.pdf.md.html; new_path = c:/home/git/vault/dist/data/work/work.fc1943s.pdf.md.html; result = 10236 }
00:00:02 i #947 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/work/work.fc1943s.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\work.fc1943s.pdf.hangul.md }
00:00:02 d #948 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\work.fc1943s.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/work/work.fc1943s.pdf.hangul.md; result = 440 }
00:00:02 i #949 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp3.hangul.md.pdf }
00:00:02 d #950 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/korean.mp3.hangul.md.pdf; result = 4747 }
00:00:02 i #951 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp3.hangul.md.html }
00:00:02 d #952 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/dialects/korean.mp3.hangul.md.html; result = 11902 }
00:00:02 i #953 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp3.md.epub }
00:00:02 d #954 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/workflow/tasks.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/workflow/tasks.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 d #955 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp3.md.epub; new_path = c:/home/git/vault/dist/data/dialects/korean.mp3.md.epub; result = 5786 }
00:00:02 i #956 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp3.md.pdf }
00:00:02 d #957 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/korean.mp3.md.pdf; result = 10213 }
00:00:02 i #958 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp3.md.html }
00:00:02 v #959 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 d #960 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp3.md.html; new_path = c:/home/git/vault/dist/data/dialects/korean.mp3.md.html; result = 11092 }
00:00:02 v #961 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 i #962 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp3.hangul.md }
00:00:02 d #963 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/ai/rhyme 6.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/ai/rhyme 6.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 d #964 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/dialects/korean.mp3.hangul.md; result = 1840 }
00:00:02 d #965 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/writing/writing.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/writing/writing.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 d #966 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/dialects/korean.mp4.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/dialects/korean.mp4.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 v #967 > f17f49a270365e8c39076003cf9650004458b689
00:00:02 v #968 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 v #969 > 685814244b3cd01129b7add79b090cdfdd86b989
00:00:02 i #970 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.i574n.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.i574n.hangul.md.epub }
00:00:02 d #971 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.i574n.hangul.md.epub; new_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.i574n.hangul.md.epub; result = 5515 }
00:00:02 i #972 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.i574n.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.i574n.hangul.md.pdf }
00:00:02 d #973 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.i574n.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.i574n.hangul.md.pdf; result = 4380 }
00:00:02 i #974 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.i574n.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.i574n.hangul.md.html }
00:00:02 d #975 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.i574n.hangul.md.html; new_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.i574n.hangul.md.html; result = 10091 }
00:00:02 i #976 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.i574n.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.i574n.md.epub }
00:00:02 d #977 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.i574n.md.epub; new_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.i574n.md.epub; result = 5452 }
00:00:02 i #978 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.i574n.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.i574n.md.pdf }
00:00:02 d #979 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.i574n.md.pdf; new_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.i574n.md.pdf; result = 5996 }
00:00:02 v #980 > c0cfc32ae13aa63faf689421c4f9688e7dd36e97
00:00:02 i #981 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.i574n.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.i574n.md.html }
00:00:02 v #982 > '6147bb686841492df1590912b0792a2e9ba8c22c'
00:00:02 d #983 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.i574n.md.html; new_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.i574n.md.html; result = 10060 }
00:00:02 i #984 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.i574n.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.i574n.hangul.md }
00:00:02 d #985 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mercadolivre.i574n.hangul.md; new_path = c:/home/git/vault/dist/data/mercadolivre/mercadolivre.i574n.hangul.md; result = 111 }
00:00:02 v #986 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 i #987 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.pdf.hangul.md.epub }
00:00:02 d #988 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.pdf.hangul.md.epub; result = 6272 }
00:00:02 d #989 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/microsoft/microsoft.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/microsoft/microsoft.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 i #990 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.pdf.hangul.md.pdf }
00:00:02 d #991 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.pdf.hangul.md.pdf; result = 5909 }
00:00:02 i #992 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.pdf.hangul.md.html }
00:00:02 d #993 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.pdf.hangul.md.html; result = 12326 }
00:00:02 i #994 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.pdf.md.epub }
00:00:02 v #995 > '22cc2919cdbd8e95094bb594f901a066bcc97026'
00:00:02 d #996 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.pdf.md.epub; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.pdf.md.epub; result = 5992 }
00:00:02 i #997 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.pdf.md.pdf }
00:00:02 d #998 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.pdf.md.pdf; result = 10691 }
00:00:02 v #999 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 i #999 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.pdf.md.html }
00:00:02 d #1001 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.pdf.md.html; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.pdf.md.html; result = 11587 }
00:00:02 i #1002 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/spirituality.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.pdf.hangul.md }
00:00:02 v #1003 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 d #1004 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spirituality.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/spirituality/spirituality.pdf.hangul.md; result = 2091 }
00:00:02 i #1005 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/gamedev/gamedev.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gamedev.pdf.hangul.md.epub }
00:00:02 d #1006 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gamedev.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/gamedev/gamedev.pdf.hangul.md.epub; result = 5719 }
00:00:02 i #1007 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/gamedev/gamedev.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gamedev.pdf.hangul.md.pdf }
00:00:02 d #1008 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gamedev.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/gamedev/gamedev.pdf.hangul.md.pdf; result = 4587 }
00:00:02 d #1009 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/weather/weather.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/weather/weather.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 i #1009 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/gamedev/gamedev.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gamedev.pdf.hangul.md.html }
00:00:02 d #1011 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gamedev.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/gamedev/gamedev.pdf.hangul.md.html; result = 10430 }
00:00:02 i #1012 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/gamedev/gamedev.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gamedev.pdf.md.epub }
00:00:02 v #1013 > '42d41c00c1027498867bb79e25d63be757ea1a27'
00:00:02 d #1014 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/spirituality/the-book-of-innocence_pt-br.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/spirituality/the-book-of-innocence_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 d #1015 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gamedev.pdf.md.epub; new_path = c:/home/git/vault/dist/data/gamedev/gamedev.pdf.md.epub; result = 5577 }
00:00:02 i #1016 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/gamedev/gamedev.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gamedev.pdf.md.pdf }
00:00:02 v #1017 > 18f02f65ac00e3313a7248eff4d1f1ba41a1ee08
00:00:02 d #1018 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gamedev.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/gamedev/gamedev.pdf.md.pdf; result = 9916 }
00:00:02 i #1019 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/gamedev/gamedev.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gamedev.pdf.md.html }
00:00:02 d #1020 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gamedev.pdf.md.html; new_path = c:/home/git/vault/dist/data/gamedev/gamedev.pdf.md.html; result = 10254 }
00:00:02 i #1021 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/gamedev/gamedev.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gamedev.pdf.hangul.md }
00:00:02 d #1022 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gamedev.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/gamedev/gamedev.pdf.hangul.md; result = 443 }
00:00:02 v #1023 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 v #1024 > e80cfd7265fe2b552d3a6b9a6779d3be6747ce96
00:00:02 d #1025 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/workflow/tasks.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/workflow/tasks.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 d #1026 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/gaming/gaming.7z.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/gaming/gaming.7z.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 v #1027 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 d #1028 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/dialects/korean.mp4.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/dialects/korean.mp4.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 v #1029 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 i #1030 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/writing/writing.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\writing.hangul.md.epub }
00:00:02 d #1031 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\writing.hangul.md.epub; new_path = c:/home/git/vault/dist/data/writing/writing.hangul.md.epub; result = 6409 }
00:00:02 i #1032 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/writing/writing.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\writing.hangul.md.pdf }
00:00:02 d #1033 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\writing.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/writing/writing.hangul.md.pdf; result = 5167 }
00:00:02 i #1034 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/writing/writing.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\writing.hangul.md.html }
00:00:02 d #1035 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\writing.hangul.md.html; new_path = c:/home/git/vault/dist/data/writing/writing.hangul.md.html; result = 12384 }
00:00:02 i #1036 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/writing/writing.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\writing.md.epub }
00:00:02 v #1037 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 d #1038 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\writing.md.epub; new_path = c:/home/git/vault/dist/data/writing/writing.md.epub; result = 6116 }
00:00:02 i #1039 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/writing/writing.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\writing.md.pdf }
00:00:02 d #1040 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\writing.md.pdf; new_path = c:/home/git/vault/dist/data/writing/writing.md.pdf; result = 14650 }
00:00:02 i #1041 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/writing/writing.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\writing.md.html }
00:00:02 d #1042 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\writing.md.html; new_path = c:/home/git/vault/dist/data/writing/writing.md.html; result = 11538 }
00:00:02 i #1043 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/writing/writing.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\writing.hangul.md }
00:00:02 i #1044 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/rhyme 6.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rhyme 6.hangul.md.epub }
00:00:02 d #1045 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rhyme 6.hangul.md.epub; new_path = c:/home/git/vault/dist/data/ai/rhyme 6.hangul.md.epub; result = 8994 }
00:00:02 i #1046 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/rhyme 6.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rhyme 6.hangul.md.pdf }
00:00:02 d #1047 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\writing.hangul.md; new_path = c:/home/git/vault/dist/data/writing/writing.hangul.md; result = 2298 }
00:00:02 d #1048 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rhyme 6.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/ai/rhyme 6.hangul.md.pdf; result = 5189 }
00:00:02 i #1049 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/rhyme 6.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rhyme 6.hangul.md.html }
00:00:02 d #1050 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/README.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/README.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 d #1051 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rhyme 6.hangul.md.html; new_path = c:/home/git/vault/dist/data/ai/rhyme 6.hangul.md.html; result = 18745 }
00:00:02 i #1052 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/rhyme 6.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rhyme 6.md.epub }
00:00:02 d #1053 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rhyme 6.md.epub; new_path = c:/home/git/vault/dist/data/ai/rhyme 6.md.epub; result = 8319 }
00:00:02 i #1054 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/rhyme 6.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rhyme 6.md.pdf }
00:00:02 d #1055 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rhyme 6.md.pdf; new_path = c:/home/git/vault/dist/data/ai/rhyme 6.md.pdf; result = 15308 }
00:00:02 i #1056 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/rhyme 6.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rhyme 6.md.html }
00:00:02 d #1057 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rhyme 6.md.html; new_path = c:/home/git/vault/dist/data/ai/rhyme 6.md.html; result = 16132 }
00:00:02 i #1058 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ai/rhyme 6.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rhyme 6.hangul.md }
00:00:02 d #1059 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rhyme 6.hangul.md; new_path = c:/home/git/vault/dist/data/ai/rhyme 6.hangul.md; result = 8043 }
00:00:02 d #1060 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/apple/apple.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/apple/apple.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 v #1061 > '146508acc29359c653f49c8cd52ca4d5f26eee02'
00:00:02 v #1062 > 6147bb686841492df1590912b0792a2e9ba8c22c
00:00:02 v #1063 > 'fe409a2db2f6562982abe31d4e36f94ac07f70cc'
00:00:02 v #1064 > '3c88c85e7787363faf664d56d7b40a12843fd18a'
00:00:02 v #1065 > 22cc2919cdbd8e95094bb594f901a066bcc97026
00:00:02 v #1066 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 d #1067 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/microsoft/microsoft.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/microsoft/microsoft.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 v #1068 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 v #1069 > 42d41c00c1027498867bb79e25d63be757ea1a27
00:00:02 i #1070 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/weather/weather.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\weather.hangul.md.epub }
00:00:02 d #1071 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\weather.hangul.md.epub; new_path = c:/home/git/vault/dist/data/weather/weather.hangul.md.epub; result = 9402 }
00:00:02 i #1072 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/weather/weather.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\weather.hangul.md.pdf }
00:00:02 d #1073 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\weather.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/weather/weather.hangul.md.pdf; result = 11855 }
00:00:02 i #1074 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/weather/weather.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\weather.hangul.md.html }
00:00:02 d #1075 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\weather.hangul.md.html; new_path = c:/home/git/vault/dist/data/weather/weather.hangul.md.html; result = 33105 }
00:00:02 v #1076 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 i #1077 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/weather/weather.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\weather.md.epub }
00:00:02 d #1078 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\weather.md.epub; new_path = c:/home/git/vault/dist/data/weather/weather.md.epub; result = 8779 }
00:00:02 i #1079 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/weather/weather.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\weather.md.pdf }
00:00:02 v #1080 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 d #1081 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\weather.md.pdf; new_path = c:/home/git/vault/dist/data/weather/weather.md.pdf; result = 28272 }
00:00:02 i #1082 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/weather/weather.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\weather.md.html }
00:00:02 v #1083 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 d #1084 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/gaming/gaming.7z.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/gaming/gaming.7z.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 d #1085 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\weather.md.html; new_path = c:/home/git/vault/dist/data/weather/weather.md.html; result = 27108 }
00:00:02 i #1086 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/weather/weather.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\weather.hangul.md }
00:00:02 i #1086 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/tasks.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tasks.hangul.md.epub }
00:00:02 d #1088 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\weather.hangul.md; new_path = c:/home/git/vault/dist/data/weather/weather.hangul.md; result = 17225 }
00:00:02 d #1089 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tasks.hangul.md.epub; new_path = c:/home/git/vault/dist/data/workflow/tasks.hangul.md.epub; result = 6545 }
00:00:02 i #1090 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/tasks.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tasks.hangul.md.pdf }
00:00:02 d #1091 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tasks.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/workflow/tasks.hangul.md.pdf; result = 7490 }
00:00:02 d #1092 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 i #1093 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/tasks.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tasks.hangul.md.html }
00:00:02 d #1094 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tasks.hangul.md.html; new_path = c:/home/git/vault/dist/data/workflow/tasks.hangul.md.html; result = 14784 }
00:00:02 v #1095 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 d #1096 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/web3/near.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/web3/near.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 i #1097 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/tasks.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tasks.md.epub }
00:00:02 d #1098 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tasks.md.epub; new_path = c:/home/git/vault/dist/data/workflow/tasks.md.epub; result = 6301 }
00:00:02 i #1099 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/tasks.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tasks.md.pdf }
00:00:02 i #1100 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.mp4.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp4.hangul.md.epub }
00:00:02 d #1101 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tasks.md.pdf; new_path = c:/home/git/vault/dist/data/workflow/tasks.md.pdf; result = 15525 }
00:00:02 i #1102 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/tasks.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tasks.md.html }
00:00:02 d #1103 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp4.hangul.md.epub; new_path = c:/home/git/vault/dist/data/dialects/korean.mp4.hangul.md.epub; result = 5788 }
00:00:02 d #1104 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tasks.md.html; new_path = c:/home/git/vault/dist/data/workflow/tasks.md.html; result = 13715 }
00:00:02 i #1105 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.mp4.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp4.hangul.md.pdf }
00:00:02 i #1106 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/tasks.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tasks.hangul.md }
00:00:02 d #1107 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp4.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/korean.mp4.hangul.md.pdf; result = 6422 }
00:00:02 d #1108 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tasks.hangul.md; new_path = c:/home/git/vault/dist/data/workflow/tasks.hangul.md; result = 3399 }
00:00:02 i #1109 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.mp4.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp4.hangul.md.html }
00:00:02 d #1110 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp4.hangul.md.html; new_path = c:/home/git/vault/dist/data/dialects/korean.mp4.hangul.md.html; result = 10862 }
00:00:02 i #1111 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.mp4.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp4.md.epub }
00:00:02 d #1112 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/workflow/test.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/workflow/test.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 d #1113 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp4.md.epub; new_path = c:/home/git/vault/dist/data/dialects/korean.mp4.md.epub; result = 5638 }
00:00:02 i #1114 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.mp4.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp4.md.pdf }
00:00:02 d #1115 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp4.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/korean.mp4.md.pdf; result = 14136 }
00:00:02 i #1116 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.mp4.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp4.md.html }
00:00:02 d #1117 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp4.md.html; new_path = c:/home/git/vault/dist/data/dialects/korean.mp4.md.html; result = 10545 }
00:00:02 i #1118 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.mp4.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp4.hangul.md }
00:00:02 d #1119 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.mp4.hangul.md; new_path = c:/home/git/vault/dist/data/dialects/korean.mp4.hangul.md; result = 849 }
00:00:02 v #1120 > '41bfc888bf58bff06904fa5ae4c5678f3363965d'
00:00:02 d #1121 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/dialects/korean.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/dialects/korean.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 v #1122 > '32e36a4c8b29b54ba54d7b9ad799ccf8af4b8708'
00:00:02 v #1123 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 d #1124 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/README.md"]; options = { command = git hash-object "c:/home/git/vault/dist/README.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 v #1125 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 d #1126 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/apple/apple.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/apple/apple.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 v #1127 > 146508acc29359c653f49c8cd52ca4d5f26eee02
00:00:02 v #1128 > fe409a2db2f6562982abe31d4e36f94ac07f70cc
00:00:02 v #1129 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 v #1130 > 3c88c85e7787363faf664d56d7b40a12843fd18a
00:00:02 i #1131 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/microsoft/microsoft.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.html.hangul.md.epub }
00:00:02 v #1132 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 d #1133 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/microsoft/microsoft.html.hangul.md.epub; result = 5524 }
00:00:02 i #1134 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/microsoft/microsoft.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.html.hangul.md.pdf }
00:00:02 d #1135 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/microsoft/microsoft.html.hangul.md.pdf; result = 3759 }
00:00:02 i #1136 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/microsoft/microsoft.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.html.hangul.md.html }
00:00:02 v #1137 > 'e650f9e626339147c1809ea9782558c2717dfc3d'
00:00:02 i #1138 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/gaming/gaming.7z.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gaming.7z.hangul.md.epub }
00:00:02 d #1139 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/microsoft/microsoft.html.hangul.md.html; result = 10105 }
00:00:02 i #1140 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/microsoft/microsoft.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.html.md.epub }
00:00:02 d #1141 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gaming.7z.hangul.md.epub; new_path = c:/home/git/vault/dist/data/gaming/gaming.7z.hangul.md.epub; result = 5566 }
00:00:02 i #1142 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/gaming/gaming.7z.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gaming.7z.hangul.md.pdf }
00:00:02 d #1143 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.html.md.epub; new_path = c:/home/git/vault/dist/data/microsoft/microsoft.html.md.epub; result = 5452 }
00:00:02 i #1144 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/microsoft/microsoft.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.html.md.pdf }
00:00:02 d #1145 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gaming.7z.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/gaming/gaming.7z.hangul.md.pdf; result = 3504 }
00:00:02 i #1146 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/gaming/gaming.7z.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gaming.7z.hangul.md.html }
00:00:02 d #1147 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.html.md.pdf; new_path = c:/home/git/vault/dist/data/microsoft/microsoft.html.md.pdf; result = 5945 }
00:00:02 i #1148 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/microsoft/microsoft.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.html.md.html }
00:00:02 d #1149 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gaming.7z.hangul.md.html; new_path = c:/home/git/vault/dist/data/gaming/gaming.7z.hangul.md.html; result = 10100 }
00:00:02 v #1150 > 'e6d9de7c036f23bcb7bdde8d98060b09ed696b52'
00:00:02 i #1151 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/gaming/gaming.7z.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gaming.7z.md.epub }
00:00:02 d #1152 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.html.md.html; new_path = c:/home/git/vault/dist/data/microsoft/microsoft.html.md.html; result = 10068 }
00:00:02 i #1153 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/microsoft/microsoft.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.html.hangul.md }
00:00:02 d #1154 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gaming.7z.md.epub; new_path = c:/home/git/vault/dist/data/gaming/gaming.7z.md.epub; result = 5476 }
00:00:02 i #1155 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/gaming/gaming.7z.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gaming.7z.md.pdf }
00:00:02 d #1156 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.html.hangul.md; new_path = c:/home/git/vault/dist/data/microsoft/microsoft.html.hangul.md; result = 138 }
00:00:02 d #1157 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gaming.7z.md.pdf; new_path = c:/home/git/vault/dist/data/gaming/gaming.7z.md.pdf; result = 7452 }
00:00:02 i #1158 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/gaming/gaming.7z.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gaming.7z.md.html }
00:00:02 d #1159 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gaming.7z.md.html; new_path = c:/home/git/vault/dist/data/gaming/gaming.7z.md.html; result = 10137 }
00:00:02 i #1160 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/gaming/gaming.7z.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\gaming.7z.hangul.md }
00:00:02 d #1161 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\gaming.7z.hangul.md; new_path = c:/home/git/vault/dist/data/gaming/gaming.7z.hangul.md; result = 196 }
00:00:02 d #1162 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/microsoft/microsoft.i574n.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/microsoft/microsoft.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 v #1163 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 i #1164 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-innocence_pt-br.md.epub }
00:00:02 d #1165 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/git/git.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/git/git.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 v #1166 > '0cc6d8990d1fe5ac8b9962d67abcc506613aec39'
00:00:02 v #1167 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 d #1168 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-innocence_pt-br.md.epub; new_path = c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.md.epub; result = 195380 }
00:00:02 i #1169 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-innocence_pt-br.md.pdf }
00:00:02 d #1170 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/web3/near.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/web3/near.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 d #1171 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-innocence_pt-br.md.pdf; new_path = c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.md.pdf; result = 711235 }
00:00:02 v #1172 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 i #1173 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-innocence_pt-br.md.html }
00:00:02 d #1174 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/workflow/test.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/workflow/test.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 d #1175 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-innocence_pt-br.md.html; new_path = c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.md.html; result = 659840 }
00:00:02 i #1176 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-innocence_pt-br.hangul.md }
00:00:02 d #1177 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\the-book-of-innocence_pt-br.hangul.md; new_path = c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.hangul.md; result = 905456 }
00:00:02 v #1178 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 v #1179 > 41bfc888bf58bff06904fa5ae4c5678f3363965d
00:00:02 d #1180 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/dialects/korean.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/dialects/korean.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 d #1181 runtime.execute_with_options / { file_name = crowbook; arguments = ["--verbose", "--to", "html", "--single", "c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.hangul.md", "--output", "c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.hangul.md.html", "--set", "html.css.add", "' body { color: #e8e6e3; background-color: #202324; } a { color: #989693; } pre { background-color: #1b1b1b; padding: 10px; } '"]; options = { command = crowbook --verbose --to html --single "c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.hangul.md" --output "c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.hangul.md.html" --set html.css.add \"' body { color: #e8e6e3; background-color: #202324; } a { color: #989693; } pre { background-color: #1b1b1b; padding: 10px; } '\" rendering.num_depth 6 rendering.highlight.theme \"Solarized (dark)\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 v #1182 > 32e36a4c8b29b54ba54d7b9ad799ccf8af4b8708
00:00:02 v #1183 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 v #1184 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 i #1185 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/README.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\README.hangul.md.epub }
00:00:02 i #1186 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/apple/apple.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\apple.html.hangul.md.epub }
00:00:02 d #1187 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\README.hangul.md.epub; new_path = c:/home/git/vault/dist/README.hangul.md.epub; result = 6994 }
00:00:02 i #1188 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/README.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\README.hangul.md.pdf }
00:00:02 d #1189 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\apple.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/apple/apple.html.hangul.md.epub; result = 5514 }
00:00:02 i #1190 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/apple/apple.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\apple.html.hangul.md.pdf }
00:00:02 d #1191 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\README.hangul.md.pdf; new_path = c:/home/git/vault/dist/README.hangul.md.pdf; result = 8628 }
00:00:02 i #1192 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/README.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\README.hangul.md.html }
00:00:02 d #1193 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\apple.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/apple/apple.html.hangul.md.pdf; result = 3754 }
00:00:02 i #1194 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/apple/apple.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\apple.html.hangul.md.html }
00:00:02 d #1195 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\README.hangul.md.html; new_path = c:/home/git/vault/dist/README.hangul.md.html; result = 16769 }
00:00:02 i #1196 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/README.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\README.md.epub }
00:00:02 d #1197 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\apple.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/apple/apple.html.hangul.md.html; result = 10099 }
00:00:02 i #1198 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/apple/apple.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\apple.html.md.epub }
00:00:02 d #1199 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\README.md.epub; new_path = c:/home/git/vault/dist/README.md.epub; result = 6759 }
00:00:02 d #1200 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\apple.html.md.epub; new_path = c:/home/git/vault/dist/data/apple/apple.html.md.epub; result = 5445 }
00:00:02 i #1201 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/README.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\README.md.pdf }
00:00:02 i #1202 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/apple/apple.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\apple.html.md.pdf }
00:00:02 d #1203 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\apple.html.md.pdf; new_path = c:/home/git/vault/dist/data/apple/apple.html.md.pdf; result = 5928 }
00:00:02 d #1204 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\README.md.pdf; new_path = c:/home/git/vault/dist/README.md.pdf; result = 13802 }
00:00:02 i #1205 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/apple/apple.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\apple.html.md.html }
00:00:02 i #1205 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/README.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\README.md.html }
00:00:02 v #1207 ! CROWBOOK 0.17.0
00:00:02 d #1208 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\apple.html.md.html; new_path = c:/home/git/vault/dist/data/apple/apple.html.md.html; result = 10062 }
00:00:02 d #1209 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\README.md.html; new_path = c:/home/git/vault/dist/README.md.html; result = 16583 }
00:00:02 i #1210 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/README.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\README.hangul.md }
00:00:02 i #1210 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/apple/apple.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\apple.html.hangul.md }
00:00:02 d #1212 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\apple.html.hangul.md; new_path = c:/home/git/vault/dist/data/apple/apple.html.hangul.md; result = 132 }
00:00:02 d #1213 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\README.hangul.md; new_path = c:/home/git/vault/dist/README.hangul.md; result = 3850 }
00:00:02 d #1214 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/web3/storage.fc1943s.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/web3/storage.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 d #1214 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/apple/apple.i574n.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/apple/apple.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 v #1216 > '9dff62934948131bfa2a14d61ea4e056cb9c4c15'
00:00:02 v #1217 > '1d96ec9b8172db5a5f0b1e515a843c9f7c3e2eb8'
00:00:02 v #1218 > e650f9e626339147c1809ea9782558c2717dfc3d
00:00:02 v #1219 > e6d9de7c036f23bcb7bdde8d98060b09ed696b52
00:00:02 v #1220 > 0cc6d8990d1fe5ac8b9962d67abcc506613aec39
00:00:02 v #1221 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 v #1222 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 d #1223 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/microsoft/microsoft.i574n.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/microsoft/microsoft.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 v #1224 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 i #1225 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/near.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\near.html.hangul.md.epub }
00:00:02 d #1226 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\near.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/web3/near.html.hangul.md.epub; result = 5579 }
00:00:02 i #1227 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/near.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\near.html.hangul.md.pdf }
00:00:02 d #1228 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/git/git.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/git/git.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 d #1229 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\near.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/web3/near.html.hangul.md.pdf; result = 4244 }
00:00:02 i #1230 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/near.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\near.html.hangul.md.html }
00:00:02 v #1231 ! 10:54:06 [ERROR] crowbook::book: Inline YAML block could not set String("치틀리") to String("우 리브루 다 이노센시아"): Error converting BookOption: unrecognized key '치틀리'
00:00:02 d #1232 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\near.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/web3/near.html.hangul.md.html; result = 10779 }
00:00:02 i #1233 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/near.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\near.html.md.epub }
00:00:02 v #1234 ! 10:54:06 [DEBUG] (1) crowbook::book: Attempting to generate html...
00:00:02 v #1235 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 d #1236 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\near.html.md.epub; new_path = c:/home/git/vault/dist/data/web3/near.html.md.epub; result = 5497 }
00:00:02 i #1237 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/near.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\near.html.md.pdf }
00:00:02 d #1238 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\near.html.md.pdf; new_path = c:/home/git/vault/dist/data/web3/near.html.md.pdf; result = 6571 }
00:00:02 i #1239 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/near.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\near.html.md.html }
00:00:02 i #1240 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/test.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\test.hangul.md.epub }
00:00:02 d #1241 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\near.html.md.html; new_path = c:/home/git/vault/dist/data/web3/near.html.md.html; result = 10627 }
00:00:02 i #1242 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/near.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\near.html.hangul.md }
00:00:02 d #1243 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\test.hangul.md.epub; new_path = c:/home/git/vault/dist/data/workflow/test.hangul.md.epub; result = 5936 }
00:00:02 i #1244 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/test.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\test.hangul.md.pdf }
00:00:02 d #1245 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\near.html.hangul.md; new_path = c:/home/git/vault/dist/data/web3/near.html.hangul.md; result = 545 }
00:00:02 v #1245 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 d #1247 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\test.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/workflow/test.hangul.md.pdf; result = 3053 }
00:00:02 i #1248 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/test.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\test.hangul.md.html }
00:00:02 d #1249 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\test.hangul.md.html; new_path = c:/home/git/vault/dist/data/workflow/test.hangul.md.html; result = 11432 }
00:00:02 i #1250 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/test.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\test.md.epub }
00:00:02 i #1251 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.pdf.hangul.md.epub }
00:00:02 d #1252 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\test.md.epub; new_path = c:/home/git/vault/dist/data/workflow/test.md.epub; result = 5400 }
00:00:02 d #1253 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/GirlOffGrid.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/GirlOffGrid.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 d #1254 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/dialects/korean.pdf.hangul.md.epub; result = 5763 }
00:00:02 i #1255 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/test.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\test.md.pdf }
00:00:02 i #1256 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.pdf.hangul.md.pdf }
00:00:02 d #1257 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\test.md.pdf; new_path = c:/home/git/vault/dist/data/workflow/test.md.pdf; result = 856 }
00:00:02 d #1258 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/korean.pdf.hangul.md.pdf; result = 5067 }
00:00:02 i #1259 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/test.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\test.md.html }
00:00:02 i #1260 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.pdf.hangul.md.html }
00:00:02 d #1261 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/dialects/korean.pdf.hangul.md.html; result = 10506 }
00:00:02 d #1262 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\test.md.html; new_path = c:/home/git/vault/dist/data/workflow/test.md.html; result = 11432 }
00:00:02 i #1263 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.pdf.md.epub }
00:00:02 i #1264 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/workflow/test.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\test.hangul.md }
00:00:02 d #1265 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.pdf.md.epub; new_path = c:/home/git/vault/dist/data/dialects/korean.pdf.md.epub; result = 5619 }
00:00:02 d #1266 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\test.hangul.md; new_path = c:/home/git/vault/dist/data/workflow/test.hangul.md; result = 1 }
00:00:02 i #1267 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.pdf.md.pdf }
00:00:02 d #1268 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/korean.pdf.md.pdf; result = 8555 }
00:00:02 i #1269 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.pdf.md.html }
00:00:02 d #1270 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.pdf.md.html; new_path = c:/home/git/vault/dist/data/dialects/korean.pdf.md.html; result = 10326 }
00:00:02 i #1271 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.pdf.hangul.md }
00:00:02 d #1272 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/dialects/korean.pdf.hangul.md; result = 518 }
00:00:02 d #1273 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/Stacy_x3.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/Stacy_x3.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 d #1274 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/dialects/korean.png.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/dialects/korean.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 v #1275 ! 10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #콘테우두 or #콘테우두.md
00:00:02 v #1276 ! 10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #인트로두상-프레젠사-이-세르 or #인트로두상-프레젠사-이-세르.md
00:00:02 v #1277 ! 10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #파르치-이-이덴치다지 or #파르치-이-이덴치다지.md
00:00:02 v #1278 ! 10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #1-이우-소-코녜시두 or #1-이우-소-코녜시두.md
00:00:02 v #1279 ! 10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #2-메모리아 or #2-메모리아.md
00:00:02 v #1280 ! 10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #3-아-베르다지-두-세르 or #3-아-베르다지-두-세르.md
00:00:02 v #1281 ! 10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #4-헤콘실리아상 or #4-헤콘실리아상.md
00:00:02 v #1282 ! 10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #파르치-이-이노센시아 or #파르치-이-이노센시아.md
00:00:02 v #1283 ! 10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #5-알렝-두-페카두 or #5-알렝-두-페카두.md
00:00:02 v #1284 ! 10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #6-웅-문두-헤노바두 or #6-웅-문두-헤노바두.md
00:00:02 v #1285 ! 10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #7-멘치-베르다데이라 or #7-멘치-베르다데이라.md
00:00:02 v #1286 ! 10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #이필로구 or #이필로구.md
00:00:02 v #1287 ! 10:54:06 [INFO] crowbook::book: Succesfully generated HTML (standalone page): data\spirituality\the-book-of-innocence_pt-br.hangul.md.html
00:00:02 v #1288 > 'cb0232045c36a04a06163a007ad562c73b568cbf'
00:00:02 v #1289 > 'c621e83d16716f578ef49a69593ad48d79b8d315'
00:00:02 v #1290 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 2238 }
00:00:02 w #1291 documents.crowbook / result contains ERROR / { exit_code = 0; output_path = c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.hangul.md.html; result = CROWBOOK 0.17.0
10:54:06 [ERROR] crowbook::book: Inline YAML block could not set String("치틀리") to String("우 리브루 다 이노센시아"): Error converting BookOption: unrecognized key '치틀리'
10:54:06 [DEBUG] (1) crowbook::book: Attempting to generate html...
10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #콘테우두 or #콘테우두.md
10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #인트로두상-프레젠사-이-세르 or #인트로두상-프레젠사-이-세르.md
10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #파르치-이-이덴치다지 or #파르치-이-이덴치다지.md
10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #1-이우-소-코녜시두 or #1-이우-소-코녜시두.md
10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #2-메모리아 or #2-메모리아.md
10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #3-아-베르다지-두-세르 or #3-아-베르다지-두-세르.md
10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #4-헤콘실리아상 or #4-헤콘실리아상.md
10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #파르치-이-이노센시아 or #파르치-이-이노센시아.md
10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #5-알렝-두-페카두 or #5-알렝-두-페카두.md
10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #6-웅-문두-헤노바두 or #6-웅-문두-헤노바두.md
10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #7-멘치-베르다데이라 or #7-멘치-베르다데이라.md
10:54:06 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #이필로구 or #이필로구.md
10:54:06 [INFO] crowbook::book: Succesfully generated HTML (standalone page): data\spirituality\the-book-of-innocence_pt-br.hangul.md.html }
00:00:02 v #1292 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 v #1293 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 d #1294 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/apple/apple.i574n.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/apple/apple.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 d #1295 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/web3/storage.fc1943s.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/web3/storage.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 d #1296 runtime.execute_with_options / { file_name = crowbook; arguments = ["--verbose", "--to", "pdf", "--single", "c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.hangul.md", "--output", "c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.hangul.md.pdf", "--set", "tex.paper.size", "a4paper", "tex.template.add", "\\pagenumbering{gobble}", "tex.template.add", "\\usepackage{polyglossia}", "tex.template.add", "\\setmainlanguage{korean}", "tex.template.add", "\\setmainfont{NanumGothicCoding}", "tex.font.size", "13", "rendering.num_depth", "6", "rendering.highlight.theme", "Solarized (dark)"]; options = { command = crowbook --verbose --to pdf --single "c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.hangul.md" --output "c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.hangul.md.pdf" --set tex.paper.size a4paper tex.template.add "\pagenumbering{gobble}" tex.template.add "\usepackage{polyglossia}" tex.template.add "\setmainlanguage{korean}" tex.template.add "\setmainfont{NanumGothicCoding}" tex.font.size 13 rendering.num_depth 6 rendering.highlight.theme \"Solarized (dark)\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 v #1297 ! CROWBOOK 0.17.0
00:00:02 v #1298 > 9dff62934948131bfa2a14d61ea4e056cb9c4c15
00:00:02 v #1299 > 1d96ec9b8172db5a5f0b1e515a843c9f7c3e2eb8
00:00:02 v #1300 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 i #1301 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/git/git.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\git.hangul.md.epub }
00:00:02 d #1302 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\git.hangul.md.epub; new_path = c:/home/git/vault/dist/data/git/git.hangul.md.epub; result = 7594 }
00:00:02 i #1303 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/git/git.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\git.hangul.md.pdf }
00:00:02 v #1304 > 'f5e82445d251df9ddf5c77ec561ad32ff1304781'
00:00:02 v #1305 > '58ba8dcbf16a6c08e6db4a9db3619c119f00757d'
00:00:02 d #1306 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\git.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/git/git.hangul.md.pdf; result = 6941 }
00:00:02 v #1307 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 i #1308 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/git/git.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\git.hangul.md.html }
00:00:02 d #1309 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\git.hangul.md.html; new_path = c:/home/git/vault/dist/data/git/git.hangul.md.html; result = 22492 }
00:00:02 i #1310 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/git/git.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\git.md.epub }
00:00:02 v #1311 > 'cf4ab3213857e7332c4aa6d4298bceed4722422c'
00:00:02 d #1312 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\git.md.epub; new_path = c:/home/git/vault/dist/data/git/git.md.epub; result = 7129 }
00:00:02 i #1313 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/git/git.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\git.md.pdf }
00:00:02 i #1314 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/microsoft/microsoft.i574n.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.i574n.hangul.md.epub }
00:00:02 d #1315 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\git.md.pdf; new_path = c:/home/git/vault/dist/data/git/git.md.pdf; result = 17923 }
00:00:02 i #1316 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/git/git.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\git.md.html }
00:00:02 d #1317 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.i574n.hangul.md.epub; new_path = c:/home/git/vault/dist/data/microsoft/microsoft.i574n.hangul.md.epub; result = 5503 }
00:00:02 i #1318 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/microsoft/microsoft.i574n.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.i574n.hangul.md.pdf }
00:00:02 d #1319 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\git.md.html; new_path = c:/home/git/vault/dist/data/git/git.md.html; result = 19663 }
00:00:02 i #1320 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/git/git.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\git.hangul.md }
00:00:02 d #1321 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.i574n.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/microsoft/microsoft.i574n.hangul.md.pdf; result = 4374 }
00:00:02 i #1322 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/microsoft/microsoft.i574n.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.i574n.hangul.md.html }
00:00:02 d #1323 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\git.hangul.md; new_path = c:/home/git/vault/dist/data/git/git.hangul.md; result = 7654 }
00:00:02 d #1324 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.i574n.hangul.md.html; new_path = c:/home/git/vault/dist/data/microsoft/microsoft.i574n.hangul.md.html; result = 10076 }
00:00:02 i #1325 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/microsoft/microsoft.i574n.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.i574n.md.epub }
00:00:02 d #1326 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.i574n.md.epub; new_path = c:/home/git/vault/dist/data/microsoft/microsoft.i574n.md.epub; result = 5444 }
00:00:02 i #1327 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/microsoft/microsoft.i574n.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.i574n.md.pdf }
00:00:02 d #1328 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/github/github.fc1943s.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/github/github.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 d #1329 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.i574n.md.pdf; new_path = c:/home/git/vault/dist/data/microsoft/microsoft.i574n.md.pdf; result = 5983 }
00:00:02 i #1330 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/microsoft/microsoft.i574n.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.i574n.md.html }
00:00:02 v #1331 ! 10:54:07 [ERROR] crowbook::book: Inline YAML block could not set String("치틀리") to String("우 리브루 다 이노센시아"): Error converting BookOption: unrecognized key '치틀리'
00:00:02 d #1332 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.i574n.md.html; new_path = c:/home/git/vault/dist/data/microsoft/microsoft.i574n.md.html; result = 10052 }
00:00:02 v #1333 ! 10:54:07 [DEBUG] (1) crowbook::book: Attempting to generate pdf...
00:00:02 i #1334 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/microsoft/microsoft.i574n.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.i574n.hangul.md }
00:00:02 d #1335 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\microsoft.i574n.hangul.md; new_path = c:/home/git/vault/dist/data/microsoft/microsoft.i574n.hangul.md; result = 96 }
00:00:02 v #1336 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 v #1337 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 d #1338 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/motorcycle/motorcycle.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/motorcycle/motorcycle.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 d #1339 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/Stacy_x3.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/Stacy_x3.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 d #1340 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/GirlOffGrid.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/GirlOffGrid.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 v #1341 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 d #1342 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/dialects/korean.png.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/dialects/korean.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 v #1343 ! 10:54:07 [DEBUG] (1) crowbook::latex: Attempting to run LaTeX on generated file
00:00:02 v #1344 > c621e83d16716f578ef49a69593ad48d79b8d315
00:00:02 v #1345 > cb0232045c36a04a06163a007ad562c73b568cbf
00:00:02 v #1346 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 i #1347 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/storage.fc1943s.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\storage.fc1943s.hangul.md.epub }
00:00:02 v #1348 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 d #1349 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\storage.fc1943s.hangul.md.epub; new_path = c:/home/git/vault/dist/data/web3/storage.fc1943s.hangul.md.epub; result = 5513 }
00:00:02 i #1350 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/storage.fc1943s.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\storage.fc1943s.hangul.md.pdf }
00:00:02 d #1351 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\storage.fc1943s.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/web3/storage.fc1943s.hangul.md.pdf; result = 3989 }
00:00:02 i #1352 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/storage.fc1943s.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\storage.fc1943s.hangul.md.html }
00:00:02 i #1353 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/apple/apple.i574n.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\apple.i574n.hangul.md.epub }
00:00:02 d #1354 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\storage.fc1943s.hangul.md.html; new_path = c:/home/git/vault/dist/data/web3/storage.fc1943s.hangul.md.html; result = 10077 }
00:00:02 i #1355 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/storage.fc1943s.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\storage.fc1943s.md.epub }
00:00:02 d #1356 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\apple.i574n.hangul.md.epub; new_path = c:/home/git/vault/dist/data/apple/apple.i574n.hangul.md.epub; result = 5510 }
00:00:02 d #1357 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\storage.fc1943s.md.epub; new_path = c:/home/git/vault/dist/data/web3/storage.fc1943s.md.epub; result = 5459 }
00:00:02 i #1358 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/apple/apple.i574n.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\apple.i574n.hangul.md.pdf }
00:00:02 i #1359 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/storage.fc1943s.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\storage.fc1943s.md.pdf }
00:00:02 d #1360 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\apple.i574n.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/apple/apple.i574n.hangul.md.pdf; result = 4375 }
00:00:02 d #1361 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\storage.fc1943s.md.pdf; new_path = c:/home/git/vault/dist/data/web3/storage.fc1943s.md.pdf; result = 6430 }
00:00:02 i #1362 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/apple/apple.i574n.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\apple.i574n.hangul.md.html }
00:00:02 i #1363 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/storage.fc1943s.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\storage.fc1943s.md.html }
00:00:02 d #1364 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\storage.fc1943s.md.html; new_path = c:/home/git/vault/dist/data/web3/storage.fc1943s.md.html; result = 10153 }
00:00:02 d #1364 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\apple.i574n.hangul.md.html; new_path = c:/home/git/vault/dist/data/apple/apple.i574n.hangul.md.html; result = 10079 }
00:00:02 i #1366 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/apple/apple.i574n.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\apple.i574n.md.epub }
00:00:02 i #1367 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/storage.fc1943s.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\storage.fc1943s.hangul.md }
00:00:02 d #1368 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\apple.i574n.md.epub; new_path = c:/home/git/vault/dist/data/apple/apple.i574n.md.epub; result = 5448 }
00:00:02 d #1369 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\storage.fc1943s.hangul.md; new_path = c:/home/git/vault/dist/data/web3/storage.fc1943s.hangul.md; result = 173 }
00:00:02 i #1370 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/apple/apple.i574n.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\apple.i574n.md.pdf }
00:00:02 d #1371 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\apple.i574n.md.pdf; new_path = c:/home/git/vault/dist/data/apple/apple.i574n.md.pdf; result = 5913 }
00:00:02 i #1372 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/apple/apple.i574n.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\apple.i574n.md.html }
00:00:02 d #1373 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\apple.i574n.md.html; new_path = c:/home/git/vault/dist/data/apple/apple.i574n.md.html; result = 10053 }
00:00:02 i #1374 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/apple/apple.i574n.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\apple.i574n.hangul.md }
00:00:02 d #1375 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\apple.i574n.hangul.md; new_path = c:/home/git/vault/dist/data/apple/apple.i574n.hangul.md; result = 98 }
00:00:02 d #1376 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/web3/storage.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/web3/storage.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 d #1377 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/art/art.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/art/art.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 v #1378 > 'aa9b632fd28a65b90889fceeaac081b022d42341'
00:00:02 v #1379 > cf4ab3213857e7332c4aa6d4298bceed4722422c
00:00:02 v #1380 > 58ba8dcbf16a6c08e6db4a9db3619c119f00757d
00:00:02 v #1381 > '24ca6b8bb4703b72584fc04f018322ca2fbb243a'
00:00:02 v #1382 > f5e82445d251df9ddf5c77ec561ad32ff1304781
00:00:02 v #1383 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 v #1384 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 d #1385 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/github/github.fc1943s.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/github/github.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 v #1386 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 i #1387 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/GirlOffGrid.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\GirlOffGrid.html.hangul.md.epub }
00:00:02 d #1388 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\GirlOffGrid.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/GirlOffGrid.html.hangul.md.epub; result = 5569 }
00:00:02 i #1389 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/GirlOffGrid.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\GirlOffGrid.html.hangul.md.pdf }
00:00:02 v #1390 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 d #1391 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\GirlOffGrid.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/GirlOffGrid.html.hangul.md.pdf; result = 4626 }
00:00:02 i #1392 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/GirlOffGrid.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\GirlOffGrid.html.hangul.md.html }
00:00:02 d #1393 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\GirlOffGrid.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/GirlOffGrid.html.hangul.md.html; result = 11683 }
00:00:02 i #1394 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/GirlOffGrid.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\GirlOffGrid.html.md.epub }
00:00:02 i #1395 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Stacy_x3.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Stacy_x3.html.hangul.md.epub }
00:00:02 d #1396 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\GirlOffGrid.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/GirlOffGrid.html.md.epub; result = 5494 }
00:00:02 d #1397 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Stacy_x3.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/Stacy_x3.html.hangul.md.epub; result = 5564 }
00:00:02 i #1398 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/GirlOffGrid.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\GirlOffGrid.html.md.pdf }
00:00:02 d #1398 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/motorcycle/motorcycle.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/motorcycle/motorcycle.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 v #1400 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 i #1401 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Stacy_x3.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Stacy_x3.html.hangul.md.pdf }
00:00:02 d #1402 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\GirlOffGrid.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/GirlOffGrid.html.md.pdf; result = 5019 }
00:00:02 d #1403 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Stacy_x3.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Stacy_x3.html.hangul.md.pdf; result = 4843 }
00:00:02 i #1404 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/GirlOffGrid.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\GirlOffGrid.html.md.html }
00:00:02 i #1405 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Stacy_x3.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Stacy_x3.html.hangul.md.html }
00:00:02 d #1406 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\GirlOffGrid.html.md.html; new_path = c:/home/git/vault/dist/data/chat/GirlOffGrid.html.md.html; result = 11642 }
00:00:02 d #1407 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Stacy_x3.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/Stacy_x3.html.hangul.md.html; result = 11676 }
00:00:02 i #1408 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/GirlOffGrid.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\GirlOffGrid.html.hangul.md }
00:00:02 i #1409 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Stacy_x3.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Stacy_x3.html.md.epub }
00:00:02 i #1410 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.png.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.png.hangul.md.epub }
00:00:02 d #1411 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.png.hangul.md.epub; new_path = c:/home/git/vault/dist/data/dialects/korean.png.hangul.md.epub; result = 5892 }
00:00:02 d #1412 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\GirlOffGrid.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/GirlOffGrid.html.hangul.md; result = 152 }
00:00:02 i #1413 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.png.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.png.hangul.md.pdf }
00:00:02 d #1414 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Stacy_x3.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/Stacy_x3.html.md.epub; result = 5492 }
00:00:02 i #1415 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Stacy_x3.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Stacy_x3.html.md.pdf }
00:00:02 d #1416 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.png.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/korean.png.hangul.md.pdf; result = 2464 }
00:00:02 i #1417 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.png.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.png.hangul.md.html }
00:00:02 d #1418 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Stacy_x3.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Stacy_x3.html.md.pdf; result = 4906 }
00:00:02 i #1419 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Stacy_x3.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Stacy_x3.html.md.html }
00:00:02 d #1420 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.png.hangul.md.html; new_path = c:/home/git/vault/dist/data/dialects/korean.png.hangul.md.html; result = 11145 }
00:00:02 i #1421 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.png.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.png.md.epub }
00:00:02 d #1422 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/HinakoHime.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/HinakoHime.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 d #1423 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Stacy_x3.html.md.html; new_path = c:/home/git/vault/dist/data/chat/Stacy_x3.html.md.html; result = 11639 }
00:00:02 i #1424 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Stacy_x3.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Stacy_x3.html.hangul.md }
00:00:02 d #1425 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.png.md.epub; new_path = c:/home/git/vault/dist/data/dialects/korean.png.md.epub; result = 5706 }
00:00:02 i #1426 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.png.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.png.md.pdf }
00:00:02 d #1427 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Stacy_x3.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/Stacy_x3.html.hangul.md; result = 145 }
00:00:02 d #1428 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.png.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/korean.png.md.pdf; result = 2466 }
00:00:02 i #1429 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.png.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.png.md.html }
00:00:02 d #1430 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.png.md.html; new_path = c:/home/git/vault/dist/data/dialects/korean.png.md.html; result = 10739 }
00:00:02 i #1431 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/korean.png.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\korean.png.hangul.md }
00:00:02 d #1432 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\korean.png.hangul.md; new_path = c:/home/git/vault/dist/data/dialects/korean.png.hangul.md; result = 1018 }
00:00:02 d #1433 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/Stephanie.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/Stephanie.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 d #1434 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/dialects/portuguese.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/dialects/portuguese.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 v #1435 > '8f0f7e98d0572dee6df62f9ca6e3d59bd4d2a4c3'
00:00:02 v #1436 > '02380a4f67cd6e997b3a6908ff083f06fd787dc3'
00:00:02 v #1437 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 v #1438 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 d #1439 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/art/art.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/art/art.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 d #1440 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/web3/storage.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/web3/storage.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 v #1441 > aa9b632fd28a65b90889fceeaac081b022d42341
00:00:02 v #1442 > 24ca6b8bb4703b72584fc04f018322ca2fbb243a
00:00:02 v #1443 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 i #1444 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.fc1943s.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.fc1943s.hangul.md.epub }
00:00:02 d #1445 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.fc1943s.hangul.md.epub; new_path = c:/home/git/vault/dist/data/github/github.fc1943s.hangul.md.epub; result = 5509 }
00:00:02 i #1446 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.fc1943s.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.fc1943s.hangul.md.pdf }
00:00:02 v #1447 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:02 v #1448 > 'd885db673a3eadbfc7bfed33142a1fa33e87152b'
00:00:02 d #1449 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.fc1943s.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/github/github.fc1943s.hangul.md.pdf; result = 4530 }
00:00:02 i #1450 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.fc1943s.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.fc1943s.hangul.md.html }
00:00:02 d #1451 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.fc1943s.hangul.md.html; new_path = c:/home/git/vault/dist/data/github/github.fc1943s.hangul.md.html; result = 10083 }
00:00:02 i #1452 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.fc1943s.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.fc1943s.md.epub }
00:00:02 i #1453 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/motorcycle/motorcycle.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\motorcycle.hangul.md.epub }
00:00:02 d #1454 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.fc1943s.md.epub; new_path = c:/home/git/vault/dist/data/github/github.fc1943s.md.epub; result = 5448 }
00:00:02 d #1455 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\motorcycle.hangul.md.epub; new_path = c:/home/git/vault/dist/data/motorcycle/motorcycle.hangul.md.epub; result = 27699 }
00:00:02 i #1456 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.fc1943s.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.fc1943s.md.pdf }
00:00:02 i #1457 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/motorcycle/motorcycle.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\motorcycle.hangul.md.pdf }
00:00:02 d #1458 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.fc1943s.md.pdf; new_path = c:/home/git/vault/dist/data/github/github.fc1943s.md.pdf; result = 6403 }
00:00:02 i #1459 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.fc1943s.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.fc1943s.md.html }
00:00:02 d #1460 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\motorcycle.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/motorcycle/motorcycle.hangul.md.pdf; result = 32901 }
00:00:02 v #1461 > 'd1f86efd6a618fd5e2c37d84ff58297aab9949b4'
00:00:02 d #1462 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.fc1943s.md.html; new_path = c:/home/git/vault/dist/data/github/github.fc1943s.md.html; result = 10056 }
00:00:02 i #1463 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.fc1943s.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.fc1943s.hangul.md }
00:00:02 v #1464 > 'de3214502cd7688c3205782f465182caf2927a32'
00:00:02 i #1465 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/motorcycle/motorcycle.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\motorcycle.hangul.md.html }
00:00:02 d #1466 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.fc1943s.hangul.md; new_path = c:/home/git/vault/dist/data/github/github.fc1943s.hangul.md; result = 102 }
00:00:02 d #1467 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\motorcycle.hangul.md.html; new_path = c:/home/git/vault/dist/data/motorcycle/motorcycle.hangul.md.html; result = 121331 }
00:00:02 i #1468 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/motorcycle/motorcycle.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\motorcycle.md.epub }
00:00:02 d #1469 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\motorcycle.md.epub; new_path = c:/home/git/vault/dist/data/motorcycle/motorcycle.md.epub; result = 24962 }
00:00:02 i #1470 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/motorcycle/motorcycle.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\motorcycle.md.pdf }
00:00:02 d #1471 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/github/github.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/github/github.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 d #1472 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\motorcycle.md.pdf; new_path = c:/home/git/vault/dist/data/motorcycle/motorcycle.md.pdf; result = 89645 }
00:00:02 i #1473 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/motorcycle/motorcycle.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\motorcycle.md.html }
00:00:02 d #1474 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\motorcycle.md.html; new_path = c:/home/git/vault/dist/data/motorcycle/motorcycle.md.html; result = 85924 }
00:00:02 v #1475 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 i #1476 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/motorcycle/motorcycle.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\motorcycle.hangul.md }
00:00:02 d #1477 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\motorcycle.hangul.md; new_path = c:/home/git/vault/dist/data/motorcycle/motorcycle.hangul.md; result = 94916 }
00:00:02 d #1478 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/Stephanie.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/Stephanie.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 v #1479 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 d #1480 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/music/mecha-haze.7z.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/music/mecha-haze.7z.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:02 v #1481 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:02 d #1482 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/dialects/portuguese.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/dialects/portuguese.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 d #1483 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/HinakoHime.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/HinakoHime.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:02 v #1484 > 02380a4f67cd6e997b3a6908ff083f06fd787dc3
00:00:02 v #1485 > 8f0f7e98d0572dee6df62f9ca6e3d59bd4d2a4c3
00:00:03 v #1486 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 v #1487 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 i #1488 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/storage.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\storage.html.hangul.md.epub }
00:00:03 i #1489 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/art/art.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\art.hangul.md.epub }
00:00:03 d #1490 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\storage.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/web3/storage.html.hangul.md.epub; result = 5516 }
00:00:03 i #1491 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/storage.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\storage.html.hangul.md.pdf }
00:00:03 d #1492 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\art.hangul.md.epub; new_path = c:/home/git/vault/dist/data/art/art.hangul.md.epub; result = 16105 }
00:00:03 d #1493 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\storage.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/web3/storage.html.hangul.md.pdf; result = 3757 }
00:00:03 i #1494 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/art/art.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\art.hangul.md.pdf }
00:00:03 i #1495 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/storage.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\storage.html.hangul.md.html }
00:00:03 d #1496 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\art.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/art/art.hangul.md.pdf; result = 17380 }
00:00:03 d #1497 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\storage.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/web3/storage.html.hangul.md.html; result = 10102 }
00:00:03 i #1498 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/art/art.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\art.hangul.md.html }
00:00:03 i #1499 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/storage.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\storage.html.md.epub }
00:00:03 d #1500 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\art.hangul.md.html; new_path = c:/home/git/vault/dist/data/art/art.hangul.md.html; result = 65279 }
00:00:03 d #1501 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\storage.html.md.epub; new_path = c:/home/git/vault/dist/data/web3/storage.html.md.epub; result = 5444 }
00:00:03 i #1502 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/art/art.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\art.md.epub }
00:00:03 d #1503 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\art.md.epub; new_path = c:/home/git/vault/dist/data/art/art.md.epub; result = 14777 }
00:00:03 i #1504 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/art/art.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\art.md.pdf }
00:00:03 i #1505 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/storage.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\storage.html.md.pdf }
00:00:03 d #1506 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\art.md.pdf; new_path = c:/home/git/vault/dist/data/art/art.md.pdf; result = 52219 }
00:00:03 i #1507 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/art/art.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\art.md.html }
00:00:03 d #1508 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\storage.html.md.pdf; new_path = c:/home/git/vault/dist/data/web3/storage.html.md.pdf; result = 5809 }
00:00:03 i #1509 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/storage.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\storage.html.md.html }
00:00:03 d #1510 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\art.md.html; new_path = c:/home/git/vault/dist/data/art/art.md.html; result = 47098 }
00:00:03 d #1511 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\storage.html.md.html; new_path = c:/home/git/vault/dist/data/web3/storage.html.md.html; result = 10062 }
00:00:03 i #1512 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/art/art.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\art.hangul.md }
00:00:03 i #1513 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/storage.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\storage.html.hangul.md }
00:00:03 d #1514 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\art.hangul.md; new_path = c:/home/git/vault/dist/data/art/art.hangul.md; result = 47256 }
00:00:03 d #1515 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\storage.html.hangul.md; new_path = c:/home/git/vault/dist/data/web3/storage.html.hangul.md; result = 135 }
00:00:03 d #1516 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/astrology/astrology.fc1943s.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/astrology/astrology.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 d #1517 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/web3/web3.fc1943s.7z.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/web3/web3.fc1943s.7z.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 v #1518 > '59cafeb2eab9137533d826d1f22e9b6de89480de'
00:00:03 v #1519 > d885db673a3eadbfc7bfed33142a1fa33e87152b
00:00:03 v #1520 > de3214502cd7688c3205782f465182caf2927a32
00:00:03 v #1521 > d1f86efd6a618fd5e2c37d84ff58297aab9949b4
00:00:03 v #1522 > '3aefa48e6c711a297a64c548bd78a747c26bc2ff'
00:00:03 v #1523 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 i #1524 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Stephanie.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Stephanie.html.hangul.md.epub }
00:00:03 v #1525 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 v #1526 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 d #1527 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Stephanie.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/Stephanie.html.hangul.md.epub; result = 5560 }
00:00:03 d #1528 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/github/github.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/github/github.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 i #1529 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Stephanie.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Stephanie.html.hangul.md.pdf }
00:00:03 v #1530 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 d #1531 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Stephanie.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Stephanie.html.hangul.md.pdf; result = 4626 }
00:00:03 i #1532 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Stephanie.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Stephanie.html.hangul.md.html }
00:00:03 d #1533 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Stephanie.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/Stephanie.html.hangul.md.html; result = 11674 }
00:00:03 i #1534 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/HinakoHime.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\HinakoHime.html.hangul.md.epub }
00:00:03 i #1535 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/portuguese.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\portuguese.hangul.md.epub }
00:00:03 i #1536 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Stephanie.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Stephanie.html.md.epub }
00:00:03 d #1537 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\portuguese.hangul.md.epub; new_path = c:/home/git/vault/dist/data/dialects/portuguese.hangul.md.epub; result = 10344 }
00:00:03 d #1537 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\HinakoHime.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/HinakoHime.html.hangul.md.epub; result = 5563 }
00:00:03 d #1539 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Stephanie.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/Stephanie.html.md.epub; result = 5491 }
00:00:03 i #1540 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/HinakoHime.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\HinakoHime.html.hangul.md.pdf }
00:00:03 i #1541 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/portuguese.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\portuguese.hangul.md.pdf }
00:00:03 i #1542 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Stephanie.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Stephanie.html.md.pdf }
00:00:03 v #1543 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #1544 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\portuguese.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/portuguese.hangul.md.pdf; result = 8568 }
00:00:03 d #1545 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\HinakoHime.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/HinakoHime.html.hangul.md.pdf; result = 4626 }
00:00:03 d #1546 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Stephanie.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Stephanie.html.md.pdf; result = 4759 }
00:00:03 i #1547 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/HinakoHime.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\HinakoHime.html.hangul.md.html }
00:00:03 i #1548 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/portuguese.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\portuguese.hangul.md.html }
00:00:03 i #1549 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Stephanie.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Stephanie.html.md.html }
00:00:03 d #1550 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\HinakoHime.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/HinakoHime.html.hangul.md.html; result = 11677 }
00:00:03 d #1551 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\portuguese.hangul.md.html; new_path = c:/home/git/vault/dist/data/dialects/portuguese.hangul.md.html; result = 31204 }
00:00:03 i #1552 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/portuguese.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\portuguese.md.epub }
00:00:03 i #1553 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/HinakoHime.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\HinakoHime.html.md.epub }
00:00:03 d #1554 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Stephanie.html.md.html; new_path = c:/home/git/vault/dist/data/chat/Stephanie.html.md.html; result = 11640 }
00:00:03 i #1555 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Stephanie.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Stephanie.html.hangul.md }
00:00:03 d #1556 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/music/mecha-haze.7z.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/music/mecha-haze.7z.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 d #1557 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\HinakoHime.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/HinakoHime.html.md.epub; result = 5494 }
00:00:03 d #1558 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\portuguese.md.epub; new_path = c:/home/git/vault/dist/data/dialects/portuguese.md.epub; result = 9453 }
00:00:03 d #1559 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Stephanie.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/Stephanie.html.hangul.md; result = 143 }
00:00:03 i #1560 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/HinakoHime.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\HinakoHime.html.md.pdf }
00:00:03 i #1561 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/portuguese.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\portuguese.md.pdf }
00:00:03 d #1562 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\HinakoHime.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/HinakoHime.html.md.pdf; result = 4912 }
00:00:03 i #1563 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/HinakoHime.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\HinakoHime.html.md.html }
00:00:03 d #1564 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\portuguese.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/portuguese.md.pdf; result = 23477 }
00:00:03 i #1565 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/portuguese.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\portuguese.md.html }
00:00:03 d #1566 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\HinakoHime.html.md.html; new_path = c:/home/git/vault/dist/data/chat/HinakoHime.html.md.html; result = 11641 }
00:00:03 i #1567 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/HinakoHime.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\HinakoHime.html.hangul.md }
00:00:03 d #1568 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\portuguese.md.html; new_path = c:/home/git/vault/dist/data/dialects/portuguese.md.html; result = 25635 }
00:00:03 i #1569 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/portuguese.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\portuguese.hangul.md }
00:00:03 d #1570 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\HinakoHime.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/HinakoHime.html.hangul.md; result = 146 }
00:00:03 d #1571 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/TinaHale.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/TinaHale.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 d #1572 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/ImperialKiss.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/ImperialKiss.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 d #1573 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\portuguese.hangul.md; new_path = c:/home/git/vault/dist/data/dialects/portuguese.hangul.md; result = 17654 }
00:00:03 d #1574 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/dialects/spanish.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/dialects/spanish.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 v #1575 > '41cae76c6cc16843a084f0ce3da67875305b0e79'
00:00:03 v #1576 > '55a0a78a273271af1907f429f6ba3e2f9a521847'
00:00:03 v #1577 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #1578 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/astrology/astrology.fc1943s.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/astrology/astrology.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 v #1579 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #1580 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/web3/web3.fc1943s.7z.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/web3/web3.fc1943s.7z.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 v #1581 > 59cafeb2eab9137533d826d1f22e9b6de89480de
00:00:03 v #1582 > 3aefa48e6c711a297a64c548bd78a747c26bc2ff
00:00:03 v #1583 > '284d6ee9cb67d81827e8769e3fe9c1682cb3f2bf'
00:00:03 v #1584 > '774732b6fcb822c743c608aef727c05b0694c557'
00:00:03 v #1585 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 v #1586 > '6e0a5e5f4b8e22db3ef519cf6b1c5834c60896be'
00:00:03 v #1587 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 i #1588 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.7z.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.7z.hangul.md.epub }
00:00:03 d #1589 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.7z.hangul.md.epub; new_path = c:/home/git/vault/dist/data/music/mecha-haze.7z.hangul.md.epub; result = 5933 }
00:00:03 i #1590 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.7z.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.7z.hangul.md.pdf }
00:00:03 i #1591 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.html.hangul.md.epub }
00:00:03 d #1592 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.7z.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/music/mecha-haze.7z.hangul.md.pdf; result = 8529 }
00:00:03 i #1593 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.7z.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.7z.hangul.md.html }
00:00:03 d #1594 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/github/github.html.hangul.md.epub; result = 5650 }
00:00:03 i #1595 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.html.hangul.md.pdf }
00:00:03 d #1596 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.7z.hangul.md.html; new_path = c:/home/git/vault/dist/data/music/mecha-haze.7z.hangul.md.html; result = 11189 }
00:00:03 i #1597 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.7z.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.7z.md.epub }
00:00:03 d #1598 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/github/github.html.hangul.md.pdf; result = 4755 }
00:00:03 i #1599 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.html.hangul.md.html }
00:00:03 d #1600 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.7z.md.epub; new_path = c:/home/git/vault/dist/data/music/mecha-haze.7z.md.epub; result = 5796 }
00:00:03 d #1601 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/github/github.html.hangul.md.html; result = 10503 }
00:00:03 i #1602 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.7z.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.7z.md.pdf }
00:00:03 i #1603 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.html.md.epub }
00:00:03 d #1604 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.7z.md.pdf; new_path = c:/home/git/vault/dist/data/music/mecha-haze.7z.md.pdf; result = 12072 }
00:00:03 d #1605 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.html.md.epub; new_path = c:/home/git/vault/dist/data/github/github.html.md.epub; result = 5534 }
00:00:03 i #1606 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.7z.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.7z.md.html }
00:00:03 i #1607 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.html.md.pdf }
00:00:03 v #1608 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #1609 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.7z.md.html; new_path = c:/home/git/vault/dist/data/music/mecha-haze.7z.md.html; result = 11184 }
00:00:03 i #1610 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.7z.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.7z.hangul.md }
00:00:03 d #1611 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.html.md.pdf; new_path = c:/home/git/vault/dist/data/github/github.html.md.pdf; result = 7624 }
00:00:03 i #1612 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.html.md.html }
00:00:03 d #1613 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.7z.hangul.md; new_path = c:/home/git/vault/dist/data/music/mecha-haze.7z.hangul.md; result = 1014 }
00:00:03 d #1614 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/TinaHale.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/TinaHale.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 d #1615 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.html.md.html; new_path = c:/home/git/vault/dist/data/github/github.html.md.html; result = 10367 }
00:00:03 i #1616 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.html.hangul.md }
00:00:03 v #1617 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 v #1618 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #1619 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.html.hangul.md; new_path = c:/home/git/vault/dist/data/github/github.html.hangul.md; result = 423 }
00:00:03 d #1620 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/dialects/spanish.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/dialects/spanish.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 d #1620 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/music/mecha-haze.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/music/mecha-haze.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 d #1622 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/ImperialKiss.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/ImperialKiss.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 d #1623 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/github/github.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/github/github.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 v #1624 > 41cae76c6cc16843a084f0ce3da67875305b0e79
00:00:03 v #1625 > 55a0a78a273271af1907f429f6ba3e2f9a521847
00:00:03 v #1626 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 i #1627 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.fc1943s.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.fc1943s.hangul.md.epub }
00:00:03 d #1628 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.fc1943s.hangul.md.epub; new_path = c:/home/git/vault/dist/data/astrology/astrology.fc1943s.hangul.md.epub; result = 43114 }
00:00:03 i #1629 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.fc1943s.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.fc1943s.hangul.md.pdf }
00:00:03 d #1630 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.fc1943s.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/astrology/astrology.fc1943s.hangul.md.pdf; result = 116003 }
00:00:03 i #1631 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.fc1943s.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.fc1943s.hangul.md.html }
00:00:03 d #1632 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.fc1943s.hangul.md.html; new_path = c:/home/git/vault/dist/data/astrology/astrology.fc1943s.hangul.md.html; result = 217718 }
00:00:03 i #1633 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.fc1943s.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.fc1943s.md.epub }
00:00:03 d #1634 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.fc1943s.md.epub; new_path = c:/home/git/vault/dist/data/astrology/astrology.fc1943s.md.epub; result = 39894 }
00:00:03 i #1635 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.fc1943s.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.fc1943s.md.pdf }
00:00:03 d #1636 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.fc1943s.md.pdf; new_path = c:/home/git/vault/dist/data/astrology/astrology.fc1943s.md.pdf; result = 186037 }
00:00:03 i #1637 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.fc1943s.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.fc1943s.md.html }
00:00:03 d #1638 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.fc1943s.md.html; new_path = c:/home/git/vault/dist/data/astrology/astrology.fc1943s.md.html; result = 173538 }
00:00:03 i #1639 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.fc1943s.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.fc1943s.hangul.md }
00:00:03 v #1640 > 284d6ee9cb67d81827e8769e3fe9c1682cb3f2bf
00:00:03 d #1641 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.fc1943s.hangul.md; new_path = c:/home/git/vault/dist/data/astrology/astrology.fc1943s.hangul.md; result = 153511 }
00:00:03 v #1642 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 d #1643 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/astrology/astrology.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/astrology/astrology.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 i #1644 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.7z.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.7z.hangul.md.epub }
00:00:03 d #1645 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.7z.hangul.md.epub; new_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.7z.hangul.md.epub; result = 5654 }
00:00:03 i #1646 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.7z.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.7z.hangul.md.pdf }
00:00:03 d #1647 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.7z.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.7z.hangul.md.pdf; result = 5589 }
00:00:03 i #1648 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.7z.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.7z.hangul.md.html }
00:00:03 d #1649 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.7z.hangul.md.html; new_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.7z.hangul.md.html; result = 10319 }
00:00:03 i #1650 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.7z.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.7z.md.epub }
00:00:03 v #1651 > 774732b6fcb822c743c608aef727c05b0694c557
00:00:03 d #1652 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.7z.md.epub; new_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.7z.md.epub; result = 5541 }
00:00:03 i #1653 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.7z.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.7z.md.pdf }
00:00:03 d #1654 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.7z.md.pdf; new_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.7z.md.pdf; result = 8065 }
00:00:03 v #1655 > '958832121d0f20dc5c6868c06bb576d70790c141'
00:00:03 v #1656 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 i #1657 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.7z.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.7z.md.html }
00:00:03 d #1658 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.7z.md.html; new_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.7z.md.html; result = 10314 }
00:00:03 i #1659 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.7z.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.7z.hangul.md }
00:00:03 d #1660 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.7z.hangul.md; new_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.7z.hangul.md; result = 312 }
00:00:03 i #1661 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/TinaHale.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\TinaHale.html.hangul.md.epub }
00:00:03 d #1662 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\TinaHale.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/TinaHale.html.hangul.md.epub; result = 5562 }
00:00:03 v #1663 > 6e0a5e5f4b8e22db3ef519cf6b1c5834c60896be
00:00:03 i #1664 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/TinaHale.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\TinaHale.html.hangul.md.pdf }
00:00:03 d #1665 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/web3/web3.fc1943s.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/web3/web3.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 d #1666 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\TinaHale.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/TinaHale.html.hangul.md.pdf; result = 4627 }
00:00:03 i #1667 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/TinaHale.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\TinaHale.html.hangul.md.html }
00:00:03 d #1668 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\TinaHale.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/TinaHale.html.hangul.md.html; result = 11674 }
00:00:03 i #1669 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/TinaHale.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\TinaHale.html.md.epub }
00:00:03 d #1670 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\TinaHale.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/TinaHale.html.md.epub; result = 5492 }
00:00:03 i #1671 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/TinaHale.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\TinaHale.html.md.pdf }
00:00:03 v #1672 > '27afa1d088c59f862a66f286a298bdb2682ff16d'
00:00:03 v #1673 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 d #1674 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\TinaHale.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/TinaHale.html.md.pdf; result = 4886 }
00:00:03 i #1675 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/TinaHale.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\TinaHale.html.md.html }
00:00:03 d #1676 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\TinaHale.html.md.html; new_path = c:/home/git/vault/dist/data/chat/TinaHale.html.md.html; result = 11639 }
00:00:03 i #1677 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/TinaHale.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\TinaHale.html.hangul.md }
00:00:03 v #1678 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #1679 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\TinaHale.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/TinaHale.html.hangul.md; result = 143 }
00:00:03 i #1680 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/ImperialKiss.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ImperialKiss.html.hangul.md.epub }
00:00:03 d #1681 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ImperialKiss.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/ImperialKiss.html.hangul.md.epub; result = 5567 }
00:00:03 d #1682 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/music/mecha-haze.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/music/mecha-haze.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 i #1682 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/ImperialKiss.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ImperialKiss.html.hangul.md.pdf }
00:00:03 d #1684 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ImperialKiss.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/ImperialKiss.html.hangul.md.pdf; result = 4626 }
00:00:03 i #1685 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/ImperialKiss.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ImperialKiss.html.hangul.md.html }
00:00:03 d #1686 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/WhitneyR.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/WhitneyR.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 d #1687 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ImperialKiss.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/ImperialKiss.html.hangul.md.html; result = 11683 }
00:00:03 i #1688 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/ImperialKiss.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ImperialKiss.html.md.epub }
00:00:03 v #1689 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 d #1690 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ImperialKiss.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/ImperialKiss.html.md.epub; result = 5496 }
00:00:03 i #1691 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/ImperialKiss.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ImperialKiss.html.md.pdf }
00:00:03 d #1692 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ImperialKiss.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/ImperialKiss.html.md.pdf; result = 4864 }
00:00:03 i #1693 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/ImperialKiss.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ImperialKiss.html.md.html }
00:00:03 d #1694 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ImperialKiss.html.md.html; new_path = c:/home/git/vault/dist/data/chat/ImperialKiss.html.md.html; result = 11643 }
00:00:03 i #1694 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/spanish.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spanish.hangul.md.epub }
00:00:03 i #1696 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/ImperialKiss.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ImperialKiss.html.hangul.md }
00:00:03 d #1697 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ImperialKiss.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/ImperialKiss.html.hangul.md; result = 152 }
00:00:03 d #1698 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spanish.hangul.md.epub; new_path = c:/home/git/vault/dist/data/dialects/spanish.hangul.md.epub; result = 20164 }
00:00:03 i #1699 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/spanish.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spanish.hangul.md.pdf }
00:00:03 d #1700 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spanish.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/spanish.hangul.md.pdf; result = 21277 }
00:00:03 i #1701 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/spanish.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spanish.hangul.md.html }
00:00:03 d #1702 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spanish.hangul.md.html; new_path = c:/home/git/vault/dist/data/dialects/spanish.hangul.md.html; result = 78039 }
00:00:03 d #1703 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/JALYN.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/JALYN.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 i #1704 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/spanish.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spanish.md.epub }
00:00:03 d #1705 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spanish.md.epub; new_path = c:/home/git/vault/dist/data/dialects/spanish.md.epub; result = 18291 }
00:00:03 i #1706 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/spanish.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spanish.md.pdf }
00:00:03 d #1707 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spanish.md.pdf; new_path = c:/home/git/vault/dist/data/dialects/spanish.md.pdf; result = 59586 }
00:00:03 i #1708 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/spanish.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spanish.md.html }
00:00:03 v #1709 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #1710 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spanish.md.html; new_path = c:/home/git/vault/dist/data/dialects/spanish.md.html; result = 56736 }
00:00:03 i #1711 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dialects/spanish.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spanish.hangul.md }
00:00:03 d #1712 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spanish.hangul.md; new_path = c:/home/git/vault/dist/data/dialects/spanish.hangul.md; result = 57778 }
00:00:03 d #1713 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/github/github.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/github/github.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 d #1714 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/dotnet/dotnet.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/dotnet/dotnet.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 v #1715 > '4007a55af935129be5481c0874a4c074bd62ad70'
00:00:03 v #1716 > 'a723feaae6f8e91d29bb55f9687d6cc9ab00c214'
00:00:03 v #1717 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 v #1718 > 'f98fd45751bb507ec323e46218ab9a97065127d7'
00:00:03 d #1719 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/astrology/astrology.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/astrology/astrology.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 v #1720 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #1721 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/web3/web3.fc1943s.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/web3/web3.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 v #1722 > 'e2a97d576e8c00a85dd8a963faa6b0bd07588818'
00:00:03 v #1723 > 958832121d0f20dc5c6868c06bb576d70790c141
00:00:03 v #1724 > 27afa1d088c59f862a66f286a298bdb2682ff16d
00:00:03 v #1725 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #1726 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/WhitneyR.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/WhitneyR.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 v #1727 > '4444c1a375a066e67699f10d0ccc5f7847e149cb'
00:00:03 v #1728 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 v #1729 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #1730 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/JALYN.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/JALYN.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 i #1731 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.html.hangul.md.epub }
00:00:03 v #1732 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 d #1733 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/music/mecha-haze.html.hangul.md.epub; result = 5578 }
00:00:03 i #1734 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.html.hangul.md.pdf }
00:00:03 d #1735 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/music/mecha-haze.html.hangul.md.pdf; result = 4748 }
00:00:03 i #1736 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.html.hangul.md.html }
00:00:03 i #1737 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.hangul.md.epub }
00:00:03 d #1738 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/music/mecha-haze.html.hangul.md.html; result = 10179 }
00:00:03 i #1739 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.html.md.epub }
00:00:03 d #1740 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.hangul.md.epub; new_path = c:/home/git/vault/dist/data/github/github.hangul.md.epub; result = 5535 }
00:00:03 v #1741 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 i #1742 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.hangul.md.pdf }
00:00:03 d #1743 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.html.md.epub; new_path = c:/home/git/vault/dist/data/music/mecha-haze.html.md.epub; result = 5488 }
00:00:03 d #1744 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/github/github.hangul.md.pdf; result = 4127 }
00:00:03 i #1745 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.html.md.pdf }
00:00:03 i #1746 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.hangul.md.html }
00:00:03 d #1747 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.html.md.pdf; new_path = c:/home/git/vault/dist/data/music/mecha-haze.html.md.pdf; result = 7490 }
00:00:03 d #1748 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.hangul.md.html; new_path = c:/home/git/vault/dist/data/github/github.hangul.md.html; result = 10048 }
00:00:03 i #1749 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.html.md.html }
00:00:03 d #1750 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/dotnet/dotnet.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/dotnet/dotnet.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 i #1751 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.md.epub }
00:00:03 d #1752 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.md.epub; new_path = c:/home/git/vault/dist/data/github/github.md.epub; result = 5492 }
00:00:03 i #1753 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.md.pdf }
00:00:03 d #1754 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.html.md.html; new_path = c:/home/git/vault/dist/data/music/mecha-haze.html.md.html; result = 10116 }
00:00:03 i #1755 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.html.hangul.md }
00:00:03 d #1756 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.md.pdf; new_path = c:/home/git/vault/dist/data/github/github.md.pdf; result = 6161 }
00:00:03 i #1757 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.md.html }
00:00:03 d #1758 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.html.hangul.md; new_path = c:/home/git/vault/dist/data/music/mecha-haze.html.hangul.md; result = 208 }
00:00:03 d #1759 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.md.html; new_path = c:/home/git/vault/dist/data/github/github.md.html; result = 10235 }
00:00:03 i #1760 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/github/github.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\github.hangul.md }
00:00:03 d #1761 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\github.hangul.md; new_path = c:/home/git/vault/dist/data/github/github.hangul.md; result = 118 }
00:00:03 d #1762 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/music/mecha-haze.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/music/mecha-haze.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 d #1763 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/google/google.fc1943s.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/google/google.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 v #1764 > 4007a55af935129be5481c0874a4c074bd62ad70
00:00:03 v #1765 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 i #1766 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.html.hangul.md.epub }
00:00:03 d #1767 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/astrology/astrology.html.hangul.md.epub; result = 5519 }
00:00:03 v #1768 > a723feaae6f8e91d29bb55f9687d6cc9ab00c214
00:00:03 i #1769 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.html.hangul.md.pdf }
00:00:03 d #1770 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/astrology/astrology.html.hangul.md.pdf; result = 2611 }
00:00:03 i #1771 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.html.hangul.md.html }
00:00:03 d #1772 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/astrology/astrology.html.hangul.md.html; result = 10075 }
00:00:03 i #1773 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.html.md.epub }
00:00:03 v #1774 > f98fd45751bb507ec323e46218ab9a97065127d7
00:00:03 d #1775 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.html.md.epub; new_path = c:/home/git/vault/dist/data/astrology/astrology.html.md.epub; result = 5450 }
00:00:03 i #1776 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.html.md.pdf }
00:00:03 d #1777 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.html.md.pdf; new_path = c:/home/git/vault/dist/data/astrology/astrology.html.md.pdf; result = 5870 }
00:00:03 i #1778 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.html.md.html }
00:00:03 d #1779 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.html.md.html; new_path = c:/home/git/vault/dist/data/astrology/astrology.html.md.html; result = 10134 }
00:00:03 i #1780 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.html.hangul.md }
00:00:03 d #1781 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.html.hangul.md; new_path = c:/home/git/vault/dist/data/astrology/astrology.html.hangul.md; result = 144 }
00:00:03 d #1782 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/astrology/astrology.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/astrology/astrology.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 v #1783 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 i #1784 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.hangul.md.epub }
00:00:03 v #1785 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 d #1786 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.hangul.md.epub; new_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.hangul.md.epub; result = 5745 }
00:00:03 i #1787 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.hangul.md.pdf }
00:00:03 d #1788 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.hangul.md.pdf; result = 6705 }
00:00:03 i #1789 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.hangul.md.html }
00:00:03 d #1790 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.hangul.md.html; new_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.hangul.md.html; result = 10517 }
00:00:03 i #1791 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/WhitneyR.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\WhitneyR.html.hangul.md.epub }
00:00:03 i #1792 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.md.epub }
00:00:03 d #1793 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\WhitneyR.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/WhitneyR.html.hangul.md.epub; result = 5562 }
00:00:03 d #1794 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.md.epub; new_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.md.epub; result = 5693 }
00:00:03 i #1795 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/WhitneyR.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\WhitneyR.html.hangul.md.pdf }
00:00:03 i #1796 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.md.pdf }
00:00:03 d #1797 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\WhitneyR.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/WhitneyR.html.hangul.md.pdf; result = 4624 }
00:00:03 d #1798 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.md.pdf; new_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.md.pdf; result = 13933 }
00:00:03 i #1799 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.md.html }
00:00:03 i #1799 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/WhitneyR.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\WhitneyR.html.hangul.md.html }
00:00:03 d #1801 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\WhitneyR.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/WhitneyR.html.hangul.md.html; result = 11677 }
00:00:03 d #1802 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.md.html; new_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.md.html; result = 10876 }
00:00:03 i #1803 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/WhitneyR.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\WhitneyR.html.md.epub }
00:00:03 i #1804 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.hangul.md }
00:00:03 v #1805 > 'df90480d7167c6c24119ee562da030d08f4ff6cf'
00:00:03 d #1806 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.fc1943s.hangul.md; new_path = c:/home/git/vault/dist/data/web3/web3.fc1943s.hangul.md; result = 472 }
00:00:03 d #1807 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\WhitneyR.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/WhitneyR.html.md.epub; result = 5492 }
00:00:03 i #1808 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/WhitneyR.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\WhitneyR.html.md.pdf }
00:00:03 d #1809 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\WhitneyR.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/WhitneyR.html.md.pdf; result = 5055 }
00:00:03 i #1810 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/WhitneyR.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\WhitneyR.html.md.html }
00:00:03 d #1811 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\WhitneyR.html.md.html; new_path = c:/home/git/vault/dist/data/chat/WhitneyR.html.md.html; result = 11639 }
00:00:03 i #1812 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/WhitneyR.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\WhitneyR.html.hangul.md }
00:00:03 d #1813 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/web3/web3.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/web3/web3.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 d #1814 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\WhitneyR.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/WhitneyR.html.hangul.md; result = 147 }
00:00:03 v #1815 > e2a97d576e8c00a85dd8a963faa6b0bd07588818
00:00:03 v #1816 > 4444c1a375a066e67699f10d0ccc5f7847e149cb
00:00:03 d #1817 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/Yarrow.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/Yarrow.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 v #1818 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 v #1819 > '39a4aa5522c29d1e4a6cc2af335e668046fd4cf2'
00:00:03 v #1820 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 v #1821 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 d #1822 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/music/mecha-haze.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/music/mecha-haze.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 i #1823 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/JALYN.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\JALYN.html.hangul.md.epub }
00:00:03 d #1824 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\JALYN.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/JALYN.html.hangul.md.epub; result = 5559 }
00:00:03 i #1825 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/JALYN.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\JALYN.html.hangul.md.pdf }
00:00:03 i #1826 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dotnet/dotnet.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dotnet.hangul.md.epub }
00:00:03 d #1827 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dotnet.hangul.md.epub; new_path = c:/home/git/vault/dist/data/dotnet/dotnet.hangul.md.epub; result = 5461 }
00:00:03 d #1827 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\JALYN.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/JALYN.html.hangul.md.pdf; result = 4629 }
00:00:03 i #1829 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dotnet/dotnet.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dotnet.hangul.md.pdf }
00:00:03 i #1829 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/JALYN.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\JALYN.html.hangul.md.html }
00:00:03 d #1831 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\JALYN.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/JALYN.html.hangul.md.html; result = 11668 }
00:00:03 d #1831 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dotnet.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/dotnet/dotnet.hangul.md.pdf; result = 3401 }
00:00:03 i #1833 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dotnet/dotnet.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dotnet.hangul.md.html }
00:00:03 i #1833 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/JALYN.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\JALYN.html.md.epub }
00:00:03 d #1835 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\JALYN.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/JALYN.html.md.epub; result = 5493 }
00:00:03 d #1836 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dotnet.hangul.md.html; new_path = c:/home/git/vault/dist/data/dotnet/dotnet.hangul.md.html; result = 9977 }
00:00:03 i #1837 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dotnet/dotnet.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dotnet.md.epub }
00:00:03 i #1838 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/JALYN.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\JALYN.html.md.pdf }
00:00:03 d #1839 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dotnet.md.epub; new_path = c:/home/git/vault/dist/data/dotnet/dotnet.md.epub; result = 5416 }
00:00:03 d #1839 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\JALYN.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/JALYN.html.md.pdf; result = 5097 }
00:00:03 i #1841 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/JALYN.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\JALYN.html.md.html }
00:00:03 i #1842 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dotnet/dotnet.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dotnet.md.pdf }
00:00:03 d #1843 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\JALYN.html.md.html; new_path = c:/home/git/vault/dist/data/chat/JALYN.html.md.html; result = 11636 }
00:00:03 d #1844 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dotnet.md.pdf; new_path = c:/home/git/vault/dist/data/dotnet/dotnet.md.pdf; result = 4970 }
00:00:03 i #1845 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/JALYN.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\JALYN.html.hangul.md }
00:00:03 i #1846 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dotnet/dotnet.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dotnet.md.html }
00:00:03 d #1847 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\JALYN.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/JALYN.html.hangul.md; result = 137 }
00:00:03 d #1848 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dotnet.md.html; new_path = c:/home/git/vault/dist/data/dotnet/dotnet.md.html; result = 9957 }
00:00:03 i #1849 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dotnet/dotnet.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dotnet.hangul.md }
00:00:03 d #1850 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dotnet.hangul.md; new_path = c:/home/git/vault/dist/data/dotnet/dotnet.hangul.md; result = 66 }
00:00:03 d #1851 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/Jully_Lov.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/Jully_Lov.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 v #1852 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #1853 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/doujinshi/doujinshi.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/doujinshi/doujinshi.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 d #1854 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/google/google.fc1943s.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/google/google.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 v #1855 > '2c06b013af1d068ad31ba331c43998c1e4bed274'
00:00:03 v #1856 > '92f543f4856cde35cccf2d2d21bd6a78ad15dd3b'
00:00:03 v #1857 > 'd52eee26d16ca6ea0d4f412a90aed750bab95042'
00:00:03 v #1858 > df90480d7167c6c24119ee562da030d08f4ff6cf
00:00:03 v #1859 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 v #1860 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #1861 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/astrology/astrology.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/astrology/astrology.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 d #1862 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/web3/web3.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/web3/web3.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 v #1863 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 v #1864 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 d #1865 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/Yarrow.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/Yarrow.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 i #1866 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.pdf.hangul.md.epub }
00:00:03 d #1867 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/music/mecha-haze.pdf.hangul.md.epub; result = 5973 }
00:00:03 i #1868 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.pdf.hangul.md.pdf }
00:00:03 d #1869 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/music/mecha-haze.pdf.hangul.md.pdf; result = 5433 }
00:00:03 i #1870 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.pdf.hangul.md.html }
00:00:03 v #1871 > 39a4aa5522c29d1e4a6cc2af335e668046fd4cf2
00:00:03 d #1872 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/music/mecha-haze.pdf.hangul.md.html; result = 11802 }
00:00:03 i #1873 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.pdf.md.epub }
00:00:03 d #1874 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.pdf.md.epub; new_path = c:/home/git/vault/dist/data/music/mecha-haze.pdf.md.epub; result = 5777 }
00:00:03 i #1875 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.pdf.md.pdf }
00:00:03 d #1876 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/music/mecha-haze.pdf.md.pdf; result = 9929 }
00:00:03 i #1877 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.pdf.md.html }
00:00:03 d #1878 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.pdf.md.html; new_path = c:/home/git/vault/dist/data/music/mecha-haze.pdf.md.html; result = 11242 }
00:00:03 i #1879 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mecha-haze.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.pdf.hangul.md }
00:00:03 d #1880 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mecha-haze.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/music/mecha-haze.pdf.hangul.md; result = 1657 }
00:00:03 v #1881 > '460ade05b46845f1860c525fad851cadb565e729'
00:00:03 v #1882 > 'b0c8fd838dd78173824274b77bbcef62bcaa2290'
00:00:03 d #1883 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/music/mixtape-pluto.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/music/mixtape-pluto.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 v #1884 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 v #1885 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #1886 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/Jully_Lov.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/Jully_Lov.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 v #1887 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #1888 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/doujinshi/doujinshi.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/doujinshi/doujinshi.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 i #1889 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/google/google.fc1943s.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\google.fc1943s.hangul.md.epub }
00:00:03 d #1890 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\google.fc1943s.hangul.md.epub; new_path = c:/home/git/vault/dist/data/google/google.fc1943s.hangul.md.epub; result = 5542 }
00:00:03 i #1891 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/google/google.fc1943s.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\google.fc1943s.hangul.md.pdf }
00:00:03 d #1892 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\google.fc1943s.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/google/google.fc1943s.hangul.md.pdf; result = 4582 }
00:00:03 i #1893 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/google/google.fc1943s.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\google.fc1943s.hangul.md.html }
00:00:03 d #1894 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\google.fc1943s.hangul.md.html; new_path = c:/home/git/vault/dist/data/google/google.fc1943s.hangul.md.html; result = 10303 }
00:00:03 i #1895 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/google/google.fc1943s.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\google.fc1943s.md.epub }
00:00:03 d #1896 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\google.fc1943s.md.epub; new_path = c:/home/git/vault/dist/data/google/google.fc1943s.md.epub; result = 5465 }
00:00:03 i #1897 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/google/google.fc1943s.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\google.fc1943s.md.pdf }
00:00:03 d #1898 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\google.fc1943s.md.pdf; new_path = c:/home/git/vault/dist/data/google/google.fc1943s.md.pdf; result = 6447 }
00:00:03 i #1899 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/google/google.fc1943s.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\google.fc1943s.md.html }
00:00:03 d #1900 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\google.fc1943s.md.html; new_path = c:/home/git/vault/dist/data/google/google.fc1943s.md.html; result = 10241 }
00:00:03 i #1901 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/google/google.fc1943s.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\google.fc1943s.hangul.md }
00:00:03 d #1902 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\google.fc1943s.hangul.md; new_path = c:/home/git/vault/dist/data/google/google.fc1943s.hangul.md; result = 221 }
00:00:03 d #1903 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/google/google.i574n.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/google/google.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 v #1904 > 92f543f4856cde35cccf2d2d21bd6a78ad15dd3b
00:00:03 v #1905 > 2c06b013af1d068ad31ba331c43998c1e4bed274
00:00:03 v #1906 > d52eee26d16ca6ea0d4f412a90aed750bab95042
00:00:03 v #1907 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 v #1908 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 i #1909 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.hangul.md.epub }
00:00:03 d #1910 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.hangul.md.epub; new_path = c:/home/git/vault/dist/data/astrology/astrology.hangul.md.epub; result = 25892 }
00:00:03 i #1911 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.html.hangul.md.epub }
00:00:03 i #1912 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.hangul.md.pdf }
00:00:03 d #1913 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/web3/web3.html.hangul.md.epub; result = 5557 }
00:00:03 d #1914 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/astrology/astrology.hangul.md.pdf; result = 34721 }
00:00:03 i #1915 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.hangul.md.html }
00:00:03 i #1916 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.html.hangul.md.pdf }
00:00:03 d #1917 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.hangul.md.html; new_path = c:/home/git/vault/dist/data/astrology/astrology.hangul.md.html; result = 141246 }
00:00:03 d #1918 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/web3/web3.html.hangul.md.pdf; result = 3791 }
00:00:03 i #1919 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.html.hangul.md.html }
00:00:03 i #1920 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.md.epub }
00:00:03 d #1921 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/web3/web3.html.hangul.md.html; result = 10329 }
00:00:03 d #1922 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.md.epub; new_path = c:/home/git/vault/dist/data/astrology/astrology.md.epub; result = 23071 }
00:00:03 i #1923 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.html.md.epub }
00:00:03 i #1924 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.md.pdf }
00:00:03 v #1925 > '7856f655f4f8476bfb86169e7afb3d5434957dee'
00:00:03 v #1926 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 d #1927 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.html.md.epub; new_path = c:/home/git/vault/dist/data/web3/web3.html.md.epub; result = 5472 }
00:00:03 d #1928 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.md.pdf; new_path = c:/home/git/vault/dist/data/astrology/astrology.md.pdf; result = 99118 }
00:00:03 i #1929 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.html.md.pdf }
00:00:03 i #1930 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.md.html }
00:00:03 d #1931 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.html.md.pdf; new_path = c:/home/git/vault/dist/data/web3/web3.html.md.pdf; result = 6103 }
00:00:03 d #1932 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.md.html; new_path = c:/home/git/vault/dist/data/astrology/astrology.md.html; result = 96432 }
00:00:03 i #1933 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astrology/astrology.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astrology.hangul.md }
00:00:03 i #1934 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.html.md.html }
00:00:03 i #1935 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Yarrow.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Yarrow.html.hangul.md.epub }
00:00:03 d #1936 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astrology.hangul.md; new_path = c:/home/git/vault/dist/data/astrology/astrology.hangul.md; result = 115556 }
00:00:03 d #1937 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.html.md.html; new_path = c:/home/git/vault/dist/data/web3/web3.html.md.html; result = 10254 }
00:00:03 i #1938 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.html.hangul.md }
00:00:03 d #1939 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Yarrow.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/Yarrow.html.hangul.md.epub; result = 5557 }
00:00:03 i #1940 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Yarrow.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Yarrow.html.hangul.md.pdf }
00:00:03 d #1941 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.html.hangul.md; new_path = c:/home/git/vault/dist/data/web3/web3.html.hangul.md; result = 273 }
00:00:03 d #1942 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Yarrow.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Yarrow.html.hangul.md.pdf; result = 4624 }
00:00:03 i #1943 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Yarrow.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Yarrow.html.hangul.md.html }
00:00:03 d #1944 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/astronomy/astronomy.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/astronomy/astronomy.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 d #1945 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Yarrow.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/Yarrow.html.hangul.md.html; result = 11668 }
00:00:03 i #1946 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Yarrow.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Yarrow.html.md.epub }
00:00:03 d #1947 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/web3/web3.i574n.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/web3/web3.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 d #1948 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Yarrow.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/Yarrow.html.md.epub; result = 5488 }
00:00:03 i #1949 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Yarrow.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Yarrow.html.md.pdf }
00:00:03 d #1950 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Yarrow.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Yarrow.html.md.pdf; result = 4931 }
00:00:03 i #1951 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Yarrow.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Yarrow.html.md.html }
00:00:03 d #1952 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Yarrow.html.md.html; new_path = c:/home/git/vault/dist/data/chat/Yarrow.html.md.html; result = 11637 }
00:00:03 i #1953 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Yarrow.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Yarrow.html.hangul.md }
00:00:03 d #1954 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Yarrow.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/Yarrow.html.hangul.md; result = 137 }
00:00:03 v #1955 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #1956 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/music/mixtape-pluto.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/music/mixtape-pluto.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 d #1957 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/Yukenzi.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/Yukenzi.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 v #1958 > 460ade05b46845f1860c525fad851cadb565e729
00:00:03 v #1959 > b0c8fd838dd78173824274b77bbcef62bcaa2290
00:00:03 v #1960 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 i #1961 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Jully_Lov.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Jully_Lov.html.hangul.md.epub }
00:00:03 d #1962 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Jully_Lov.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/Jully_Lov.html.hangul.md.epub; result = 5563 }
00:00:03 i #1963 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Jully_Lov.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Jully_Lov.html.hangul.md.pdf }
00:00:03 d #1964 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Jully_Lov.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Jully_Lov.html.hangul.md.pdf; result = 4677 }
00:00:03 i #1965 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Jully_Lov.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Jully_Lov.html.hangul.md.html }
00:00:03 d #1966 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Jully_Lov.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/Jully_Lov.html.hangul.md.html; result = 11671 }
00:00:03 i #1967 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Jully_Lov.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Jully_Lov.html.md.epub }
00:00:03 d #1968 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Jully_Lov.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/Jully_Lov.html.md.epub; result = 5492 }
00:00:03 i #1969 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Jully_Lov.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Jully_Lov.html.md.pdf }
00:00:03 d #1970 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Jully_Lov.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Jully_Lov.html.md.pdf; result = 4927 }
00:00:03 i #1971 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Jully_Lov.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Jully_Lov.html.md.html }
00:00:03 d #1972 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Jully_Lov.html.md.html; new_path = c:/home/git/vault/dist/data/chat/Jully_Lov.html.md.html; result = 11635 }
00:00:03 i #1973 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Jully_Lov.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Jully_Lov.html.hangul.md }
00:00:03 d #1974 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Jully_Lov.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/Jully_Lov.html.hangul.md; result = 141 }
00:00:03 v #1975 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 d #1976 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/kittennmoon.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/kittennmoon.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 i #1977 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/doujinshi/doujinshi.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\doujinshi.hangul.md.epub }
00:00:03 d #1978 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\doujinshi.hangul.md.epub; new_path = c:/home/git/vault/dist/data/doujinshi/doujinshi.hangul.md.epub; result = 22492 }
00:00:03 i #1979 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/doujinshi/doujinshi.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\doujinshi.hangul.md.pdf }
00:00:03 d #1980 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\doujinshi.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/doujinshi/doujinshi.hangul.md.pdf; result = 41661 }
00:00:03 i #1981 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/doujinshi/doujinshi.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\doujinshi.hangul.md.html }
00:00:03 d #1982 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\doujinshi.hangul.md.html; new_path = c:/home/git/vault/dist/data/doujinshi/doujinshi.hangul.md.html; result = 146553 }
00:00:03 v #1983 > '1013875caf0a332dc86ee8da724f19e74e796252'
00:00:03 i #1984 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/doujinshi/doujinshi.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\doujinshi.md.epub }
00:00:03 d #1985 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\doujinshi.md.epub; new_path = c:/home/git/vault/dist/data/doujinshi/doujinshi.md.epub; result = 20254 }
00:00:03 i #1986 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/doujinshi/doujinshi.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\doujinshi.md.pdf }
00:00:03 d #1987 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\doujinshi.md.pdf; new_path = c:/home/git/vault/dist/data/doujinshi/doujinshi.md.pdf; result = 105252 }
00:00:03 i #1988 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/doujinshi/doujinshi.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\doujinshi.md.html }
00:00:03 d #1989 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\doujinshi.md.html; new_path = c:/home/git/vault/dist/data/doujinshi/doujinshi.md.html; result = 102650 }
00:00:03 i #1990 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/doujinshi/doujinshi.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\doujinshi.hangul.md }
00:00:03 d #1991 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\doujinshi.hangul.md; new_path = c:/home/git/vault/dist/data/doujinshi/doujinshi.hangul.md; result = 123460 }
00:00:03 d #1992 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/drugs/drugs.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/drugs/drugs.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 v #1993 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #1994 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/google/google.i574n.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/google/google.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 v #1995 > 7856f655f4f8476bfb86169e7afb3d5434957dee
00:00:03 v #1996 > '753041fb0dc0874d9ae140ef8b76be1301e02186'
00:00:03 v #1997 > '0c2e8945d1037cf0f10232f091d83d282a3ad155'
00:00:03 v #1998 > 'd328e42faa6744c53ddc51cce73e99babf354294'
00:00:03 v #1999 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:03 v #2000 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 i #2001 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mixtape-pluto.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mixtape-pluto.hangul.md.epub }
00:00:03 d #2002 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mixtape-pluto.hangul.md.epub; new_path = c:/home/git/vault/dist/data/music/mixtape-pluto.hangul.md.epub; result = 40498 }
00:00:03 i #2003 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mixtape-pluto.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mixtape-pluto.hangul.md.pdf }
00:00:03 d #2003 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/astronomy/astronomy.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/astronomy/astronomy.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 d #2005 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mixtape-pluto.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/music/mixtape-pluto.hangul.md.pdf; result = 206108 }
00:00:03 i #2006 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mixtape-pluto.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mixtape-pluto.hangul.md.html }
00:00:03 d #2007 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mixtape-pluto.hangul.md.html; new_path = c:/home/git/vault/dist/data/music/mixtape-pluto.hangul.md.html; result = 139753 }
00:00:03 i #2008 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mixtape-pluto.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mixtape-pluto.md.epub }
00:00:03 d #2009 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mixtape-pluto.md.epub; new_path = c:/home/git/vault/dist/data/music/mixtape-pluto.md.epub; result = 41640 }
00:00:03 v #2010 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 i #2011 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mixtape-pluto.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mixtape-pluto.md.pdf }
00:00:03 d #2012 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mixtape-pluto.md.pdf; new_path = c:/home/git/vault/dist/data/music/mixtape-pluto.md.pdf; result = 86665 }
00:00:03 i #2013 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mixtape-pluto.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mixtape-pluto.md.html }
00:00:03 d #2014 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/Yukenzi.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/Yukenzi.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 v #2015 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #2016 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mixtape-pluto.md.html; new_path = c:/home/git/vault/dist/data/music/mixtape-pluto.md.html; result = 128112 }
00:00:03 i #2017 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/mixtape-pluto.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mixtape-pluto.hangul.md }
00:00:03 d #2018 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/web3/web3.i574n.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/web3/web3.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 d #2019 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mixtape-pluto.hangul.md; new_path = c:/home/git/vault/dist/data/music/mixtape-pluto.hangul.md; result = 121850 }
00:00:03 d #2020 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/music/music.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/music/music.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:03 v #2021 > 'cba44947002177d81094bbfcafe46a93f1bdc47e'
00:00:03 v #2022 > '087920199f5f965c9f053b82497e31778239031a'
00:00:03 v #2023 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:03 d #2024 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/kittennmoon.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/kittennmoon.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:03 v #2025 > 1013875caf0a332dc86ee8da724f19e74e796252
00:00:04 v #2026 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2027 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/drugs/drugs.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/drugs/drugs.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2028 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2029 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/google/google.i574n.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\google.i574n.hangul.md.epub }
00:00:04 d #2030 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\google.i574n.hangul.md.epub; new_path = c:/home/git/vault/dist/data/google/google.i574n.hangul.md.epub; result = 5513 }
00:00:04 i #2031 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/google/google.i574n.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\google.i574n.hangul.md.pdf }
00:00:04 d #2032 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\google.i574n.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/google/google.i574n.hangul.md.pdf; result = 4377 }
00:00:04 i #2033 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/google/google.i574n.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\google.i574n.hangul.md.html }
00:00:04 d #2034 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\google.i574n.hangul.md.html; new_path = c:/home/git/vault/dist/data/google/google.i574n.hangul.md.html; result = 10079 }
00:00:04 i #2035 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/google/google.i574n.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\google.i574n.md.epub }
00:00:04 d #2036 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\google.i574n.md.epub; new_path = c:/home/git/vault/dist/data/google/google.i574n.md.epub; result = 5449 }
00:00:04 i #2037 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/google/google.i574n.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\google.i574n.md.pdf }
00:00:04 d #2038 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\google.i574n.md.pdf; new_path = c:/home/git/vault/dist/data/google/google.i574n.md.pdf; result = 6155 }
00:00:04 i #2039 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/google/google.i574n.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\google.i574n.md.html }
00:00:04 d #2040 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\google.i574n.md.html; new_path = c:/home/git/vault/dist/data/google/google.i574n.md.html; result = 10054 }
00:00:04 i #2041 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/google/google.i574n.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\google.i574n.hangul.md }
00:00:04 d #2042 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\google.i574n.hangul.md; new_path = c:/home/git/vault/dist/data/google/google.i574n.hangul.md; result = 99 }
00:00:04 d #2043 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/hardware/hardware.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/hardware/hardware.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 v #2044 > 753041fb0dc0874d9ae140ef8b76be1301e02186
00:00:04 v #2045 > 0c2e8945d1037cf0f10232f091d83d282a3ad155
00:00:04 v #2046 > d328e42faa6744c53ddc51cce73e99babf354294
00:00:04 v #2047 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 v #2047 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2049 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astronomy/astronomy.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astronomy.hangul.md.epub }
00:00:04 d #2050 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astronomy.hangul.md.epub; new_path = c:/home/git/vault/dist/data/astronomy/astronomy.hangul.md.epub; result = 8985 }
00:00:04 i #2051 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Yukenzi.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Yukenzi.html.hangul.md.epub }
00:00:04 i #2052 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astronomy/astronomy.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astronomy.hangul.md.pdf }
00:00:04 d #2053 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Yukenzi.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/Yukenzi.html.hangul.md.epub; result = 5562 }
00:00:04 d #2054 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astronomy.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/astronomy/astronomy.hangul.md.pdf; result = 8573 }
00:00:04 i #2055 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Yukenzi.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Yukenzi.html.hangul.md.pdf }
00:00:04 i #2055 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astronomy/astronomy.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astronomy.hangul.md.html }
00:00:04 d #2057 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Yukenzi.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Yukenzi.html.hangul.md.pdf; result = 4625 }
00:00:04 d #2058 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astronomy.hangul.md.html; new_path = c:/home/git/vault/dist/data/astronomy/astronomy.hangul.md.html; result = 27366 }
00:00:04 i #2059 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astronomy/astronomy.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astronomy.md.epub }
00:00:04 i #2060 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Yukenzi.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Yukenzi.html.hangul.md.html }
00:00:04 d #2061 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astronomy.md.epub; new_path = c:/home/git/vault/dist/data/astronomy/astronomy.md.epub; result = 8307 }
00:00:04 d #2062 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Yukenzi.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/Yukenzi.html.hangul.md.html; result = 11671 }
00:00:04 i #2063 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astronomy/astronomy.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astronomy.md.pdf }
00:00:04 i #2064 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Yukenzi.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Yukenzi.html.md.epub }
00:00:04 d #2065 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astronomy.md.pdf; new_path = c:/home/git/vault/dist/data/astronomy/astronomy.md.pdf; result = 22461 }
00:00:04 d #2066 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Yukenzi.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/Yukenzi.html.md.epub; result = 5492 }
00:00:04 i #2067 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astronomy/astronomy.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astronomy.md.html }
00:00:04 i #2068 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Yukenzi.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Yukenzi.html.md.pdf }
00:00:04 d #2069 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astronomy.md.html; new_path = c:/home/git/vault/dist/data/astronomy/astronomy.md.html; result = 22545 }
00:00:04 d #2070 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Yukenzi.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Yukenzi.html.md.pdf; result = 4991 }
00:00:04 i #2071 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/astronomy/astronomy.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\astronomy.hangul.md }
00:00:04 i #2072 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Yukenzi.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Yukenzi.html.md.html }
00:00:04 d #2073 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\astronomy.hangul.md; new_path = c:/home/git/vault/dist/data/astronomy/astronomy.hangul.md; result = 12447 }
00:00:04 d #2074 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Yukenzi.html.md.html; new_path = c:/home/git/vault/dist/data/chat/Yukenzi.html.md.html; result = 11638 }
00:00:04 i #2075 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Yukenzi.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Yukenzi.html.hangul.md }
00:00:04 d #2076 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Yukenzi.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/Yukenzi.html.hangul.md; result = 140 }
00:00:04 v #2077 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 d #2078 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/biology/biology.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/biology/biology.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 d #2079 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chores/chores.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chores/chores.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 i #2080 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.i574n.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.i574n.hangul.md.epub }
00:00:04 d #2081 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.i574n.hangul.md.epub; new_path = c:/home/git/vault/dist/data/web3/web3.i574n.hangul.md.epub; result = 5496 }
00:00:04 i #2082 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.i574n.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.i574n.hangul.md.pdf }
00:00:04 v #2083 > 'e65dada639871ba283a4d62ff2d2e9b30aef57ca'
00:00:04 d #2084 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.i574n.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/web3/web3.i574n.hangul.md.pdf; result = 4134 }
00:00:04 i #2085 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.i574n.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.i574n.hangul.md.html }
00:00:04 d #2086 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.i574n.hangul.md.html; new_path = c:/home/git/vault/dist/data/web3/web3.i574n.hangul.md.html; result = 10068 }
00:00:04 v #2087 > cba44947002177d81094bbfcafe46a93f1bdc47e
00:00:04 i #2088 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.i574n.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.i574n.md.epub }
00:00:04 d #2089 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.i574n.md.epub; new_path = c:/home/git/vault/dist/data/web3/web3.i574n.md.epub; result = 5439 }
00:00:04 i #2090 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.i574n.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.i574n.md.pdf }
00:00:04 d #2091 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.i574n.md.pdf; new_path = c:/home/git/vault/dist/data/web3/web3.i574n.md.pdf; result = 5669 }
00:00:04 i #2092 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.i574n.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.i574n.md.html }
00:00:04 d #2093 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.i574n.md.html; new_path = c:/home/git/vault/dist/data/web3/web3.i574n.md.html; result = 10042 }
00:00:04 i #2094 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.i574n.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.i574n.hangul.md }
00:00:04 d #2095 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.i574n.hangul.md; new_path = c:/home/git/vault/dist/data/web3/web3.i574n.hangul.md; result = 88 }
00:00:04 d #2096 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/web3/web3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/web3/web3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 v #2097 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2098 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/music/music.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/music/music.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2099 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2100 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/kittennmoon.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kittennmoon.html.hangul.md.epub }
00:00:04 v #2101 > 087920199f5f965c9f053b82497e31778239031a
00:00:04 d #2102 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kittennmoon.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/kittennmoon.html.hangul.md.epub; result = 5562 }
00:00:04 i #2103 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/kittennmoon.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kittennmoon.html.hangul.md.pdf }
00:00:04 d #2104 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kittennmoon.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/kittennmoon.html.hangul.md.pdf; result = 4627 }
00:00:04 i #2105 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/kittennmoon.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kittennmoon.html.hangul.md.html }
00:00:04 d #2106 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kittennmoon.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/kittennmoon.html.hangul.md.html; result = 11671 }
00:00:04 i #2107 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/kittennmoon.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kittennmoon.html.md.epub }
00:00:04 d #2108 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kittennmoon.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/kittennmoon.html.md.epub; result = 5493 }
00:00:04 i #2109 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/kittennmoon.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kittennmoon.html.md.pdf }
00:00:04 d #2110 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kittennmoon.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/kittennmoon.html.md.pdf; result = 4849 }
00:00:04 i #2111 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/kittennmoon.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kittennmoon.html.md.html }
00:00:04 d #2112 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kittennmoon.html.md.html; new_path = c:/home/git/vault/dist/data/chat/kittennmoon.html.md.html; result = 11642 }
00:00:04 i #2113 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/kittennmoon.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kittennmoon.html.hangul.md }
00:00:04 d #2114 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kittennmoon.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/kittennmoon.html.hangul.md; result = 140 }
00:00:04 d #2115 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/Kitty.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/Kitty.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 v #2116 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2117 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.html.hangul.md.epub }
00:00:04 d #2118 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/drugs/drugs.html.hangul.md.epub; result = 5510 }
00:00:04 i #2119 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.html.hangul.md.pdf }
00:00:04 d #2120 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/drugs/drugs.html.hangul.md.pdf; result = 3786 }
00:00:04 i #2121 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.html.hangul.md.html }
00:00:04 d #2122 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/drugs/drugs.html.hangul.md.html; result = 10093 }
00:00:04 v #2123 > '92c9bb6b72d94e9bf2f6e28ea3281d059a2f68b7'
00:00:04 i #2124 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.html.md.epub }
00:00:04 d #2125 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.html.md.epub; new_path = c:/home/git/vault/dist/data/drugs/drugs.html.md.epub; result = 5445 }
00:00:04 i #2126 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.html.md.pdf }
00:00:04 d #2127 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.html.md.pdf; new_path = c:/home/git/vault/dist/data/drugs/drugs.html.md.pdf; result = 6041 }
00:00:04 i #2128 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.html.md.html }
00:00:04 d #2129 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.html.md.html; new_path = c:/home/git/vault/dist/data/drugs/drugs.html.md.html; result = 10060 }
00:00:04 i #2130 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.html.hangul.md }
00:00:04 d #2131 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.html.hangul.md; new_path = c:/home/git/vault/dist/data/drugs/drugs.html.hangul.md; result = 126 }
00:00:04 d #2132 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/drugs/drugs.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/drugs/drugs.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 v #2133 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2134 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/hardware/hardware.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/hardware/hardware.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2135 > '26120b2e92375b6d6f8185081d4c976c28f37a56'
00:00:04 v #2136 > '6aa5fd3d6fa6bb7f06dc56dc3545d7d1f7a5f269'
00:00:04 v #2137 > 'c260bf13b4742cdacca39c111d4253fb07b1925b'
00:00:04 v #2138 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2139 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/biology/biology.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/biology/biology.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2140 > e65dada639871ba283a4d62ff2d2e9b30aef57ca
00:00:04 v #2141 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2142 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chores/chores.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chores/chores.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2143 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2144 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/web3/web3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/web3/web3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2145 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2146 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/music.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\music.hangul.md.epub }
00:00:04 d #2147 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\music.hangul.md.epub; new_path = c:/home/git/vault/dist/data/music/music.hangul.md.epub; result = 63431 }
00:00:04 i #2148 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/music.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\music.hangul.md.pdf }
00:00:04 d #2149 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\music.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/music/music.hangul.md.pdf; result = 110311 }
00:00:04 i #2150 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/music.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\music.hangul.md.html }
00:00:04 d #2151 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\music.hangul.md.html; new_path = c:/home/git/vault/dist/data/music/music.hangul.md.html; result = 328105 }
00:00:04 i #2152 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/music.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\music.md.epub }
00:00:04 d #2153 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\music.md.epub; new_path = c:/home/git/vault/dist/data/music/music.md.epub; result = 57541 }
00:00:04 v #2154 > 'ec8cc309cc04d193ab3779a9a83894281f55c1fb'
00:00:04 i #2155 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/music.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\music.md.pdf }
00:00:04 d #2156 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\music.md.pdf; new_path = c:/home/git/vault/dist/data/music/music.md.pdf; result = 270103 }
00:00:04 i #2157 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/music.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\music.md.html }
00:00:04 d #2158 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\music.md.html; new_path = c:/home/git/vault/dist/data/music/music.md.html; result = 234838 }
00:00:04 i #2159 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/music.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\music.hangul.md }
00:00:04 d #2160 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\music.hangul.md; new_path = c:/home/git/vault/dist/data/music/music.hangul.md; result = 268501 }
00:00:04 d #2161 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/music/music.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/music/music.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 v #2162 > '175166e893681d4a1d3046b5b80ed26e41716f15'
00:00:04 v #2163 > 92c9bb6b72d94e9bf2f6e28ea3281d059a2f68b7
00:00:04 v #2164 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2165 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/Kitty.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/Kitty.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2166 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2167 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/drugs/drugs.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/drugs/drugs.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2168 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2169 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hardware/hardware.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hardware.html.hangul.md.epub }
00:00:04 d #2170 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hardware.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/hardware/hardware.html.hangul.md.epub; result = 5656 }
00:00:04 i #2171 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hardware/hardware.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hardware.html.hangul.md.pdf }
00:00:04 d #2172 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hardware.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/hardware/hardware.html.hangul.md.pdf; result = 4853 }
00:00:04 i #2173 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hardware/hardware.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hardware.html.hangul.md.html }
00:00:04 d #2174 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hardware.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/hardware/hardware.html.hangul.md.html; result = 10307 }
00:00:04 i #2175 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hardware/hardware.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hardware.html.md.epub }
00:00:04 d #2176 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hardware.html.md.epub; new_path = c:/home/git/vault/dist/data/hardware/hardware.html.md.epub; result = 5536 }
00:00:04 i #2177 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hardware/hardware.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hardware.html.md.pdf }
00:00:04 d #2178 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hardware.html.md.pdf; new_path = c:/home/git/vault/dist/data/hardware/hardware.html.md.pdf; result = 8059 }
00:00:04 i #2179 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hardware/hardware.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hardware.html.md.html }
00:00:04 d #2180 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hardware.html.md.html; new_path = c:/home/git/vault/dist/data/hardware/hardware.html.md.html; result = 10171 }
00:00:04 i #2181 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hardware/hardware.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hardware.html.hangul.md }
00:00:04 d #2182 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hardware.html.hangul.md; new_path = c:/home/git/vault/dist/data/hardware/hardware.html.hangul.md; result = 339 }
00:00:04 d #2183 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/hardware/hardware.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/hardware/hardware.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 v #2184 > 26120b2e92375b6d6f8185081d4c976c28f37a56
00:00:04 v #2185 > 6aa5fd3d6fa6bb7f06dc56dc3545d7d1f7a5f269
00:00:04 v #2186 > c260bf13b4742cdacca39c111d4253fb07b1925b
00:00:04 v #2187 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2188 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/biology/biology.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\biology.mp3.hangul.md.epub }
00:00:04 d #2189 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\biology.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/biology/biology.mp3.hangul.md.epub; result = 5941 }
00:00:04 v #2190 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2191 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/biology/biology.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\biology.mp3.hangul.md.pdf }
00:00:04 d #2192 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\biology.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/biology/biology.mp3.hangul.md.pdf; result = 4082 }
00:00:04 i #2193 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/biology/biology.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\biology.mp3.hangul.md.html }
00:00:04 d #2194 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\biology.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/biology/biology.mp3.hangul.md.html; result = 11371 }
00:00:04 i #2195 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/biology/biology.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\biology.mp3.md.epub }
00:00:04 i #2196 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chores/chores.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chores.hangul.md.epub }
00:00:04 d #2197 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\biology.mp3.md.epub; new_path = c:/home/git/vault/dist/data/biology/biology.mp3.md.epub; result = 5715 }
00:00:04 d #2198 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chores.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chores/chores.hangul.md.epub; result = 5381 }
00:00:04 i #2199 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/biology/biology.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\biology.mp3.md.pdf }
00:00:04 i #2200 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chores/chores.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chores.hangul.md.pdf }
00:00:04 d #2201 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\biology.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/biology/biology.mp3.md.pdf; result = 8627 }
00:00:04 i #2202 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/biology/biology.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\biology.mp3.md.html }
00:00:04 d #2203 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chores.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chores/chores.hangul.md.pdf; result = 2385 }
00:00:04 i #2204 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chores/chores.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chores.hangul.md.html }
00:00:04 d #2205 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\biology.mp3.md.html; new_path = c:/home/git/vault/dist/data/biology/biology.mp3.md.html; result = 10742 }
00:00:04 i #2206 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/biology/biology.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\biology.mp3.hangul.md }
00:00:04 d #2207 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chores.hangul.md.html; new_path = c:/home/git/vault/dist/data/chores/chores.hangul.md.html; result = 9904 }
00:00:04 d #2208 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\biology.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/biology/biology.mp3.hangul.md; result = 1308 }
00:00:04 i #2209 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chores/chores.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chores.md.epub }
00:00:04 d #2210 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chores.md.epub; new_path = c:/home/git/vault/dist/data/chores/chores.md.epub; result = 5382 }
00:00:04 v #2211 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2212 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chores/chores.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chores.md.pdf }
00:00:04 d #2213 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chores.md.pdf; new_path = c:/home/git/vault/dist/data/chores/chores.md.pdf; result = 2382 }
00:00:04 i #2214 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chores/chores.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chores.md.html }
00:00:04 d #2215 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chores.md.html; new_path = c:/home/git/vault/dist/data/chores/chores.md.html; result = 9904 }
00:00:04 i #2216 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.hangul.md.epub }
00:00:04 d #2217 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/books/books.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/books/books.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 i #2218 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chores/chores.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chores.hangul.md }
00:00:04 d #2219 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/web3/web3.hangul.md.epub; result = 29771 }
00:00:04 d #2220 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chores.hangul.md; new_path = c:/home/git/vault/dist/data/chores/chores.hangul.md; result = 1783 }
00:00:04 i #2221 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.hangul.md.pdf }
00:00:04 d #2222 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/web3/web3.hangul.md.pdf; result = 38567 }
00:00:04 i #2223 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.hangul.md.html }
00:00:04 d #2224 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.hangul.md.html; new_path = c:/home/git/vault/dist/data/web3/web3.hangul.md.html; result = 134644 }
00:00:04 i #2225 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.md.epub }
00:00:04 d #2226 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/cliparts/avatars.i574n.png.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/cliparts/avatars.i574n.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 d #2227 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.md.epub; new_path = c:/home/git/vault/dist/data/web3/web3.md.epub; result = 26856 }
00:00:04 i #2228 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.md.pdf }
00:00:04 v #2229 > 'f7379c8f42c2af5f5e2459a6fc92cff0ac9bf1c4'
00:00:04 d #2230 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.md.pdf; new_path = c:/home/git/vault/dist/data/web3/web3.md.pdf; result = 116434 }
00:00:04 i #2231 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.md.html }
00:00:04 d #2232 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.md.html; new_path = c:/home/git/vault/dist/data/web3/web3.md.html; result = 108241 }
00:00:04 i #2233 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.hangul.md }
00:00:04 d #2234 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.hangul.md; new_path = c:/home/git/vault/dist/data/web3/web3.hangul.md; result = 104543 }
00:00:04 d #2235 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/web3/web3.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/web3/web3.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 v #2236 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2237 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/music/music.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/music/music.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2238 > 175166e893681d4a1d3046b5b80ed26e41716f15
00:00:04 v #2239 > ec8cc309cc04d193ab3779a9a83894281f55c1fb
00:00:04 v #2240 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2241 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.hangul.md.epub }
00:00:04 v #2242 > '455601e4dd7acd186e2b720c67ec48013537f743'
00:00:04 v #2243 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 d #2244 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.hangul.md.epub; new_path = c:/home/git/vault/dist/data/drugs/drugs.hangul.md.epub; result = 54555 }
00:00:04 i #2245 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.hangul.md.pdf }
00:00:04 i #2246 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Kitty.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Kitty.html.hangul.md.epub }
00:00:04 d #2247 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/drugs/drugs.hangul.md.pdf; result = 59569 }
00:00:04 d #2248 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Kitty.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/Kitty.html.hangul.md.epub; result = 5558 }
00:00:04 i #2249 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.hangul.md.html }
00:00:04 i #2250 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Kitty.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Kitty.html.hangul.md.pdf }
00:00:04 d #2251 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Kitty.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Kitty.html.hangul.md.pdf; result = 4628 }
00:00:04 d #2252 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.hangul.md.html; new_path = c:/home/git/vault/dist/data/drugs/drugs.hangul.md.html; result = 208269 }
00:00:04 i #2253 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.md.epub }
00:00:04 i #2254 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Kitty.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Kitty.html.hangul.md.html }
00:00:04 d #2255 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.md.epub; new_path = c:/home/git/vault/dist/data/drugs/drugs.md.epub; result = 47872 }
00:00:04 d #2256 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Kitty.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/Kitty.html.hangul.md.html; result = 11668 }
00:00:04 i #2257 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.md.pdf }
00:00:04 i #2257 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Kitty.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Kitty.html.md.epub }
00:00:04 d #2259 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Kitty.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/Kitty.html.md.epub; result = 5490 }
00:00:04 d #2260 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.md.pdf; new_path = c:/home/git/vault/dist/data/drugs/drugs.md.pdf; result = 164323 }
00:00:04 i #2261 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Kitty.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Kitty.html.md.pdf }
00:00:04 i #2262 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.md.html }
00:00:04 d #2263 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Kitty.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Kitty.html.md.pdf; result = 4815 }
00:00:04 i #2264 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Kitty.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Kitty.html.md.html }
00:00:04 d #2265 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.md.html; new_path = c:/home/git/vault/dist/data/drugs/drugs.md.html; result = 142593 }
00:00:04 i #2266 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.hangul.md }
00:00:04 v #2267 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2268 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Kitty.html.md.html; new_path = c:/home/git/vault/dist/data/chat/Kitty.html.md.html; result = 11636 }
00:00:04 i #2269 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Kitty.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Kitty.html.hangul.md }
00:00:04 d #2270 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.hangul.md; new_path = c:/home/git/vault/dist/data/drugs/drugs.hangul.md; result = 186809 }
00:00:04 d #2271 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Kitty.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/Kitty.html.hangul.md; result = 137 }
00:00:04 d #2272 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/hardware/hardware.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/hardware/hardware.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 d #2273 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/drugs/drugs.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/drugs/drugs.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 d #2274 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/Luckyystrike.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/Luckyystrike.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 v #2275 > '5fabbc5009e36457c673ab281ad24ae700224001'
00:00:04 v #2276 > 'bb1dd6b3d5d3aa822489fb2c78a9004391741d72'
00:00:04 v #2277 > 'df377f01f1b9f3670c7a12dc9fdd0acd84916774'
00:00:04 v #2278 > f7379c8f42c2af5f5e2459a6fc92cff0ac9bf1c4
00:00:04 v #2279 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2280 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/books/books.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/books/books.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2281 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2282 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/cliparts/avatars.i574n.png.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/cliparts/avatars.i574n.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2283 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2284 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/web3/web3.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/web3/web3.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2285 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2286 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/music.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\music.mp3.hangul.md.epub }
00:00:04 d #2287 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\music.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/music/music.mp3.hangul.md.epub; result = 5919 }
00:00:04 i #2288 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/music.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\music.mp3.hangul.md.pdf }
00:00:04 d #2289 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\music.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/music/music.mp3.hangul.md.pdf; result = 4580 }
00:00:04 i #2290 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/music.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\music.mp3.hangul.md.html }
00:00:04 d #2291 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\music.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/music/music.mp3.hangul.md.html; result = 11560 }
00:00:04 i #2292 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/music.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\music.mp3.md.epub }
00:00:04 d #2293 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\music.mp3.md.epub; new_path = c:/home/git/vault/dist/data/music/music.mp3.md.epub; result = 5732 }
00:00:04 i #2294 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/music.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\music.mp3.md.pdf }
00:00:04 d #2295 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\music.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/music/music.mp3.md.pdf; result = 9338 }
00:00:04 i #2296 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/music.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\music.mp3.md.html }
00:00:04 d #2297 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\music.mp3.md.html; new_path = c:/home/git/vault/dist/data/music/music.mp3.md.html; result = 10841 }
00:00:04 i #2298 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/music/music.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\music.mp3.hangul.md }
00:00:04 d #2299 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\music.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/music/music.mp3.hangul.md; result = 1497 }
00:00:04 d #2300 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/navigation/navigation.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/navigation/navigation.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 v #2301 > 455601e4dd7acd186e2b720c67ec48013537f743
00:00:04 v #2302 > '9374f730729923ec03218a01780c68bb615491a4'
00:00:04 v #2303 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2304 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hardware/hardware.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hardware.hangul.md.epub }
00:00:04 d #2305 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hardware.hangul.md.epub; new_path = c:/home/git/vault/dist/data/hardware/hardware.hangul.md.epub; result = 12639 }
00:00:04 i #2306 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hardware/hardware.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hardware.hangul.md.pdf }
00:00:04 d #2307 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hardware.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/hardware/hardware.hangul.md.pdf; result = 17450 }
00:00:04 i #2308 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hardware/hardware.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hardware.hangul.md.html }
00:00:04 d #2309 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hardware.hangul.md.html; new_path = c:/home/git/vault/dist/data/hardware/hardware.hangul.md.html; result = 52886 }
00:00:04 i #2310 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hardware/hardware.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hardware.md.epub }
00:00:04 v #2311 > '0dfb76b4eb66823a9d64e6d9832084838f0931aa'
00:00:04 d #2312 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hardware.md.epub; new_path = c:/home/git/vault/dist/data/hardware/hardware.md.epub; result = 11682 }
00:00:04 i #2313 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hardware/hardware.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hardware.md.pdf }
00:00:04 d #2314 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hardware.md.pdf; new_path = c:/home/git/vault/dist/data/hardware/hardware.md.pdf; result = 48468 }
00:00:04 i #2315 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hardware/hardware.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hardware.md.html }
00:00:04 d #2316 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hardware.md.html; new_path = c:/home/git/vault/dist/data/hardware/hardware.md.html; result = 41164 }
00:00:04 i #2317 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hardware/hardware.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hardware.hangul.md }
00:00:04 d #2318 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hardware.hangul.md; new_path = c:/home/git/vault/dist/data/hardware/hardware.hangul.md; result = 33758 }
00:00:04 v #2319 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2320 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/drugs/drugs.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/drugs/drugs.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 d #2321 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/hip-hop/complexity-and-competition_pt-br.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/hip-hop/complexity-and-competition_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 v #2322 > 5fabbc5009e36457c673ab281ad24ae700224001
00:00:04 v #2323 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2324 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/Luckyystrike.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/Luckyystrike.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2325 > bb1dd6b3d5d3aa822489fb2c78a9004391741d72
00:00:04 v #2326 > df377f01f1b9f3670c7a12dc9fdd0acd84916774
00:00:04 v #2327 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2328 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/books/books.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\books.hangul.md.epub }
00:00:04 d #2329 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\books.hangul.md.epub; new_path = c:/home/git/vault/dist/data/books/books.hangul.md.epub; result = 10806 }
00:00:04 i #2330 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/books/books.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\books.hangul.md.pdf }
00:00:04 d #2331 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\books.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/books/books.hangul.md.pdf; result = 11037 }
00:00:04 i #2332 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/books/books.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\books.hangul.md.html }
00:00:04 d #2333 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\books.hangul.md.html; new_path = c:/home/git/vault/dist/data/books/books.hangul.md.html; result = 32966 }
00:00:04 i #2334 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/books/books.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\books.md.epub }
00:00:04 d #2335 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\books.md.epub; new_path = c:/home/git/vault/dist/data/books/books.md.epub; result = 9917 }
00:00:04 i #2336 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/books/books.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\books.md.pdf }
00:00:04 d #2337 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\books.md.pdf; new_path = c:/home/git/vault/dist/data/books/books.md.pdf; result = 28934 }
00:00:04 i #2338 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/books/books.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\books.md.html }
00:00:04 d #2339 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\books.md.html; new_path = c:/home/git/vault/dist/data/books/books.md.html; result = 27228 }
00:00:04 i #2340 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/books/books.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\books.hangul.md }
00:00:04 d #2341 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\books.hangul.md; new_path = c:/home/git/vault/dist/data/books/books.hangul.md; result = 16083 }
00:00:04 v #2342 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 d #2343 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/business/business.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/business/business.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 v #2344 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2345 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.pdf.hangul.md.epub }
00:00:04 d #2346 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/web3/web3.pdf.hangul.md.epub; result = 7770 }
00:00:04 i #2347 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.pdf.hangul.md.pdf }
00:00:04 d #2348 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/web3/web3.pdf.hangul.md.pdf; result = 7357 }
00:00:04 i #2349 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.pdf.hangul.md.html }
00:00:04 i #2350 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cliparts/avatars.i574n.png.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\avatars.i574n.png.hangul.md.epub }
00:00:04 d #2351 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/web3/web3.pdf.hangul.md.html; result = 19755 }
00:00:04 d #2352 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\avatars.i574n.png.hangul.md.epub; new_path = c:/home/git/vault/dist/data/cliparts/avatars.i574n.png.hangul.md.epub; result = 5772 }
00:00:04 i #2353 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.pdf.md.epub }
00:00:04 i #2354 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cliparts/avatars.i574n.png.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\avatars.i574n.png.hangul.md.pdf }
00:00:04 d #2355 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.pdf.md.epub; new_path = c:/home/git/vault/dist/data/web3/web3.pdf.md.epub; result = 7203 }
00:00:04 d #2356 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\avatars.i574n.png.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/cliparts/avatars.i574n.png.hangul.md.pdf; result = 2201 }
00:00:04 i #2357 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cliparts/avatars.i574n.png.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\avatars.i574n.png.hangul.md.html }
00:00:04 i #2358 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.pdf.md.pdf }
00:00:04 d #2359 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\avatars.i574n.png.hangul.md.html; new_path = c:/home/git/vault/dist/data/cliparts/avatars.i574n.png.hangul.md.html; result = 10641 }
00:00:04 i #2360 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cliparts/avatars.i574n.png.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\avatars.i574n.png.md.epub }
00:00:04 d #2361 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/web3/web3.pdf.md.pdf; result = 15249 }
00:00:04 d #2362 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\avatars.i574n.png.md.epub; new_path = c:/home/git/vault/dist/data/cliparts/avatars.i574n.png.md.epub; result = 5633 }
00:00:04 i #2363 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.pdf.md.html }
00:00:04 i #2364 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cliparts/avatars.i574n.png.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\avatars.i574n.png.md.pdf }
00:00:04 v #2365 > '574ee3a652500f3406dab750e9154ce6b4dbc09b'
00:00:04 d #2366 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\avatars.i574n.png.md.pdf; new_path = c:/home/git/vault/dist/data/cliparts/avatars.i574n.png.md.pdf; result = 2205 }
00:00:04 d #2367 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.pdf.md.html; new_path = c:/home/git/vault/dist/data/web3/web3.pdf.md.html; result = 16626 }
00:00:04 i #2368 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cliparts/avatars.i574n.png.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\avatars.i574n.png.md.html }
00:00:04 i #2369 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/web3/web3.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\web3.pdf.hangul.md }
00:00:04 d #2370 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\avatars.i574n.png.md.html; new_path = c:/home/git/vault/dist/data/cliparts/avatars.i574n.png.md.html; result = 10367 }
00:00:04 d #2371 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\web3.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/web3/web3.pdf.hangul.md; result = 8631 }
00:00:04 i #2372 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cliparts/avatars.i574n.png.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\avatars.i574n.png.hangul.md }
00:00:04 d #2373 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\avatars.i574n.png.hangul.md; new_path = c:/home/git/vault/dist/data/cliparts/avatars.i574n.png.hangul.md; result = 650 }
00:00:04 d #2374 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/Blond3B.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/Blond3B.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 d #2375 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/cliparts/cliparts.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/cliparts/cliparts.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 v #2376 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2377 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/navigation/navigation.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/navigation/navigation.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2378 > 'e42da5723e601e2eaf26691ae223892b88386727'
00:00:04 v #2379 > 9374f730729923ec03218a01780c68bb615491a4
00:00:04 v #2380 > 0dfb76b4eb66823a9d64e6d9832084838f0931aa
00:00:04 v #2381 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 v #2382 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 i #2383 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.mp3.hangul.md.epub }
00:00:04 d #2384 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/hip-hop/complexity-and-competition_pt-br.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/hip-hop/complexity-and-competition_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 d #2385 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/drugs/drugs.mp3.hangul.md.epub; result = 5850 }
00:00:04 i #2386 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.mp3.hangul.md.pdf }
00:00:04 d #2387 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/drugs/drugs.mp3.hangul.md.pdf; result = 4357 }
00:00:04 i #2388 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.mp3.hangul.md.html }
00:00:04 d #2389 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/drugs/drugs.mp3.hangul.md.html; result = 10998 }
00:00:04 i #2390 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.mp3.md.epub }
00:00:04 d #2391 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.mp3.md.epub; new_path = c:/home/git/vault/dist/data/drugs/drugs.mp3.md.epub; result = 5676 }
00:00:04 i #2392 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.mp3.md.pdf }
00:00:04 d #2393 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/drugs/drugs.mp3.md.pdf; result = 8824 }
00:00:04 i #2394 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.mp3.md.html }
00:00:04 d #2395 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.mp3.md.html; new_path = c:/home/git/vault/dist/data/drugs/drugs.mp3.md.html; result = 10550 }
00:00:04 i #2396 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.mp3.hangul.md }
00:00:04 d #2397 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/drugs/drugs.mp3.hangul.md; result = 982 }
00:00:04 v #2398 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 d #2399 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/drugs/drugs.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/drugs/drugs.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 i #2400 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Luckyystrike.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Luckyystrike.html.hangul.md.epub }
00:00:04 d #2401 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Luckyystrike.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/Luckyystrike.html.hangul.md.epub; result = 5562 }
00:00:04 i #2402 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Luckyystrike.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Luckyystrike.html.hangul.md.pdf }
00:00:04 d #2403 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Luckyystrike.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Luckyystrike.html.hangul.md.pdf; result = 4626 }
00:00:04 i #2404 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Luckyystrike.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Luckyystrike.html.hangul.md.html }
00:00:04 d #2405 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Luckyystrike.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/Luckyystrike.html.hangul.md.html; result = 11680 }
00:00:04 i #2406 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Luckyystrike.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Luckyystrike.html.md.epub }
00:00:04 d #2407 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Luckyystrike.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/Luckyystrike.html.md.epub; result = 5497 }
00:00:04 i #2408 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Luckyystrike.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Luckyystrike.html.md.pdf }
00:00:04 d #2409 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Luckyystrike.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Luckyystrike.html.md.pdf; result = 4868 }
00:00:04 i #2410 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Luckyystrike.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Luckyystrike.html.md.html }
00:00:04 v #2411 > 'd093d5959b1aa80e6844338cdf0a2e38d9846fe6'
00:00:04 d #2412 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Luckyystrike.html.md.html; new_path = c:/home/git/vault/dist/data/chat/Luckyystrike.html.md.html; result = 11643 }
00:00:04 i #2413 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Luckyystrike.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Luckyystrike.html.hangul.md }
00:00:04 d #2414 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Luckyystrike.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/Luckyystrike.html.hangul.md; result = 149 }
00:00:04 d #2415 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/mfc.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/mfc.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 v #2416 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2417 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/business/business.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/business/business.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2418 > '3641d1976fdcab1098922b3a808a6893d0dae39b'
00:00:04 v #2419 > '0b2a389931afb82d941ca55444960e145eb5c657'
00:00:04 v #2420 > 574ee3a652500f3406dab750e9154ce6b4dbc09b
00:00:04 v #2421 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 v #2422 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2423 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/Blond3B.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/Blond3B.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 d #2424 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/cliparts/cliparts.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/cliparts/cliparts.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2425 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2426 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/navigation/navigation.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\navigation.html.hangul.md.epub }
00:00:04 d #2427 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\navigation.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/navigation/navigation.html.hangul.md.epub; result = 5832 }
00:00:04 i #2428 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/navigation/navigation.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\navigation.html.hangul.md.pdf }
00:00:04 d #2429 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\navigation.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/navigation/navigation.html.hangul.md.pdf; result = 5507 }
00:00:04 i #2430 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/navigation/navigation.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\navigation.html.hangul.md.html }
00:00:04 d #2431 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\navigation.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/navigation/navigation.html.hangul.md.html; result = 11755 }
00:00:04 i #2432 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/navigation/navigation.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\navigation.html.md.epub }
00:00:04 d #2433 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\navigation.html.md.epub; new_path = c:/home/git/vault/dist/data/navigation/navigation.html.md.epub; result = 5683 }
00:00:04 i #2434 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/navigation/navigation.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\navigation.html.md.pdf }
00:00:04 d #2435 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\navigation.html.md.pdf; new_path = c:/home/git/vault/dist/data/navigation/navigation.html.md.pdf; result = 9335 }
00:00:04 i #2436 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/navigation/navigation.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\navigation.html.md.html }
00:00:04 d #2437 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\navigation.html.md.html; new_path = c:/home/git/vault/dist/data/navigation/navigation.html.md.html; result = 11414 }
00:00:04 i #2438 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/navigation/navigation.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\navigation.html.hangul.md }
00:00:04 d #2439 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\navigation.html.hangul.md; new_path = c:/home/git/vault/dist/data/navigation/navigation.html.hangul.md; result = 1226 }
00:00:04 d #2440 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/navigation/navigation.png.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/navigation/navigation.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 v #2441 > e42da5723e601e2eaf26691ae223892b88386727
00:00:04 v #2442 > '56ee19c0052ec69368954d0186b82fc57768f560'
00:00:04 v #2443 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2444 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hip-hop/complexity-and-competition_pt-br.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\complexity-and-competition_pt-br.hangul.md.epub }
00:00:04 d #2445 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\complexity-and-competition_pt-br.hangul.md.epub; new_path = c:/home/git/vault/dist/data/hip-hop/complexity-and-competition_pt-br.hangul.md.epub; result = 40361 }
00:00:04 i #2446 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hip-hop/complexity-and-competition_pt-br.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\complexity-and-competition_pt-br.hangul.md.pdf }
00:00:04 v #2447 > '851a864bfefadeefdcb491f5c0dc83cd24bafccc'
00:00:04 d #2448 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\complexity-and-competition_pt-br.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/hip-hop/complexity-and-competition_pt-br.hangul.md.pdf; result = 48381 }
00:00:04 i #2449 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hip-hop/complexity-and-competition_pt-br.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\complexity-and-competition_pt-br.hangul.md.html }
00:00:04 d #2450 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\complexity-and-competition_pt-br.hangul.md.html; new_path = c:/home/git/vault/dist/data/hip-hop/complexity-and-competition_pt-br.hangul.md.html; result = 159575 }
00:00:04 i #2451 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hip-hop/complexity-and-competition_pt-br.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\complexity-and-competition_pt-br.md.epub }
00:00:04 v #2452 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2453 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\complexity-and-competition_pt-br.md.epub; new_path = c:/home/git/vault/dist/data/hip-hop/complexity-and-competition_pt-br.md.epub; result = 35705 }
00:00:04 i #2454 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hip-hop/complexity-and-competition_pt-br.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\complexity-and-competition_pt-br.md.pdf }
00:00:04 d #2455 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\complexity-and-competition_pt-br.md.pdf; new_path = c:/home/git/vault/dist/data/hip-hop/complexity-and-competition_pt-br.md.pdf; result = 130346 }
00:00:04 d #2456 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/drugs/drugs.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/drugs/drugs.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 i #2457 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hip-hop/complexity-and-competition_pt-br.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\complexity-and-competition_pt-br.md.html }
00:00:04 d #2458 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\complexity-and-competition_pt-br.md.html; new_path = c:/home/git/vault/dist/data/hip-hop/complexity-and-competition_pt-br.md.html; result = 110911 }
00:00:04 i #2459 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hip-hop/complexity-and-competition_pt-br.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\complexity-and-competition_pt-br.hangul.md }
00:00:04 d #2460 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\complexity-and-competition_pt-br.hangul.md; new_path = c:/home/git/vault/dist/data/hip-hop/complexity-and-competition_pt-br.hangul.md; result = 143161 }
00:00:04 v #2461 > d093d5959b1aa80e6844338cdf0a2e38d9846fe6
00:00:04 v #2462 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2463 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/hip-hop/hip-hop.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/hip-hop/hip-hop.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 d #2464 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/mfc.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/mfc.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2465 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2466 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/business/business.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\business.hangul.md.epub }
00:00:04 d #2467 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\business.hangul.md.epub; new_path = c:/home/git/vault/dist/data/business/business.hangul.md.epub; result = 7785 }
00:00:04 i #2468 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/business/business.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\business.hangul.md.pdf }
00:00:04 d #2469 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\business.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/business/business.hangul.md.pdf; result = 6674 }
00:00:04 i #2470 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/business/business.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\business.hangul.md.html }
00:00:04 d #2471 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\business.hangul.md.html; new_path = c:/home/git/vault/dist/data/business/business.hangul.md.html; result = 22627 }
00:00:04 i #2472 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/business/business.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\business.md.epub }
00:00:04 d #2473 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\business.md.epub; new_path = c:/home/git/vault/dist/data/business/business.md.epub; result = 7315 }
00:00:04 i #2474 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/business/business.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\business.md.pdf }
00:00:04 v #2475 > 0b2a389931afb82d941ca55444960e145eb5c657
00:00:04 d #2476 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\business.md.pdf; new_path = c:/home/git/vault/dist/data/business/business.md.pdf; result = 18658 }
00:00:04 i #2477 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/business/business.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\business.md.html }
00:00:04 v #2478 > 3641d1976fdcab1098922b3a808a6893d0dae39b
00:00:04 d #2479 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\business.md.html; new_path = c:/home/git/vault/dist/data/business/business.md.html; result = 19670 }
00:00:04 i #2480 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/business/business.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\business.hangul.md }
00:00:04 d #2481 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\business.hangul.md; new_path = c:/home/git/vault/dist/data/business/business.hangul.md; result = 7972 }
00:00:04 d #2482 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/AdySweet.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/AdySweet.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 v #2483 > '7f916cd510d5f0d2a2850689a5b05a12150a038e'
00:00:04 v #2484 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 v #2485 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2486 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Blond3B.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Blond3B.html.hangul.md.epub }
00:00:04 i #2487 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cliparts/cliparts.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cliparts.html.hangul.md.epub }
00:00:04 d #2488 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Blond3B.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/Blond3B.html.hangul.md.epub; result = 5564 }
00:00:04 i #2489 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Blond3B.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Blond3B.html.hangul.md.pdf }
00:00:04 d #2490 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cliparts.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/cliparts/cliparts.html.hangul.md.epub; result = 5602 }
00:00:04 i #2491 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cliparts/cliparts.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cliparts.html.hangul.md.pdf }
00:00:04 d #2492 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Blond3B.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Blond3B.html.hangul.md.pdf; result = 4796 }
00:00:04 d #2493 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cliparts.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/cliparts/cliparts.html.hangul.md.pdf; result = 4052 }
00:00:04 i #2494 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Blond3B.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Blond3B.html.hangul.md.html }
00:00:04 i #2495 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cliparts/cliparts.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cliparts.html.hangul.md.html }
00:00:04 d #2496 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Blond3B.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/Blond3B.html.hangul.md.html; result = 11675 }
00:00:04 d #2497 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cliparts.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/cliparts/cliparts.html.hangul.md.html; result = 10765 }
00:00:04 i #2498 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Blond3B.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Blond3B.html.md.epub }
00:00:04 i #2499 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cliparts/cliparts.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cliparts.html.md.epub }
00:00:04 d #2500 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Blond3B.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/Blond3B.html.md.epub; result = 5492 }
00:00:04 i #2501 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Blond3B.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Blond3B.html.md.pdf }
00:00:04 v #2502 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2503 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cliparts.html.md.epub; new_path = c:/home/git/vault/dist/data/cliparts/cliparts.html.md.epub; result = 5497 }
00:00:04 i #2504 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cliparts/cliparts.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cliparts.html.md.pdf }
00:00:04 d #2505 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Blond3B.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Blond3B.html.md.pdf; result = 5107 }
00:00:04 i #2506 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Blond3B.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Blond3B.html.md.html }
00:00:04 d #2507 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cliparts.html.md.pdf; new_path = c:/home/git/vault/dist/data/cliparts/cliparts.html.md.pdf; result = 6628 }
00:00:04 i #2508 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cliparts/cliparts.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cliparts.html.md.html }
00:00:04 d #2509 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Blond3B.html.md.html; new_path = c:/home/git/vault/dist/data/chat/Blond3B.html.md.html; result = 11638 }
00:00:04 d #2510 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/navigation/navigation.png.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/navigation/navigation.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 i #2511 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Blond3B.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Blond3B.html.hangul.md }
00:00:04 d #2512 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cliparts.html.md.html; new_path = c:/home/git/vault/dist/data/cliparts/cliparts.html.md.html; result = 10614 }
00:00:04 i #2513 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cliparts/cliparts.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cliparts.html.hangul.md }
00:00:04 d #2514 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Blond3B.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/Blond3B.html.hangul.md; result = 144 }
00:00:04 d #2515 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cliparts.html.hangul.md; new_path = c:/home/git/vault/dist/data/cliparts/cliparts.html.hangul.md; result = 531 }
00:00:04 d #2516 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/Brithanybrown.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/Brithanybrown.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 d #2517 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/clojure/clojure.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/clojure/clojure.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 v #2518 > 56ee19c0052ec69368954d0186b82fc57768f560
00:00:04 v #2519 > 851a864bfefadeefdcb491f5c0dc83cd24bafccc
00:00:04 v #2520 > '01521afcb2137c1e764ac68f071a5d357f1fd11b'
00:00:04 v #2521 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2522 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.pdf.hangul.md.epub }
00:00:04 d #2523 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/drugs/drugs.pdf.hangul.md.epub; result = 5722 }
00:00:04 i #2524 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.pdf.hangul.md.pdf }
00:00:04 v #2525 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 d #2526 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/drugs/drugs.pdf.hangul.md.pdf; result = 5145 }
00:00:04 v #2527 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 i #2528 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.pdf.hangul.md.html }
00:00:04 d #2529 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/drugs/drugs.pdf.hangul.md.html; result = 10407 }
00:00:04 i #2530 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.pdf.md.epub }
00:00:04 i #2531 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/mfc.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mfc.html.hangul.md.epub }
00:00:04 d #2532 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.pdf.md.epub; new_path = c:/home/git/vault/dist/data/drugs/drugs.pdf.md.epub; result = 5587 }
00:00:04 i #2533 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.pdf.md.pdf }
00:00:04 d #2534 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mfc.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/mfc.html.hangul.md.epub; result = 5614 }
00:00:04 d #2535 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/hip-hop/hip-hop.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/hip-hop/hip-hop.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 i #2536 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/mfc.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mfc.html.hangul.md.pdf }
00:00:04 d #2537 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/drugs/drugs.pdf.md.pdf; result = 8434 }
00:00:04 i #2538 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.pdf.md.html }
00:00:04 d #2539 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mfc.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/mfc.html.hangul.md.pdf; result = 4805 }
00:00:04 d #2540 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.pdf.md.html; new_path = c:/home/git/vault/dist/data/drugs/drugs.pdf.md.html; result = 10256 }
00:00:04 i #2541 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/mfc.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mfc.html.hangul.md.html }
00:00:04 i #2542 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/drugs.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\drugs.pdf.hangul.md }
00:00:04 d #2543 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\drugs.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/drugs/drugs.pdf.hangul.md; result = 419 }
00:00:04 d #2544 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mfc.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/mfc.html.hangul.md.html; result = 12575 }
00:00:04 i #2545 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/mfc.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mfc.html.md.epub }
00:00:04 d #2546 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mfc.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/mfc.html.md.epub; result = 5535 }
00:00:04 i #2547 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/mfc.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mfc.html.md.pdf }
00:00:04 d #2548 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mfc.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/mfc.html.md.pdf; result = 5546 }
00:00:04 i #2549 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/mfc.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mfc.html.md.html }
00:00:04 d #2550 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/drugs/selva-verde_pt-br.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/drugs/selva-verde_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 d #2551 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mfc.html.md.html; new_path = c:/home/git/vault/dist/data/chat/mfc.html.md.html; result = 12399 }
00:00:04 i #2552 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/mfc.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\mfc.html.hangul.md }
00:00:04 d #2553 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\mfc.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/mfc.html.hangul.md; result = 1452 }
00:00:04 v #2554 > '4ce4e5578a3377ea45aed9218cb0005a22029bbb'
00:00:04 d #2555 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/Missbaby8.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/Missbaby8.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:04 v #2556 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 d #2557 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/AdySweet.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/AdySweet.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:04 v #2558 > 7f916cd510d5f0d2a2850689a5b05a12150a038e
00:00:04 v #2559 > 'bfe889588e28b8b54bc764337bfaa7907cb8ff0d'
00:00:04 v #2560 > 'caed1cfb27dd8ad27c8e5bc20c0479b30b30b655'
00:00:04 v #2561 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:04 i #2562 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/navigation/navigation.png.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\navigation.png.hangul.md.epub }
00:00:04 d #2563 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\navigation.png.hangul.md.epub; new_path = c:/home/git/vault/dist/data/navigation/navigation.png.hangul.md.epub; result = 5585 }
00:00:04 i #2564 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/navigation/navigation.png.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\navigation.png.hangul.md.pdf }
00:00:04 d #2565 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\navigation.png.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/navigation/navigation.png.hangul.md.pdf; result = 2204 }
00:00:04 i #2566 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/navigation/navigation.png.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\navigation.png.hangul.md.html }
00:00:04 d #2567 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\navigation.png.hangul.md.html; new_path = c:/home/git/vault/dist/data/navigation/navigation.png.hangul.md.html; result = 10177 }
00:00:04 i #2568 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/navigation/navigation.png.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\navigation.png.md.epub }
00:00:04 d #2569 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\navigation.png.md.epub; new_path = c:/home/git/vault/dist/data/navigation/navigation.png.md.epub; result = 5494 }
00:00:04 i #2570 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/navigation/navigation.png.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\navigation.png.md.pdf }
00:00:04 d #2571 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\navigation.png.md.pdf; new_path = c:/home/git/vault/dist/data/navigation/navigation.png.md.pdf; result = 2203 }
00:00:04 i #2572 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/navigation/navigation.png.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\navigation.png.md.html }
00:00:04 d #2573 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\navigation.png.md.html; new_path = c:/home/git/vault/dist/data/navigation/navigation.png.md.html; result = 10078 }
00:00:04 i #2574 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/navigation/navigation.png.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\navigation.png.hangul.md }
00:00:04 d #2575 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\navigation.png.hangul.md; new_path = c:/home/git/vault/dist/data/navigation/navigation.png.hangul.md; result = 239 }
00:00:04 v #2576 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:04 v #2577 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #2578 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/Brithanybrown.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/Brithanybrown.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 d #2579 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/nix/nix.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/nix/nix.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 d #2580 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/clojure/clojure.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/clojure/clojure.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 v #2581 > 01521afcb2137c1e764ac68f071a5d357f1fd11b
00:00:05 v #2582 > '87fa470e327b8b916b9ee66974d7484564cde79c'
00:00:05 v #2583 > 4ce4e5578a3377ea45aed9218cb0005a22029bbb
00:00:05 v #2584 > '0a6f0097bf5c439e2a73990bdd489709029ecc19'
00:00:05 v #2585 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 i #2586 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hip-hop/hip-hop.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hip-hop.hangul.md.epub }
00:00:05 d #2587 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hip-hop.hangul.md.epub; new_path = c:/home/git/vault/dist/data/hip-hop/hip-hop.hangul.md.epub; result = 204399 }
00:00:05 i #2588 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hip-hop/hip-hop.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hip-hop.hangul.md.pdf }
00:00:05 v #2589 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #2590 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hip-hop.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/hip-hop/hip-hop.hangul.md.pdf; result = 218135 }
00:00:05 i #2591 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hip-hop/hip-hop.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hip-hop.hangul.md.html }
00:00:05 d #2592 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/Missbaby8.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/Missbaby8.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 d #2593 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hip-hop.hangul.md.html; new_path = c:/home/git/vault/dist/data/hip-hop/hip-hop.hangul.md.html; result = 901844 }
00:00:05 i #2594 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hip-hop/hip-hop.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hip-hop.md.epub }
00:00:05 d #2595 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hip-hop.md.epub; new_path = c:/home/git/vault/dist/data/hip-hop/hip-hop.md.epub; result = 180054 }
00:00:05 i #2596 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hip-hop/hip-hop.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hip-hop.md.pdf }
00:00:05 v #2597 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 d #2598 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hip-hop.md.pdf; new_path = c:/home/git/vault/dist/data/hip-hop/hip-hop.md.pdf; result = 629891 }
00:00:05 i #2599 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hip-hop/hip-hop.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hip-hop.md.html }
00:00:05 i #2600 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AdySweet.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AdySweet.html.hangul.md.epub }
00:00:05 v #2601 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #2602 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hip-hop.md.html; new_path = c:/home/git/vault/dist/data/hip-hop/hip-hop.md.html; result = 632523 }
00:00:05 d #2602 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AdySweet.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/AdySweet.html.hangul.md.epub; result = 5566 }
00:00:05 i #2604 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AdySweet.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AdySweet.html.hangul.md.pdf }
00:00:05 i #2605 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hip-hop/hip-hop.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hip-hop.hangul.md }
00:00:05 d #2606 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AdySweet.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/AdySweet.html.hangul.md.pdf; result = 4627 }
00:00:05 i #2607 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AdySweet.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AdySweet.html.hangul.md.html }
00:00:05 v #2608 > bfe889588e28b8b54bc764337bfaa7907cb8ff0d
00:00:05 d #2609 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/drugs/selva-verde_pt-br.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/drugs/selva-verde_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 d #2610 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AdySweet.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/AdySweet.html.hangul.md.html; result = 11677 }
00:00:05 i #2611 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AdySweet.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AdySweet.html.md.epub }
00:00:05 d #2612 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hip-hop.hangul.md; new_path = c:/home/git/vault/dist/data/hip-hop/hip-hop.hangul.md; result = 795535 }
00:00:05 d #2613 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AdySweet.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/AdySweet.html.md.epub; result = 5493 }
00:00:05 i #2614 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AdySweet.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AdySweet.html.md.pdf }
00:00:05 d #2615 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AdySweet.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/AdySweet.html.md.pdf; result = 5069 }
00:00:05 i #2616 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AdySweet.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AdySweet.html.md.html }
00:00:05 d #2617 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AdySweet.html.md.html; new_path = c:/home/git/vault/dist/data/chat/AdySweet.html.md.html; result = 11639 }
00:00:05 i #2618 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AdySweet.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AdySweet.html.hangul.md }
00:00:05 d #2619 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/history/history.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/history/history.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 d #2620 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AdySweet.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/AdySweet.html.hangul.md; result = 146 }
00:00:05 v #2621 > caed1cfb27dd8ad27c8e5bc20c0479b30b30b655
00:00:05 d #2622 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/aliceisonfire.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/aliceisonfire.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 v #2623 > '850aeca2369ebf42613d2a00e1c7854f9693c49f'
00:00:05 v #2624 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 i #2625 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Brithanybrown.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Brithanybrown.html.hangul.md.epub }
00:00:05 d #2626 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Brithanybrown.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/Brithanybrown.html.hangul.md.epub; result = 5568 }
00:00:05 i #2627 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Brithanybrown.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Brithanybrown.html.hangul.md.pdf }
00:00:05 d #2628 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Brithanybrown.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Brithanybrown.html.hangul.md.pdf; result = 4622 }
00:00:05 i #2629 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Brithanybrown.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Brithanybrown.html.hangul.md.html }
00:00:05 d #2630 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Brithanybrown.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/Brithanybrown.html.hangul.md.html; result = 11680 }
00:00:05 i #2631 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Brithanybrown.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Brithanybrown.html.md.epub }
00:00:05 v #2632 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 d #2633 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Brithanybrown.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/Brithanybrown.html.md.epub; result = 5494 }
00:00:05 i #2634 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Brithanybrown.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Brithanybrown.html.md.pdf }
00:00:05 d #2635 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Brithanybrown.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Brithanybrown.html.md.pdf; result = 5065 }
00:00:05 i #2636 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Brithanybrown.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Brithanybrown.html.md.html }
00:00:05 i #2637 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/clojure/clojure.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\clojure.hangul.md.epub }
00:00:05 d #2638 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Brithanybrown.html.md.html; new_path = c:/home/git/vault/dist/data/chat/Brithanybrown.html.md.html; result = 11644 }
00:00:05 d #2639 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\clojure.hangul.md.epub; new_path = c:/home/git/vault/dist/data/clojure/clojure.hangul.md.epub; result = 6690 }
00:00:05 i #2640 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Brithanybrown.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Brithanybrown.html.hangul.md }
00:00:05 i #2641 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/clojure/clojure.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\clojure.hangul.md.pdf }
00:00:05 d #2642 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Brithanybrown.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/Brithanybrown.html.hangul.md; result = 149 }
00:00:05 v #2643 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #2644 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\clojure.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/clojure/clojure.hangul.md.pdf; result = 8671 }
00:00:05 i #2645 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/clojure/clojure.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\clojure.hangul.md.html }
00:00:05 d #2646 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/Cherrycute666.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/Cherrycute666.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 d #2647 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/nix/nix.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/nix/nix.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 d #2648 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\clojure.hangul.md.html; new_path = c:/home/git/vault/dist/data/clojure/clojure.hangul.md.html; result = 14366 }
00:00:05 i #2649 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/clojure/clojure.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\clojure.md.epub }
00:00:05 d #2650 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\clojure.md.epub; new_path = c:/home/git/vault/dist/data/clojure/clojure.md.epub; result = 6846 }
00:00:05 i #2651 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/clojure/clojure.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\clojure.md.pdf }
00:00:05 d #2652 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\clojure.md.pdf; new_path = c:/home/git/vault/dist/data/clojure/clojure.md.pdf; result = 27567 }
00:00:05 i #2653 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/clojure/clojure.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\clojure.md.html }
00:00:05 d #2654 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\clojure.md.html; new_path = c:/home/git/vault/dist/data/clojure/clojure.md.html; result = 25746 }
00:00:05 i #2655 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/clojure/clojure.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\clojure.hangul.md }
00:00:05 d #2656 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\clojure.hangul.md; new_path = c:/home/git/vault/dist/data/clojure/clojure.hangul.md; result = 3603 }
00:00:05 d #2657 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/community/community.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/community/community.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 v #2658 > 87fa470e327b8b916b9ee66974d7484564cde79c
00:00:05 v #2659 > 0a6f0097bf5c439e2a73990bdd489709029ecc19
00:00:05 v #2660 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 i #2661 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Missbaby8.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Missbaby8.html.hangul.md.epub }
00:00:05 d #2662 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Missbaby8.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/Missbaby8.html.hangul.md.epub; result = 5561 }
00:00:05 i #2663 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Missbaby8.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Missbaby8.html.hangul.md.pdf }
00:00:05 d #2664 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Missbaby8.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Missbaby8.html.hangul.md.pdf; result = 4776 }
00:00:05 i #2665 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Missbaby8.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Missbaby8.html.hangul.md.html }
00:00:05 d #2666 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Missbaby8.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/Missbaby8.html.hangul.md.html; result = 11675 }
00:00:05 i #2667 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Missbaby8.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Missbaby8.html.md.epub }
00:00:05 d #2668 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Missbaby8.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/Missbaby8.html.md.epub; result = 5494 }
00:00:05 i #2669 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Missbaby8.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Missbaby8.html.md.pdf }
00:00:05 v #2669 > '56ff044e3443dc01d62c5d2f0f72ea826c4dacb1'
00:00:05 d #2671 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Missbaby8.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Missbaby8.html.md.pdf; result = 5044 }
00:00:05 i #2672 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Missbaby8.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Missbaby8.html.md.html }
00:00:05 v #2673 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 d #2674 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Missbaby8.html.md.html; new_path = c:/home/git/vault/dist/data/chat/Missbaby8.html.md.html; result = 11640 }
00:00:05 i #2675 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Missbaby8.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Missbaby8.html.hangul.md }
00:00:05 d #2676 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Missbaby8.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/Missbaby8.html.hangul.md; result = 144 }
00:00:05 i #2677 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/selva-verde_pt-br.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\selva-verde_pt-br.hangul.md.epub }
00:00:05 d #2678 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\selva-verde_pt-br.hangul.md.epub; new_path = c:/home/git/vault/dist/data/drugs/selva-verde_pt-br.hangul.md.epub; result = 32678 }
00:00:05 i #2679 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/selva-verde_pt-br.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\selva-verde_pt-br.hangul.md.pdf }
00:00:05 d #2680 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/MissLullu.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/MissLullu.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 d #2681 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\selva-verde_pt-br.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/drugs/selva-verde_pt-br.hangul.md.pdf; result = 33909 }
00:00:05 i #2682 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/selva-verde_pt-br.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\selva-verde_pt-br.hangul.md.html }
00:00:05 d #2683 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\selva-verde_pt-br.hangul.md.html; new_path = c:/home/git/vault/dist/data/drugs/selva-verde_pt-br.hangul.md.html; result = 116541 }
00:00:05 i #2684 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/selva-verde_pt-br.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\selva-verde_pt-br.md.epub }
00:00:05 v #2685 > 'f02b7d2b818094bb639b99d4d551937178eedb00'
00:00:05 d #2686 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\selva-verde_pt-br.md.epub; new_path = c:/home/git/vault/dist/data/drugs/selva-verde_pt-br.md.epub; result = 28816 }
00:00:05 i #2687 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/selva-verde_pt-br.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\selva-verde_pt-br.md.pdf }
00:00:05 d #2688 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\selva-verde_pt-br.md.pdf; new_path = c:/home/git/vault/dist/data/drugs/selva-verde_pt-br.md.pdf; result = 96826 }
00:00:05 i #2689 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/selva-verde_pt-br.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\selva-verde_pt-br.md.html }
00:00:05 d #2690 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\selva-verde_pt-br.md.html; new_path = c:/home/git/vault/dist/data/drugs/selva-verde_pt-br.md.html; result = 81574 }
00:00:05 i #2691 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/drugs/selva-verde_pt-br.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\selva-verde_pt-br.hangul.md }
00:00:05 v #2691 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #2693 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\selva-verde_pt-br.hangul.md; new_path = c:/home/git/vault/dist/data/drugs/selva-verde_pt-br.hangul.md; result = 102468 }
00:00:05 d #2694 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/history/history.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/history/history.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 d #2695 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/economy/만리마속도_pt-br.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/economy/만리마속도_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 v #2696 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 v #2697 > 850aeca2369ebf42613d2a00e1c7854f9693c49f
00:00:05 v #2698 > '604f45424a71a705f768723ab6fed300b025f600'
00:00:05 d #2699 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/aliceisonfire.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/aliceisonfire.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 v #2700 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 v #2701 > '15350531c1b6540ade3842d1ffa6cbaf1c0b8763'
00:00:05 d #2702 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/Cherrycute666.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/Cherrycute666.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 v #2703 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 i #2704 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/nix/nix.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\nix.html.hangul.md.epub }
00:00:05 d #2705 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\nix.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/nix/nix.html.hangul.md.epub; result = 5549 }
00:00:05 i #2706 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/nix/nix.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\nix.html.hangul.md.pdf }
00:00:05 d #2707 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\nix.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/nix/nix.html.hangul.md.pdf; result = 3963 }
00:00:05 i #2708 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/nix/nix.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\nix.html.hangul.md.html }
00:00:05 d #2709 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\nix.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/nix/nix.html.hangul.md.html; result = 10141 }
00:00:05 i #2710 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/nix/nix.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\nix.html.md.epub }
00:00:05 d #2711 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\nix.html.md.epub; new_path = c:/home/git/vault/dist/data/nix/nix.html.md.epub; result = 5463 }
00:00:05 i #2712 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/nix/nix.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\nix.html.md.pdf }
00:00:05 d #2713 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\nix.html.md.pdf; new_path = c:/home/git/vault/dist/data/nix/nix.html.md.pdf; result = 6226 }
00:00:05 i #2714 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/nix/nix.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\nix.html.md.html }
00:00:05 d #2715 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\nix.html.md.html; new_path = c:/home/git/vault/dist/data/nix/nix.html.md.html; result = 10087 }
00:00:05 i #2716 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/nix/nix.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\nix.html.hangul.md }
00:00:05 d #2717 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\nix.html.hangul.md; new_path = c:/home/git/vault/dist/data/nix/nix.html.hangul.md; result = 174 }
00:00:05 d #2718 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/nix/nix.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/nix/nix.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 v #2719 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #2720 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/community/community.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/community/community.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 v #2721 > '141f277c8dfa9ad52a25295c5e3a11a62ee6e3ef'
00:00:05 v #2722 > 56ff044e3443dc01d62c5d2f0f72ea826c4dacb1
00:00:05 v #2723 > f02b7d2b818094bb639b99d4d551937178eedb00
00:00:05 v #2724 > 'ac4e96ed15d66d20d52a5acd366302ee1fa2c75c'
00:00:05 v #2725 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #2726 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/MissLullu.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/MissLullu.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 v #2727 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 v #2728 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 i #2729 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/history/history.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\history.hangul.md.epub }
00:00:05 i #2730 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/aliceisonfire.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\aliceisonfire.html.hangul.md.epub }
00:00:05 d #2731 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\aliceisonfire.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/aliceisonfire.html.hangul.md.epub; result = 5566 }
00:00:05 d #2731 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\history.hangul.md.epub; new_path = c:/home/git/vault/dist/data/history/history.hangul.md.epub; result = 12772 }
00:00:05 i #2733 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/aliceisonfire.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\aliceisonfire.html.hangul.md.pdf }
00:00:05 i #2734 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/history/history.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\history.hangul.md.pdf }
00:00:05 d #2735 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\aliceisonfire.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/aliceisonfire.html.hangul.md.pdf; result = 4626 }
00:00:05 i #2736 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/aliceisonfire.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\aliceisonfire.html.hangul.md.html }
00:00:05 v #2737 > 604f45424a71a705f768723ab6fed300b025f600
00:00:05 d #2738 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\history.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/history/history.hangul.md.pdf; result = 13016 }
00:00:05 d #2739 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\aliceisonfire.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/aliceisonfire.html.hangul.md.html; result = 11683 }
00:00:05 i #2740 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/history/history.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\history.hangul.md.html }
00:00:05 i #2741 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/aliceisonfire.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\aliceisonfire.html.md.epub }
00:00:05 v #2742 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #2743 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\history.hangul.md.html; new_path = c:/home/git/vault/dist/data/history/history.hangul.md.html; result = 39849 }
00:00:05 d #2744 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\aliceisonfire.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/aliceisonfire.html.md.epub; result = 5494 }
00:00:05 i #2745 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/aliceisonfire.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\aliceisonfire.html.md.pdf }
00:00:05 i #2746 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/history/history.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\history.md.epub }
00:00:05 d #2747 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\aliceisonfire.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/aliceisonfire.html.md.pdf; result = 4766 }
00:00:05 d #2748 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\history.md.epub; new_path = c:/home/git/vault/dist/data/history/history.md.epub; result = 11762 }
00:00:05 i #2749 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/aliceisonfire.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\aliceisonfire.html.md.html }
00:00:05 d #2750 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/economy/만리마속도_pt-br.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/economy/만리마속도_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 i #2751 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/history/history.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\history.md.pdf }
00:00:05 d #2752 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\aliceisonfire.html.md.html; new_path = c:/home/git/vault/dist/data/chat/aliceisonfire.html.md.html; result = 11644 }
00:00:05 d #2753 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\history.md.pdf; new_path = c:/home/git/vault/dist/data/history/history.md.pdf; result = 34189 }
00:00:05 i #2754 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/history/history.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\history.md.html }
00:00:05 i #2755 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/aliceisonfire.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\aliceisonfire.html.hangul.md }
00:00:05 d #2756 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\aliceisonfire.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/aliceisonfire.html.hangul.md; result = 152 }
00:00:05 d #2757 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\history.md.html; new_path = c:/home/git/vault/dist/data/history/history.md.html; result = 31531 }
00:00:05 i #2758 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/history/history.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\history.hangul.md }
00:00:05 d #2759 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\history.hangul.md; new_path = c:/home/git/vault/dist/data/history/history.hangul.md; result = 23503 }
00:00:05 d #2760 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/Angrykat.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/Angrykat.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 d #2761 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/history/history.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/history/history.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 v #2762 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 i #2763 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Cherrycute666.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Cherrycute666.html.hangul.md.epub }
00:00:05 d #2764 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Cherrycute666.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/Cherrycute666.html.hangul.md.epub; result = 5568 }
00:00:05 i #2765 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Cherrycute666.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Cherrycute666.html.hangul.md.pdf }
00:00:05 d #2766 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Cherrycute666.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Cherrycute666.html.hangul.md.pdf; result = 4773 }
00:00:05 i #2767 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Cherrycute666.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Cherrycute666.html.hangul.md.html }
00:00:05 v #2768 > 15350531c1b6540ade3842d1ffa6cbaf1c0b8763
00:00:05 d #2769 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Cherrycute666.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/Cherrycute666.html.hangul.md.html; result = 11677 }
00:00:05 i #2770 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Cherrycute666.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Cherrycute666.html.md.epub }
00:00:05 d #2771 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Cherrycute666.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/Cherrycute666.html.md.epub; result = 5495 }
00:00:05 i #2772 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Cherrycute666.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Cherrycute666.html.md.pdf }
00:00:05 d #2773 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Cherrycute666.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Cherrycute666.html.md.pdf; result = 4954 }
00:00:05 i #2774 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Cherrycute666.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Cherrycute666.html.md.html }
00:00:05 d #2775 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Cherrycute666.html.md.html; new_path = c:/home/git/vault/dist/data/chat/Cherrycute666.html.md.html; result = 11644 }
00:00:05 i #2776 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Cherrycute666.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Cherrycute666.html.hangul.md }
00:00:05 v #2777 > '794396ca6498adbc3ebe3cce207803372f34e562'
00:00:05 d #2778 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Cherrycute666.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/Cherrycute666.html.hangul.md; result = 146 }
00:00:05 d #2779 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/chloewildd.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/chloewildd.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 v #2780 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 v #2781 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 d #2782 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/nix/nix.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/nix/nix.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 i #2783 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/community/community.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\community.hangul.md.epub }
00:00:05 d #2784 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\community.hangul.md.epub; new_path = c:/home/git/vault/dist/data/community/community.hangul.md.epub; result = 12867 }
00:00:05 i #2785 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/community/community.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\community.hangul.md.pdf }
00:00:05 d #2786 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\community.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/community/community.hangul.md.pdf; result = 13134 }
00:00:05 i #2787 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/community/community.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\community.hangul.md.html }
00:00:05 d #2788 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\community.hangul.md.html; new_path = c:/home/git/vault/dist/data/community/community.hangul.md.html; result = 44767 }
00:00:05 i #2789 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/community/community.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\community.md.epub }
00:00:05 d #2790 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\community.md.epub; new_path = c:/home/git/vault/dist/data/community/community.md.epub; result = 11864 }
00:00:05 i #2791 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/community/community.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\community.md.pdf }
00:00:05 d #2792 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\community.md.pdf; new_path = c:/home/git/vault/dist/data/community/community.md.pdf; result = 36091 }
00:00:05 i #2793 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/community/community.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\community.md.html }
00:00:05 d #2794 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\community.md.html; new_path = c:/home/git/vault/dist/data/community/community.md.html; result = 34745 }
00:00:05 i #2795 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/community/community.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\community.hangul.md }
00:00:05 d #2796 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\community.hangul.md; new_path = c:/home/git/vault/dist/data/community/community.hangul.md; result = 28240 }
00:00:05 d #2797 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/community/netiquette_pt-br.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/community/netiquette_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 v #2798 > 141f277c8dfa9ad52a25295c5e3a11a62ee6e3ef
00:00:05 v #2799 > ac4e96ed15d66d20d52a5acd366302ee1fa2c75c
00:00:05 v #2800 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 i #2801 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/MissLullu.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\MissLullu.html.hangul.md.epub }
00:00:05 v #2802 > 'b61ba948805fe014979b6a8ed1873009ba516603'
00:00:05 d #2803 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\MissLullu.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/MissLullu.html.hangul.md.epub; result = 5561 }
00:00:05 i #2804 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/MissLullu.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\MissLullu.html.hangul.md.pdf }
00:00:05 d #2805 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\MissLullu.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/MissLullu.html.hangul.md.pdf; result = 4625 }
00:00:05 i #2806 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/MissLullu.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\MissLullu.html.hangul.md.html }
00:00:05 v #2807 > '299c44f77ebc021b85ead370f66e763056c1a5a7'
00:00:05 d #2808 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\MissLullu.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/MissLullu.html.hangul.md.html; result = 11674 }
00:00:05 i #2809 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/MissLullu.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\MissLullu.html.md.epub }
00:00:05 d #2810 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\MissLullu.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/MissLullu.html.md.epub; result = 5495 }
00:00:05 i #2811 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/MissLullu.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\MissLullu.html.md.pdf }
00:00:05 d #2812 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\MissLullu.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/MissLullu.html.md.pdf; result = 4937 }
00:00:05 i #2813 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/MissLullu.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\MissLullu.html.md.html }
00:00:05 d #2814 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\MissLullu.html.md.html; new_path = c:/home/git/vault/dist/data/chat/MissLullu.html.md.html; result = 11640 }
00:00:05 i #2815 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/MissLullu.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\MissLullu.html.hangul.md }
00:00:05 d #2816 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\MissLullu.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/MissLullu.html.hangul.md; result = 146 }
00:00:05 v #2817 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 v #2818 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #2819 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/NicolePowell.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/NicolePowell.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 i #2820 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/economy/만리마속도_pt-br.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\만리마속도_pt-br.hangul.md.epub }
00:00:05 d #2821 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/history/history.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/history/history.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 v #2822 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #2823 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\만리마속도_pt-br.hangul.md.epub; new_path = c:/home/git/vault/dist/data/economy/만리마속도_pt-br.hangul.md.epub; result = 319445 }
00:00:05 i #2824 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/economy/만리마속도_pt-br.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\만리마속도_pt-br.hangul.md.pdf }
00:00:05 d #2825 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/Angrykat.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/Angrykat.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 d #2826 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\만리마속도_pt-br.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/economy/만리마속도_pt-br.hangul.md.pdf; result = 331490 }
00:00:05 i #2827 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/economy/만리마속도_pt-br.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\만리마속도_pt-br.hangul.md.html }
00:00:05 d #2828 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\만리마속도_pt-br.hangul.md.html; new_path = c:/home/git/vault/dist/data/economy/만리마속도_pt-br.hangul.md.html; result = 1335933 }
00:00:05 i #2829 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/economy/만리마속도_pt-br.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\만리마속도_pt-br.md.epub }
00:00:05 d #2830 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\만리마속도_pt-br.md.epub; new_path = c:/home/git/vault/dist/data/economy/만리마속도_pt-br.md.epub; result = 279819 }
00:00:05 i #2831 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/economy/만리마속도_pt-br.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\만리마속도_pt-br.md.pdf }
00:00:05 v #2832 > '25c26fa1ad03412a9ab4e2fea6b2f2f86c3cca3a'
00:00:05 d #2833 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\만리마속도_pt-br.md.pdf; new_path = c:/home/git/vault/dist/data/economy/만리마속도_pt-br.md.pdf; result = 977530 }
00:00:05 i #2834 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/economy/만리마속도_pt-br.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\만리마속도_pt-br.md.html }
00:00:05 d #2835 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\만리마속도_pt-br.md.html; new_path = c:/home/git/vault/dist/data/economy/만리마속도_pt-br.md.html; result = 903159 }
00:00:05 i #2836 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/economy/만리마속도_pt-br.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\만리마속도_pt-br.hangul.md }
00:00:05 d #2837 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\만리마속도_pt-br.hangul.md; new_path = c:/home/git/vault/dist/data/economy/만리마속도_pt-br.hangul.md; result = 1272473 }
00:00:05 d #2838 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/engineering/engineering.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/engineering/engineering.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 v #2839 > 794396ca6498adbc3ebe3cce207803372f34e562
00:00:05 v #2840 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #2841 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/chloewildd.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/chloewildd.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 v #2842 > '5c6998de94bbf4d6ccad1953040679ff190118cb'
00:00:05 v #2843 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 i #2844 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/nix/nix.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\nix.hangul.md.epub }
00:00:05 d #2845 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\nix.hangul.md.epub; new_path = c:/home/git/vault/dist/data/nix/nix.hangul.md.epub; result = 6895 }
00:00:05 i #2846 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/nix/nix.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\nix.hangul.md.pdf }
00:00:05 d #2847 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\nix.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/nix/nix.hangul.md.pdf; result = 3972 }
00:00:05 i #2848 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/nix/nix.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\nix.hangul.md.html }
00:00:05 d #2849 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\nix.hangul.md.html; new_path = c:/home/git/vault/dist/data/nix/nix.hangul.md.html; result = 14287 }
00:00:05 i #2850 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/nix/nix.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\nix.md.epub }
00:00:05 d #2851 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\nix.md.epub; new_path = c:/home/git/vault/dist/data/nix/nix.md.epub; result = 6492 }
00:00:05 i #2852 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/nix/nix.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\nix.md.pdf }
00:00:05 v #2853 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #2854 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\nix.md.pdf; new_path = c:/home/git/vault/dist/data/nix/nix.md.pdf; result = 10284 }
00:00:05 i #2855 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/nix/nix.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\nix.md.html }
00:00:05 d #2856 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\nix.md.html; new_path = c:/home/git/vault/dist/data/nix/nix.md.html; result = 12802 }
00:00:05 i #2857 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/nix/nix.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\nix.hangul.md }
00:00:05 d #2858 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\nix.hangul.md; new_path = c:/home/git/vault/dist/data/nix/nix.hangul.md; result = 4096 }
00:00:05 d #2859 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/community/netiquette_pt-br.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/community/netiquette_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 d #2860 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/numbers/numbers.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/numbers/numbers.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 v #2861 > 299c44f77ebc021b85ead370f66e763056c1a5a7
00:00:05 v #2862 > '668f5e089fc908abc6eb2a47b2ff61beb7cb633f'
00:00:05 v #2863 > b61ba948805fe014979b6a8ed1873009ba516603
00:00:05 v #2864 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 v #2865 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 i #2866 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Angrykat.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Angrykat.html.hangul.md.epub }
00:00:05 d #2867 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/NicolePowell.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/NicolePowell.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 d #2868 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Angrykat.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/Angrykat.html.hangul.md.epub; result = 5563 }
00:00:05 v #2869 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 i #2870 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Angrykat.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Angrykat.html.hangul.md.pdf }
00:00:05 d #2871 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Angrykat.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Angrykat.html.hangul.md.pdf; result = 4626 }
00:00:05 v #2872 > 'e0edc596c7417feeaacdbf3ea04a7b3e05048dd5'
00:00:05 i #2873 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Angrykat.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Angrykat.html.hangul.md.html }
00:00:05 i #2874 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/history/history.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\history.mp3.hangul.md.epub }
00:00:05 d #2875 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Angrykat.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/Angrykat.html.hangul.md.html; result = 11677 }
00:00:05 i #2876 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Angrykat.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Angrykat.html.md.epub }
00:00:05 d #2877 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\history.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/history/history.mp3.hangul.md.epub; result = 6081 }
00:00:05 i #2878 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/history/history.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\history.mp3.hangul.md.pdf }
00:00:05 d #2879 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Angrykat.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/Angrykat.html.md.epub; result = 5492 }
00:00:05 i #2880 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Angrykat.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Angrykat.html.md.pdf }
00:00:05 d #2881 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\history.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/history/history.mp3.hangul.md.pdf; result = 4473 }
00:00:05 i #2882 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/history/history.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\history.mp3.hangul.md.html }
00:00:05 v #2883 > 25c26fa1ad03412a9ab4e2fea6b2f2f86c3cca3a
00:00:05 d #2884 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Angrykat.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Angrykat.html.md.pdf; result = 4963 }
00:00:05 d #2885 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\history.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/history/history.mp3.hangul.md.html; result = 11788 }
00:00:05 i #2886 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Angrykat.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Angrykat.html.md.html }
00:00:05 i #2887 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/history/history.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\history.mp3.md.epub }
00:00:05 d #2888 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Angrykat.html.md.html; new_path = c:/home/git/vault/dist/data/chat/Angrykat.html.md.html; result = 11639 }
00:00:05 i #2889 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Angrykat.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Angrykat.html.hangul.md }
00:00:05 d #2890 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\history.mp3.md.epub; new_path = c:/home/git/vault/dist/data/history/history.mp3.md.epub; result = 5829 }
00:00:05 i #2891 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/history/history.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\history.mp3.md.pdf }
00:00:05 d #2892 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Angrykat.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/Angrykat.html.hangul.md; result = 147 }
00:00:05 d #2893 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\history.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/history/history.mp3.md.pdf; result = 9793 }
00:00:05 i #2894 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/history/history.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\history.mp3.md.html }
00:00:05 d #2895 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\history.mp3.md.html; new_path = c:/home/git/vault/dist/data/history/history.mp3.md.html; result = 10988 }
00:00:05 i #2896 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/history/history.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\history.mp3.hangul.md }
00:00:05 d #2897 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\history.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/history/history.mp3.hangul.md; result = 1679 }
00:00:05 d #2898 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/AubriToffee.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/AubriToffee.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 d #2899 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/hunting/hunting.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/hunting/hunting.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 v #2900 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #2901 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/engineering/engineering.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/engineering/engineering.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 v #2902 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 i #2903 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/chloewildd.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chloewildd.html.hangul.md.epub }
00:00:05 d #2904 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chloewildd.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/chloewildd.html.hangul.md.epub; result = 5567 }
00:00:05 i #2905 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/chloewildd.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chloewildd.html.hangul.md.pdf }
00:00:05 d #2906 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chloewildd.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/chloewildd.html.hangul.md.pdf; result = 4626 }
00:00:05 i #2907 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/chloewildd.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chloewildd.html.hangul.md.html }
00:00:05 d #2908 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chloewildd.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/chloewildd.html.hangul.md.html; result = 11676 }
00:00:05 i #2909 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/chloewildd.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chloewildd.html.md.epub }
00:00:05 d #2910 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chloewildd.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/chloewildd.html.md.epub; result = 5488 }
00:00:05 i #2911 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/chloewildd.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chloewildd.html.md.pdf }
00:00:05 d #2912 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chloewildd.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/chloewildd.html.md.pdf; result = 4998 }
00:00:05 i #2913 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/chloewildd.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chloewildd.html.md.html }
00:00:05 v #2914 > 5c6998de94bbf4d6ccad1953040679ff190118cb
00:00:05 d #2915 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chloewildd.html.md.html; new_path = c:/home/git/vault/dist/data/chat/chloewildd.html.md.html; result = 11636 }
00:00:05 i #2916 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/chloewildd.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\chloewildd.html.hangul.md }
00:00:05 d #2917 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\chloewildd.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/chloewildd.html.hangul.md; result = 146 }
00:00:05 v #2918 > 'a1a5b3322c5350a719f7986e9d4ae98c35eee5b4'
00:00:05 d #2919 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/Dakota_Blare.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/Dakota_Blare.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 v #2920 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 v #2921 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 d #2922 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/numbers/numbers.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/numbers/numbers.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 i #2923 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/community/netiquette_pt-br.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\netiquette_pt-br.hangul.md.epub }
00:00:05 d #2924 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\netiquette_pt-br.hangul.md.epub; new_path = c:/home/git/vault/dist/data/community/netiquette_pt-br.hangul.md.epub; result = 23770 }
00:00:05 i #2925 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/community/netiquette_pt-br.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\netiquette_pt-br.hangul.md.pdf }
00:00:05 d #2926 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\netiquette_pt-br.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/community/netiquette_pt-br.hangul.md.pdf; result = 22472 }
00:00:05 i #2927 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/community/netiquette_pt-br.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\netiquette_pt-br.hangul.md.html }
00:00:05 d #2928 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\netiquette_pt-br.hangul.md.html; new_path = c:/home/git/vault/dist/data/community/netiquette_pt-br.hangul.md.html; result = 85534 }
00:00:05 i #2929 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/community/netiquette_pt-br.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\netiquette_pt-br.md.epub }
00:00:05 d #2930 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\netiquette_pt-br.md.epub; new_path = c:/home/git/vault/dist/data/community/netiquette_pt-br.md.epub; result = 21832 }
00:00:05 i #2931 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/community/netiquette_pt-br.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\netiquette_pt-br.md.pdf }
00:00:05 d #2932 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\netiquette_pt-br.md.pdf; new_path = c:/home/git/vault/dist/data/community/netiquette_pt-br.md.pdf; result = 56670 }
00:00:05 i #2933 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/community/netiquette_pt-br.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\netiquette_pt-br.md.html }
00:00:05 d #2934 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\netiquette_pt-br.md.html; new_path = c:/home/git/vault/dist/data/community/netiquette_pt-br.md.html; result = 64583 }
00:00:05 i #2935 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/community/netiquette_pt-br.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\netiquette_pt-br.hangul.md }
00:00:05 v #2936 > 668f5e089fc908abc6eb2a47b2ff61beb7cb633f
00:00:05 d #2937 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\netiquette_pt-br.hangul.md; new_path = c:/home/git/vault/dist/data/community/netiquette_pt-br.hangul.md; result = 65402 }
00:00:05 d #2938 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/compilers/compilers.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/compilers/compilers.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 v #2939 > e0edc596c7417feeaacdbf3ea04a7b3e05048dd5
00:00:05 v #2940 > 'f8e5972d7a116efc09e6f689052a2c00ef110f18'
00:00:05 v #2941 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 v #2942 > 'c7a57567fdf7ab3fb89bd268224cfdf5f8dadc9f'
00:00:05 v #2943 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 i #2944 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/NicolePowell.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\NicolePowell.html.hangul.md.epub }
00:00:05 d #2945 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\NicolePowell.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/NicolePowell.html.hangul.md.epub; result = 5567 }
00:00:05 i #2946 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/NicolePowell.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\NicolePowell.html.hangul.md.pdf }
00:00:05 i #2947 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/engineering/engineering.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\engineering.mp3.hangul.md.epub }
00:00:05 d #2948 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\NicolePowell.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/NicolePowell.html.hangul.md.pdf; result = 4623 }
00:00:05 i #2949 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/NicolePowell.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\NicolePowell.html.hangul.md.html }
00:00:05 d #2950 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\engineering.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/engineering/engineering.mp3.hangul.md.epub; result = 5645 }
00:00:05 i #2951 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/engineering/engineering.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\engineering.mp3.hangul.md.pdf }
00:00:05 d #2952 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\NicolePowell.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/NicolePowell.html.hangul.md.html; result = 11680 }
00:00:05 i #2953 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/NicolePowell.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\NicolePowell.html.md.epub }
00:00:05 v #2954 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #2955 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\engineering.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/engineering/engineering.mp3.hangul.md.pdf; result = 3990 }
00:00:05 i #2956 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/engineering/engineering.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\engineering.mp3.hangul.md.html }
00:00:05 d #2957 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\NicolePowell.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/NicolePowell.html.md.epub; result = 5495 }
00:00:05 i #2958 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/NicolePowell.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\NicolePowell.html.md.pdf }
00:00:05 d #2959 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\NicolePowell.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/NicolePowell.html.md.pdf; result = 5026 }
00:00:05 i #2960 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/NicolePowell.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\NicolePowell.html.md.html }
00:00:05 d #2961 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\engineering.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/engineering/engineering.mp3.hangul.md.html; result = 10278 }
00:00:05 i #2962 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/engineering/engineering.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\engineering.mp3.md.epub }
00:00:05 d #2963 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\NicolePowell.html.md.html; new_path = c:/home/git/vault/dist/data/chat/NicolePowell.html.md.html; result = 11643 }
00:00:05 d #2964 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\engineering.mp3.md.epub; new_path = c:/home/git/vault/dist/data/engineering/engineering.mp3.md.epub; result = 5525 }
00:00:05 i #2965 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/NicolePowell.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\NicolePowell.html.hangul.md }
00:00:05 i #2966 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/engineering/engineering.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\engineering.mp3.md.pdf }
00:00:05 d #2967 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/AubriToffee.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/AubriToffee.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 d #2968 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\NicolePowell.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/NicolePowell.html.hangul.md; result = 149 }
00:00:05 d #2969 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\engineering.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/engineering/engineering.mp3.md.pdf; result = 7540 }
00:00:05 i #2970 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/engineering/engineering.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\engineering.mp3.md.html }
00:00:05 d #2971 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\engineering.mp3.md.html; new_path = c:/home/git/vault/dist/data/engineering/engineering.mp3.md.html; result = 10118 }
00:00:05 i #2972 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/engineering/engineering.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\engineering.mp3.hangul.md }
00:00:05 d #2973 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\engineering.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/engineering/engineering.mp3.hangul.md; result = 353 }
00:00:05 d #2974 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/Olivia.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/Olivia.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 d #2975 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/ethics/ethics.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/ethics/ethics.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 v #2976 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #2977 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/hunting/hunting.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/hunting/hunting.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 v #2978 > '33241bf308571f30a46d2ef4af47882bd6d76c2c'
00:00:05 v #2979 > a1a5b3322c5350a719f7986e9d4ae98c35eee5b4
00:00:05 v #2980 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #2981 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/Dakota_Blare.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/Dakota_Blare.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 v #2982 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 i #2983 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/numbers/numbers.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\numbers.hangul.md.epub }
00:00:05 d #2984 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\numbers.hangul.md.epub; new_path = c:/home/git/vault/dist/data/numbers/numbers.hangul.md.epub; result = 6316 }
00:00:05 i #2985 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/numbers/numbers.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\numbers.hangul.md.pdf }
00:00:05 d #2986 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\numbers.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/numbers/numbers.hangul.md.pdf; result = 8509 }
00:00:05 i #2987 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/numbers/numbers.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\numbers.hangul.md.html }
00:00:05 d #2988 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\numbers.hangul.md.html; new_path = c:/home/git/vault/dist/data/numbers/numbers.hangul.md.html; result = 13256 }
00:00:05 i #2989 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/numbers/numbers.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\numbers.md.epub }
00:00:05 d #2990 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\numbers.md.epub; new_path = c:/home/git/vault/dist/data/numbers/numbers.md.epub; result = 6368 }
00:00:05 i #2991 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/numbers/numbers.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\numbers.md.pdf }
00:00:05 d #2992 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\numbers.md.pdf; new_path = c:/home/git/vault/dist/data/numbers/numbers.md.pdf; result = 20721 }
00:00:05 i #2993 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/numbers/numbers.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\numbers.md.html }
00:00:05 d #2994 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\numbers.md.html; new_path = c:/home/git/vault/dist/data/numbers/numbers.md.html; result = 19554 }
00:00:05 i #2995 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/numbers/numbers.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\numbers.hangul.md }
00:00:05 d #2996 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\numbers.hangul.md; new_path = c:/home/git/vault/dist/data/numbers/numbers.hangul.md; result = 2058 }
00:00:05 d #2997 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/personality/personality.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/personality/personality.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 v #2998 > '17a6d9d0c45d109ff619ec77bcf456f06ba31cc4'
00:00:05 v #2999 > f8e5972d7a116efc09e6f689052a2c00ef110f18
00:00:05 v #3000 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 v #3001 > '1a2393e1a9c94d35872b7e923027423963dbef31'
00:00:05 d #3002 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/compilers/compilers.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/compilers/compilers.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 v #3003 > 'eb05ce2c347cba8aa7491d11c958465cd9af4a87'
00:00:05 v #3004 > c7a57567fdf7ab3fb89bd268224cfdf5f8dadc9f
00:00:05 v #3005 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 i #3006 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AubriToffee.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AubriToffee.html.hangul.md.epub }
00:00:05 d #3007 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AubriToffee.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/AubriToffee.html.hangul.md.epub; result = 5566 }
00:00:05 i #3008 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AubriToffee.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AubriToffee.html.hangul.md.pdf }
00:00:05 d #3009 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AubriToffee.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/AubriToffee.html.hangul.md.pdf; result = 4625 }
00:00:05 i #3010 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AubriToffee.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AubriToffee.html.hangul.md.html }
00:00:05 d #3011 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AubriToffee.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/AubriToffee.html.hangul.md.html; result = 11683 }
00:00:05 i #3012 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AubriToffee.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AubriToffee.html.md.epub }
00:00:05 v #3013 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 v #3014 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #3015 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AubriToffee.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/AubriToffee.html.md.epub; result = 5494 }
00:00:05 d #3016 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/ethics/ethics.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/ethics/ethics.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 v #3017 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 i #3018 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AubriToffee.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AubriToffee.html.md.pdf }
00:00:05 d #3019 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/Olivia.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/Olivia.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 d #3020 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AubriToffee.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/AubriToffee.html.md.pdf; result = 4950 }
00:00:05 i #3021 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hunting/hunting.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hunting.hangul.md.epub }
00:00:05 i #3022 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AubriToffee.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AubriToffee.html.md.html }
00:00:05 d #3023 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AubriToffee.html.md.html; new_path = c:/home/git/vault/dist/data/chat/AubriToffee.html.md.html; result = 11642 }
00:00:05 d #3023 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hunting.hangul.md.epub; new_path = c:/home/git/vault/dist/data/hunting/hunting.hangul.md.epub; result = 21652 }
00:00:05 i #3025 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hunting/hunting.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hunting.hangul.md.pdf }
00:00:05 i #3026 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AubriToffee.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AubriToffee.html.hangul.md }
00:00:05 d #3027 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AubriToffee.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/AubriToffee.html.hangul.md; result = 152 }
00:00:05 d #3028 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hunting.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/hunting/hunting.hangul.md.pdf; result = 26383 }
00:00:05 i #3029 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hunting/hunting.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hunting.hangul.md.html }
00:00:05 d #3030 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/AwesomeEly.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/AwesomeEly.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 d #3031 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hunting.hangul.md.html; new_path = c:/home/git/vault/dist/data/hunting/hunting.hangul.md.html; result = 86605 }
00:00:05 i #3032 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hunting/hunting.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hunting.md.epub }
00:00:05 d #3033 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hunting.md.epub; new_path = c:/home/git/vault/dist/data/hunting/hunting.md.epub; result = 19641 }
00:00:05 i #3034 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hunting/hunting.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hunting.md.pdf }
00:00:05 d #3035 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hunting.md.pdf; new_path = c:/home/git/vault/dist/data/hunting/hunting.md.pdf; result = 67970 }
00:00:05 i #3036 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hunting/hunting.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hunting.md.html }
00:00:05 d #3037 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hunting.md.html; new_path = c:/home/git/vault/dist/data/hunting/hunting.md.html; result = 63988 }
00:00:05 i #3038 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/hunting/hunting.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hunting.hangul.md }
00:00:05 d #3039 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hunting.hangul.md; new_path = c:/home/git/vault/dist/data/hunting/hunting.hangul.md; result = 62482 }
00:00:05 d #3040 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/identity/identity.fc1943s.7z.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/identity/identity.fc1943s.7z.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 v #3041 > 33241bf308571f30a46d2ef4af47882bd6d76c2c
00:00:05 v #3042 > 'a1d96e6335c70898790582735eb8154509a5c803'
00:00:05 v #3043 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 v #3044 > 17a6d9d0c45d109ff619ec77bcf456f06ba31cc4
00:00:05 v #3045 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 d #3046 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/personality/personality.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/personality/personality.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 i #3047 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Dakota_Blare.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Dakota_Blare.html.hangul.md.epub }
00:00:05 d #3048 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Dakota_Blare.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/Dakota_Blare.html.hangul.md.epub; result = 5570 }
00:00:05 i #3049 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Dakota_Blare.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Dakota_Blare.html.hangul.md.pdf }
00:00:05 d #3050 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Dakota_Blare.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Dakota_Blare.html.hangul.md.pdf; result = 4677 }
00:00:05 i #3051 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Dakota_Blare.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Dakota_Blare.html.hangul.md.html }
00:00:05 d #3052 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Dakota_Blare.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/Dakota_Blare.html.hangul.md.html; result = 11681 }
00:00:05 i #3053 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Dakota_Blare.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Dakota_Blare.html.md.epub }
00:00:05 d #3054 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Dakota_Blare.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/Dakota_Blare.html.md.epub; result = 5497 }
00:00:05 i #3055 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Dakota_Blare.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Dakota_Blare.html.md.pdf }
00:00:05 d #3056 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Dakota_Blare.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Dakota_Blare.html.md.pdf; result = 5038 }
00:00:05 i #3057 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Dakota_Blare.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Dakota_Blare.html.md.html }
00:00:05 d #3058 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Dakota_Blare.html.md.html; new_path = c:/home/git/vault/dist/data/chat/Dakota_Blare.html.md.html; result = 11643 }
00:00:05 i #3059 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Dakota_Blare.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Dakota_Blare.html.hangul.md }
00:00:05 d #3060 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Dakota_Blare.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/Dakota_Blare.html.hangul.md; result = 150 }
00:00:05 v #3061 > eb05ce2c347cba8aa7491d11c958465cd9af4a87
00:00:05 d #3062 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/diney_.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/diney_.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:05 v #3063 > 1a2393e1a9c94d35872b7e923027423963dbef31
00:00:05 v #3064 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 i #3065 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/compilers/compilers.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\compilers.hangul.md.epub }
00:00:05 v #3066 > '11c740033ce73b721e730b70049b51f65f1f3163'
00:00:05 d #3067 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\compilers.hangul.md.epub; new_path = c:/home/git/vault/dist/data/compilers/compilers.hangul.md.epub; result = 7609 }
00:00:05 i #3068 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/compilers/compilers.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\compilers.hangul.md.pdf }
00:00:05 d #3069 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\compilers.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/compilers/compilers.hangul.md.pdf; result = 7443 }
00:00:05 i #3070 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/compilers/compilers.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\compilers.hangul.md.html }
00:00:05 d #3071 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\compilers.hangul.md.html; new_path = c:/home/git/vault/dist/data/compilers/compilers.hangul.md.html; result = 22975 }
00:00:05 v #3072 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 i #3073 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/compilers/compilers.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\compilers.md.epub }
00:00:05 i #3074 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ethics/ethics.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ethics.mp3.hangul.md.epub }
00:00:05 v #3075 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 v #3075 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:05 d #3077 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/AwesomeEly.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/AwesomeEly.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:05 v #3078 > '90d1370c18ccc4155bfa0452150965014b0f58eb'
00:00:05 i #3079 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Olivia.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Olivia.html.hangul.md.epub }
00:00:05 v #3079 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:05 d #3081 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ethics.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/ethics/ethics.mp3.hangul.md.epub; result = 5656 }
00:00:05 d #3082 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\compilers.md.epub; new_path = c:/home/git/vault/dist/data/compilers/compilers.md.epub; result = 7148 }
00:00:05 i #3083 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/compilers/compilers.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\compilers.md.pdf }
00:00:05 i #3084 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ethics/ethics.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ethics.mp3.hangul.md.pdf }
00:00:06 d #3085 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/identity/identity.fc1943s.7z.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/identity/identity.fc1943s.7z.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3086 > a1d96e6335c70898790582735eb8154509a5c803
00:00:06 d #3087 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ethics.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/ethics/ethics.mp3.hangul.md.pdf; result = 3993 }
00:00:06 d #3088 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Olivia.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/Olivia.html.hangul.md.epub; result = 5563 }
00:00:06 i #3089 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Olivia.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Olivia.html.hangul.md.pdf }
00:00:06 d #3090 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Olivia.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Olivia.html.hangul.md.pdf; result = 4627 }
00:00:06 i #3091 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Olivia.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Olivia.html.hangul.md.html }
00:00:06 i #3092 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ethics/ethics.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ethics.mp3.hangul.md.html }
00:00:06 d #3093 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ethics.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/ethics/ethics.mp3.hangul.md.html; result = 10305 }
00:00:06 i #3094 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ethics/ethics.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ethics.mp3.md.epub }
00:00:06 d #3094 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Olivia.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/Olivia.html.hangul.md.html; result = 11674 }
00:00:06 i #3096 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Olivia.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Olivia.html.md.epub }
00:00:06 d #3097 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\compilers.md.pdf; new_path = c:/home/git/vault/dist/data/compilers/compilers.md.pdf; result = 18611 }
00:00:06 d #3098 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ethics.mp3.md.epub; new_path = c:/home/git/vault/dist/data/ethics/ethics.mp3.md.epub; result = 5533 }
00:00:06 d #3099 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Olivia.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/Olivia.html.md.epub; result = 5490 }
00:00:06 i #3100 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ethics/ethics.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ethics.mp3.md.pdf }
00:00:06 i #3101 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Olivia.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Olivia.html.md.pdf }
00:00:06 i #3101 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/compilers/compilers.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\compilers.md.html }
00:00:06 d #3103 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ethics.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/ethics/ethics.mp3.md.pdf; result = 7722 }
00:00:06 d #3104 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Olivia.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Olivia.html.md.pdf; result = 4814 }
00:00:06 i #3105 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ethics/ethics.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ethics.mp3.md.html }
00:00:06 i #3106 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Olivia.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Olivia.html.md.html }
00:00:06 d #3107 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\compilers.md.html; new_path = c:/home/git/vault/dist/data/compilers/compilers.md.html; result = 20050 }
00:00:06 d #3108 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ethics.mp3.md.html; new_path = c:/home/git/vault/dist/data/ethics/ethics.mp3.md.html; result = 10143 }
00:00:06 d #3109 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Olivia.html.md.html; new_path = c:/home/git/vault/dist/data/chat/Olivia.html.md.html; result = 11637 }
00:00:06 i #3110 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/ethics/ethics.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\ethics.mp3.hangul.md }
00:00:06 i #3111 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Olivia.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Olivia.html.hangul.md }
00:00:06 d #3112 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\ethics.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/ethics/ethics.mp3.hangul.md; result = 380 }
00:00:06 i #3113 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/compilers/compilers.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\compilers.hangul.md }
00:00:06 d #3114 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Olivia.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/Olivia.html.hangul.md; result = 143 }
00:00:06 d #3115 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/exercism/exercism.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/exercism/exercism.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 d #3116 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/Red_Flower203.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/Red_Flower203.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 d #3117 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\compilers.hangul.md; new_path = c:/home/git/vault/dist/data/compilers/compilers.hangul.md; result = 7807 }
00:00:06 d #3118 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/compilers/compilers.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/compilers/compilers.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 v #3119 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 i #3120 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.html.hangul.md.epub }
00:00:06 d #3121 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/personality/personality.html.hangul.md.epub; result = 5619 }
00:00:06 i #3122 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.html.hangul.md.pdf }
00:00:06 d #3123 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/personality/personality.html.hangul.md.pdf; result = 4322 }
00:00:06 i #3124 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.html.hangul.md.html }
00:00:06 d #3125 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/personality/personality.html.hangul.md.html; result = 10812 }
00:00:06 i #3126 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.html.md.epub }
00:00:06 d #3127 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.html.md.epub; new_path = c:/home/git/vault/dist/data/personality/personality.html.md.epub; result = 5513 }
00:00:06 i #3128 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.html.md.pdf }
00:00:06 v #3129 > '686cf1b026ac94c307ea6730e1b68c4579c8f568'
00:00:06 d #3130 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.html.md.pdf; new_path = c:/home/git/vault/dist/data/personality/personality.html.md.pdf; result = 6656 }
00:00:06 i #3131 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.html.md.html }
00:00:06 d #3132 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.html.md.html; new_path = c:/home/git/vault/dist/data/personality/personality.html.md.html; result = 10655 }
00:00:06 i #3133 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.html.hangul.md }
00:00:06 d #3134 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.html.hangul.md; new_path = c:/home/git/vault/dist/data/personality/personality.html.hangul.md; result = 578 }
00:00:06 d #3135 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/personality/personality.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/personality/personality.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 v #3136 > 11c740033ce73b721e730b70049b51f65f1f3163
00:00:06 v #3137 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3138 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/diney_.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/diney_.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3139 > 90d1370c18ccc4155bfa0452150965014b0f58eb
00:00:06 v #3140 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 i #3141 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AwesomeEly.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AwesomeEly.html.hangul.md.epub }
00:00:06 d #3142 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AwesomeEly.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/AwesomeEly.html.hangul.md.epub; result = 5561 }
00:00:06 i #3143 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AwesomeEly.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AwesomeEly.html.hangul.md.pdf }
00:00:06 d #3144 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AwesomeEly.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/AwesomeEly.html.hangul.md.pdf; result = 4625 }
00:00:06 i #3145 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AwesomeEly.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AwesomeEly.html.hangul.md.html }
00:00:06 d #3146 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AwesomeEly.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/AwesomeEly.html.hangul.md.html; result = 11677 }
00:00:06 i #3147 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AwesomeEly.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AwesomeEly.html.md.epub }
00:00:06 d #3148 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AwesomeEly.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/AwesomeEly.html.md.epub; result = 5494 }
00:00:06 i #3149 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AwesomeEly.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AwesomeEly.html.md.pdf }
00:00:06 d #3150 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AwesomeEly.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/AwesomeEly.html.md.pdf; result = 5080 }
00:00:06 i #3151 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AwesomeEly.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AwesomeEly.html.md.html }
00:00:06 d #3152 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AwesomeEly.html.md.html; new_path = c:/home/git/vault/dist/data/chat/AwesomeEly.html.md.html; result = 11641 }
00:00:06 i #3153 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/AwesomeEly.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\AwesomeEly.html.hangul.md }
00:00:06 d #3154 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\AwesomeEly.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/AwesomeEly.html.hangul.md; result = 146 }
00:00:06 d #3155 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/BirthdayLexxx.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/BirthdayLexxx.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 v #3156 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 v #3157 > '61b61ae6334ea017fee41ba877bedfd66ce5cd59'
00:00:06 v #3158 > '04ac04f2d639d9f1128e01a92c74324159d9a8b0'
00:00:06 i #3159 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.7z.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.7z.hangul.md.epub }
00:00:06 d #3160 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.7z.hangul.md.epub; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.7z.hangul.md.epub; result = 5983 }
00:00:06 i #3161 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.7z.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.7z.hangul.md.pdf }
00:00:06 d #3162 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.7z.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.7z.hangul.md.pdf; result = 8642 }
00:00:06 i #3163 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.7z.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.7z.hangul.md.html }
00:00:06 d #3164 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.7z.hangul.md.html; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.7z.hangul.md.html; result = 11673 }
00:00:06 i #3165 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.7z.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.7z.md.epub }
00:00:06 d #3166 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.7z.md.epub; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.7z.md.epub; result = 5840 }
00:00:06 i #3167 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.7z.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.7z.md.pdf }
00:00:06 d #3168 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.7z.md.pdf; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.7z.md.pdf; result = 11769 }
00:00:06 i #3169 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.7z.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.7z.md.html }
00:00:06 d #3170 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.7z.md.html; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.7z.md.html; result = 11621 }
00:00:06 i #3171 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.7z.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.7z.hangul.md }
00:00:06 v #3172 > '385359231e187441d5e052bfa7c26b3ad5aa645f'
00:00:06 v #3173 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3174 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.7z.hangul.md; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.7z.hangul.md; result = 1349 }
00:00:06 d #3175 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/exercism/exercism.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/exercism/exercism.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 d #3176 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/identity/identity.fc1943s.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/identity/identity.fc1943s.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 v #3177 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3178 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/Red_Flower203.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/Red_Flower203.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3179 > '9f027fb632360364fdede8801655256872d810e4'
00:00:06 v #3180 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3181 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/compilers/compilers.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/compilers/compilers.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3182 > 686cf1b026ac94c307ea6730e1b68c4579c8f568
00:00:06 v #3183 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3184 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/personality/personality.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/personality/personality.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3185 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 i #3186 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/diney_.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\diney_.html.hangul.md.epub }
00:00:06 d #3187 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\diney_.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/diney_.html.hangul.md.epub; result = 5563 }
00:00:06 i #3188 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/diney_.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\diney_.html.hangul.md.pdf }
00:00:06 d #3189 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\diney_.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/diney_.html.hangul.md.pdf; result = 4672 }
00:00:06 i #3190 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/diney_.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\diney_.html.hangul.md.html }
00:00:06 d #3191 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\diney_.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/diney_.html.hangul.md.html; result = 11672 }
00:00:06 i #3192 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/diney_.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\diney_.html.md.epub }
00:00:06 d #3193 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\diney_.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/diney_.html.md.epub; result = 5490 }
00:00:06 i #3194 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/diney_.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\diney_.html.md.pdf }
00:00:06 d #3195 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\diney_.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/diney_.html.md.pdf; result = 4880 }
00:00:06 i #3196 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/diney_.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\diney_.html.md.html }
00:00:06 d #3197 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\diney_.html.md.html; new_path = c:/home/git/vault/dist/data/chat/diney_.html.md.html; result = 11637 }
00:00:06 i #3198 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/diney_.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\diney_.html.hangul.md }
00:00:06 v #3199 > 'e182749a69de369b41601d59b66d66fda8c320b8'
00:00:06 d #3200 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\diney_.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/diney_.html.hangul.md; result = 141 }
00:00:06 d #3201 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/EffyTudor.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/EffyTudor.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 v #3202 > 61b61ae6334ea017fee41ba877bedfd66ce5cd59
00:00:06 v #3203 > 04ac04f2d639d9f1128e01a92c74324159d9a8b0
00:00:06 v #3204 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3205 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/BirthdayLexxx.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/BirthdayLexxx.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3206 > 'b036d7daa1eaa41f6831e80a72c6ff7fc97752dc'
00:00:06 v #3207 > 385359231e187441d5e052bfa7c26b3ad5aa645f
00:00:06 v #3208 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 v #3208 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 i #3210 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/exercism/exercism.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\exercism.html.hangul.md.epub }
00:00:06 i #3211 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Red_Flower203.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Red_Flower203.html.hangul.md.epub }
00:00:06 d #3212 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\exercism.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/exercism/exercism.html.hangul.md.epub; result = 5542 }
00:00:06 i #3213 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/exercism/exercism.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\exercism.html.hangul.md.pdf }
00:00:06 d #3214 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Red_Flower203.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/Red_Flower203.html.hangul.md.epub; result = 5573 }
00:00:06 i #3215 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Red_Flower203.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Red_Flower203.html.hangul.md.pdf }
00:00:06 v #3215 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3217 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\exercism.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/exercism/exercism.html.hangul.md.pdf; result = 3808 }
00:00:06 i #3218 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/exercism/exercism.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\exercism.html.hangul.md.html }
00:00:06 d #3219 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Red_Flower203.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Red_Flower203.html.hangul.md.pdf; result = 4975 }
00:00:06 d #3220 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\exercism.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/exercism/exercism.html.hangul.md.html; result = 10355 }
00:00:06 i #3221 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Red_Flower203.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Red_Flower203.html.hangul.md.html }
00:00:06 i #3222 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/exercism/exercism.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\exercism.html.md.epub }
00:00:06 d #3223 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Red_Flower203.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/Red_Flower203.html.hangul.md.html; result = 11684 }
00:00:06 d #3224 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\exercism.html.md.epub; new_path = c:/home/git/vault/dist/data/exercism/exercism.html.md.epub; result = 5462 }
00:00:06 i #3225 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Red_Flower203.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Red_Flower203.html.md.epub }
00:00:06 i #3226 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/exercism/exercism.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\exercism.html.md.pdf }
00:00:06 d #3227 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/identity/identity.fc1943s.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/identity/identity.fc1943s.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 d #3228 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Red_Flower203.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/Red_Flower203.html.md.epub; result = 5498 }
00:00:06 d #3229 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\exercism.html.md.pdf; new_path = c:/home/git/vault/dist/data/exercism/exercism.html.md.pdf; result = 6010 }
00:00:06 i #3230 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Red_Flower203.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Red_Flower203.html.md.pdf }
00:00:06 i #3231 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/exercism/exercism.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\exercism.html.md.html }
00:00:06 d #3232 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Red_Flower203.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Red_Flower203.html.md.pdf; result = 5495 }
00:00:06 d #3233 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\exercism.html.md.html; new_path = c:/home/git/vault/dist/data/exercism/exercism.html.md.html; result = 10262 }
00:00:06 i #3234 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Red_Flower203.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Red_Flower203.html.md.html }
00:00:06 i #3235 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/exercism/exercism.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\exercism.html.hangul.md }
00:00:06 d #3236 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Red_Flower203.html.md.html; new_path = c:/home/git/vault/dist/data/chat/Red_Flower203.html.md.html; result = 11644 }
00:00:06 d #3237 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\exercism.html.hangul.md; new_path = c:/home/git/vault/dist/data/exercism/exercism.html.hangul.md; result = 299 }
00:00:06 i #3238 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Red_Flower203.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Red_Flower203.html.hangul.md }
00:00:06 d #3239 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Red_Flower203.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/Red_Flower203.html.hangul.md; result = 153 }
00:00:06 d #3240 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/facebook/facebook.fc1943s.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/facebook/facebook.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 d #3241 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/RocknRose.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/RocknRose.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 v #3242 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 v #3243 > 9f027fb632360364fdede8801655256872d810e4
00:00:06 i #3244 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/compilers/compilers.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\compilers.pdf.hangul.md.epub }
00:00:06 d #3245 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\compilers.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/compilers/compilers.pdf.hangul.md.epub; result = 5748 }
00:00:06 i #3246 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/compilers/compilers.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\compilers.pdf.hangul.md.pdf }
00:00:06 d #3247 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\compilers.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/compilers/compilers.pdf.hangul.md.pdf; result = 5585 }
00:00:06 i #3248 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/compilers/compilers.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\compilers.pdf.hangul.md.html }
00:00:06 d #3249 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\compilers.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/compilers/compilers.pdf.hangul.md.html; result = 10468 }
00:00:06 i #3250 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/compilers/compilers.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\compilers.pdf.md.epub }
00:00:06 d #3251 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\compilers.pdf.md.epub; new_path = c:/home/git/vault/dist/data/compilers/compilers.pdf.md.epub; result = 5606 }
00:00:06 i #3252 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/compilers/compilers.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\compilers.pdf.md.pdf }
00:00:06 d #3253 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\compilers.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/compilers/compilers.pdf.md.pdf; result = 10977 }
00:00:06 i #3254 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/compilers/compilers.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\compilers.pdf.md.html }
00:00:06 d #3255 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\compilers.pdf.md.html; new_path = c:/home/git/vault/dist/data/compilers/compilers.pdf.md.html; result = 10286 }
00:00:06 i #3256 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/compilers/compilers.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\compilers.pdf.hangul.md }
00:00:06 d #3257 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\compilers.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/compilers/compilers.pdf.hangul.md; result = 476 }
00:00:06 d #3258 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/cryptography/cryptography.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/cryptography/cryptography.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 v #3259 > '695e1bd2568fc3ec226704fc887261fa878c5df7'
00:00:06 v #3260 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 v #3261 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 i #3262 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.hangul.md.epub }
00:00:06 d #3263 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/EffyTudor.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/EffyTudor.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3264 > e182749a69de369b41601d59b66d66fda8c320b8
00:00:06 d #3265 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.hangul.md.epub; new_path = c:/home/git/vault/dist/data/personality/personality.hangul.md.epub; result = 60937 }
00:00:06 i #3266 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.hangul.md.pdf }
00:00:06 d #3267 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/personality/personality.hangul.md.pdf; result = 78346 }
00:00:06 i #3268 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.hangul.md.html }
00:00:06 d #3269 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.hangul.md.html; new_path = c:/home/git/vault/dist/data/personality/personality.hangul.md.html; result = 318093 }
00:00:06 i #3270 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.md.epub }
00:00:06 d #3271 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.md.epub; new_path = c:/home/git/vault/dist/data/personality/personality.md.epub; result = 54082 }
00:00:06 i #3272 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.md.pdf }
00:00:06 d #3273 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.md.pdf; new_path = c:/home/git/vault/dist/data/personality/personality.md.pdf; result = 230231 }
00:00:06 i #3274 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.md.html }
00:00:06 d #3275 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.md.html; new_path = c:/home/git/vault/dist/data/personality/personality.md.html; result = 218431 }
00:00:06 i #3276 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.hangul.md }
00:00:06 d #3277 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.hangul.md; new_path = c:/home/git/vault/dist/data/personality/personality.hangul.md; result = 271008 }
00:00:06 d #3278 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/personality/personality.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/personality/personality.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 v #3279 > b036d7daa1eaa41f6831e80a72c6ff7fc97752dc
00:00:06 v #3280 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 v #3281 > 'd8b21b32a827ce110b72a91d73fc68c37366f984'
00:00:06 i #3282 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/BirthdayLexxx.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\BirthdayLexxx.html.hangul.md.epub }
00:00:06 d #3283 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\BirthdayLexxx.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/BirthdayLexxx.html.hangul.md.epub; result = 5569 }
00:00:06 v #3284 > 'd218e2d0579ceb35b6c9eb03d0063ac9746cda1f'
00:00:06 i #3284 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/BirthdayLexxx.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\BirthdayLexxx.html.hangul.md.pdf }
00:00:06 d #3286 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\BirthdayLexxx.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/BirthdayLexxx.html.hangul.md.pdf; result = 4625 }
00:00:06 i #3287 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/BirthdayLexxx.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\BirthdayLexxx.html.hangul.md.html }
00:00:06 d #3288 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\BirthdayLexxx.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/BirthdayLexxx.html.hangul.md.html; result = 11686 }
00:00:06 i #3289 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/BirthdayLexxx.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\BirthdayLexxx.html.md.epub }
00:00:06 d #3290 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\BirthdayLexxx.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/BirthdayLexxx.html.md.epub; result = 5497 }
00:00:06 i #3291 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/BirthdayLexxx.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\BirthdayLexxx.html.md.pdf }
00:00:06 d #3292 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\BirthdayLexxx.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/BirthdayLexxx.html.md.pdf; result = 4980 }
00:00:06 i #3293 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/BirthdayLexxx.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\BirthdayLexxx.html.md.html }
00:00:06 d #3294 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\BirthdayLexxx.html.md.html; new_path = c:/home/git/vault/dist/data/chat/BirthdayLexxx.html.md.html; result = 11644 }
00:00:06 i #3295 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/BirthdayLexxx.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\BirthdayLexxx.html.hangul.md }
00:00:06 d #3296 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\BirthdayLexxx.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/BirthdayLexxx.html.hangul.md; result = 155 }
00:00:06 v #3297 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 d #3298 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/facebook/facebook.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/facebook/facebook.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 i #3299 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.pdf.hangul.md.epub }
00:00:06 d #3300 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.pdf.hangul.md.epub; result = 6093 }
00:00:06 i #3301 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.pdf.hangul.md.pdf }
00:00:06 d #3302 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.pdf.hangul.md.pdf; result = 5663 }
00:00:06 i #3303 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.pdf.hangul.md.html }
00:00:06 d #3304 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.pdf.hangul.md.html; result = 13391 }
00:00:06 v #3305 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 i #3306 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.pdf.md.epub }
00:00:06 d #3307 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.pdf.md.epub; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.pdf.md.epub; result = 5871 }
00:00:06 i #3308 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.pdf.md.pdf }
00:00:06 d #3309 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/RocknRose.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/RocknRose.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 d #3310 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.pdf.md.pdf; result = 10914 }
00:00:06 i #3311 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.pdf.md.html }
00:00:06 v #3312 > 'cc93beedc8535df5abf8406510f5aec3aa40d343'
00:00:06 d #3313 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.pdf.md.html; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.pdf.md.html; result = 12292 }
00:00:06 i #3314 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.pdf.hangul.md }
00:00:06 d #3315 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.pdf.hangul.md; result = 2889 }
00:00:06 d #3316 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/identity/identity.fc1943s.png.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/identity/identity.fc1943s.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 v #3317 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3318 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/facebook/facebook.fc1943s.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/facebook/facebook.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3319 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3320 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/cryptography/cryptography.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/cryptography/cryptography.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3321 > 695e1bd2568fc3ec226704fc887261fa878c5df7
00:00:06 v #3322 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 i #3323 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/EffyTudor.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\EffyTudor.html.hangul.md.epub }
00:00:06 d #3324 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\EffyTudor.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/EffyTudor.html.hangul.md.epub; result = 5563 }
00:00:06 i #3325 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/EffyTudor.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\EffyTudor.html.hangul.md.pdf }
00:00:06 d #3326 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\EffyTudor.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/EffyTudor.html.hangul.md.pdf; result = 4626 }
00:00:06 i #3327 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/EffyTudor.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\EffyTudor.html.hangul.md.html }
00:00:06 d #3328 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\EffyTudor.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/EffyTudor.html.hangul.md.html; result = 11677 }
00:00:06 i #3329 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/EffyTudor.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\EffyTudor.html.md.epub }
00:00:06 d #3330 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\EffyTudor.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/EffyTudor.html.md.epub; result = 5493 }
00:00:06 i #3331 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/EffyTudor.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\EffyTudor.html.md.pdf }
00:00:06 d #3332 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\EffyTudor.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/EffyTudor.html.md.pdf; result = 4965 }
00:00:06 v #3333 > '68627cc8449ef4c0341ed29575f29640d4aa156d'
00:00:06 i #3334 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/EffyTudor.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\EffyTudor.html.md.html }
00:00:06 d #3335 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\EffyTudor.html.md.html; new_path = c:/home/git/vault/dist/data/chat/EffyTudor.html.md.html; result = 11640 }
00:00:06 i #3336 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/EffyTudor.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\EffyTudor.html.hangul.md }
00:00:06 d #3337 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\EffyTudor.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/EffyTudor.html.hangul.md; result = 146 }
00:00:06 d #3338 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/Fairy_Sweet.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/Fairy_Sweet.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 v #3339 > '3d488ff01374aae26e1f062b0400e2b62ad1712a'
00:00:06 v #3340 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 v #3341 > d8b21b32a827ce110b72a91d73fc68c37366f984
00:00:06 d #3342 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/personality/personality.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/personality/personality.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3343 > d218e2d0579ceb35b6c9eb03d0063ac9746cda1f
00:00:06 v #3344 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3345 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/facebook/facebook.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/facebook/facebook.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3346 > 'c23b3c88e5cb9e9ab6f57e5b005ddd546c262903'
00:00:06 v #3347 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 i #3348 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/RocknRose.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\RocknRose.html.hangul.md.epub }
00:00:06 d #3349 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\RocknRose.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/RocknRose.html.hangul.md.epub; result = 5564 }
00:00:06 v #3350 > cc93beedc8535df5abf8406510f5aec3aa40d343
00:00:06 i #3351 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/RocknRose.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\RocknRose.html.hangul.md.pdf }
00:00:06 d #3352 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\RocknRose.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/RocknRose.html.hangul.md.pdf; result = 4630 }
00:00:06 i #3353 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/RocknRose.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\RocknRose.html.hangul.md.html }
00:00:06 d #3354 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\RocknRose.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/RocknRose.html.hangul.md.html; result = 11674 }
00:00:06 i #3355 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/RocknRose.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\RocknRose.html.md.epub }
00:00:06 d #3356 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\RocknRose.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/RocknRose.html.md.epub; result = 5493 }
00:00:06 i #3357 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/RocknRose.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\RocknRose.html.md.pdf }
00:00:06 d #3358 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\RocknRose.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/RocknRose.html.md.pdf; result = 4985 }
00:00:06 i #3359 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/RocknRose.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\RocknRose.html.md.html }
00:00:06 d #3360 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\RocknRose.html.md.html; new_path = c:/home/git/vault/dist/data/chat/RocknRose.html.md.html; result = 11640 }
00:00:06 i #3361 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/RocknRose.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\RocknRose.html.hangul.md }
00:00:06 v #3362 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 d #3363 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\RocknRose.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/RocknRose.html.hangul.md; result = 143 }
00:00:06 i #3364 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/facebook/facebook.fc1943s.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\facebook.fc1943s.hangul.md.epub }
00:00:06 v #3365 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3366 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/chat/RorrieGomez.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/chat/RorrieGomez.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 d #3367 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\facebook.fc1943s.hangul.md.epub; new_path = c:/home/git/vault/dist/data/facebook/facebook.fc1943s.hangul.md.epub; result = 5513 }
00:00:06 i #3368 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/facebook/facebook.fc1943s.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\facebook.fc1943s.hangul.md.pdf }
00:00:06 d #3369 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/identity/identity.fc1943s.png.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/identity/identity.fc1943s.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 d #3370 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\facebook.fc1943s.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/facebook/facebook.fc1943s.hangul.md.pdf; result = 4531 }
00:00:06 i #3371 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/facebook/facebook.fc1943s.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\facebook.fc1943s.hangul.md.html }
00:00:06 d #3372 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\facebook.fc1943s.hangul.md.html; new_path = c:/home/git/vault/dist/data/facebook/facebook.fc1943s.hangul.md.html; result = 10086 }
00:00:06 i #3373 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/facebook/facebook.fc1943s.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\facebook.fc1943s.md.epub }
00:00:06 d #3374 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\facebook.fc1943s.md.epub; new_path = c:/home/git/vault/dist/data/facebook/facebook.fc1943s.md.epub; result = 5449 }
00:00:06 i #3375 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/facebook/facebook.fc1943s.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\facebook.fc1943s.md.pdf }
00:00:06 d #3376 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\facebook.fc1943s.md.pdf; new_path = c:/home/git/vault/dist/data/facebook/facebook.fc1943s.md.pdf; result = 6216 }
00:00:06 i #3377 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/facebook/facebook.fc1943s.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\facebook.fc1943s.md.html }
00:00:06 d #3378 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\facebook.fc1943s.md.html; new_path = c:/home/git/vault/dist/data/facebook/facebook.fc1943s.md.html; result = 10058 }
00:00:06 i #3379 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/facebook/facebook.fc1943s.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\facebook.fc1943s.hangul.md }
00:00:06 d #3380 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\facebook.fc1943s.hangul.md; new_path = c:/home/git/vault/dist/data/facebook/facebook.fc1943s.hangul.md; result = 106 }
00:00:06 d #3381 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/fiction/comics.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/fiction/comics.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 v #3382 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 i #3383 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cryptography/cryptography.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cryptography.hangul.md.epub }
00:00:06 d #3384 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cryptography.hangul.md.epub; new_path = c:/home/git/vault/dist/data/cryptography/cryptography.hangul.md.epub; result = 8692 }
00:00:06 i #3385 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cryptography/cryptography.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cryptography.hangul.md.pdf }
00:00:06 d #3386 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cryptography.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/cryptography/cryptography.hangul.md.pdf; result = 15021 }
00:00:06 i #3387 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cryptography/cryptography.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cryptography.hangul.md.html }
00:00:06 d #3388 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cryptography.hangul.md.html; new_path = c:/home/git/vault/dist/data/cryptography/cryptography.hangul.md.html; result = 39050 }
00:00:06 i #3389 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cryptography/cryptography.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cryptography.md.epub }
00:00:06 d #3390 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cryptography.md.epub; new_path = c:/home/git/vault/dist/data/cryptography/cryptography.md.epub; result = 8599 }
00:00:06 i #3391 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cryptography/cryptography.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cryptography.md.pdf }
00:00:06 d #3392 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cryptography.md.pdf; new_path = c:/home/git/vault/dist/data/cryptography/cryptography.md.pdf; result = 28903 }
00:00:06 i #3393 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cryptography/cryptography.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cryptography.md.html }
00:00:06 d #3394 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cryptography.md.html; new_path = c:/home/git/vault/dist/data/cryptography/cryptography.md.html; result = 47170 }
00:00:06 i #3395 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/cryptography/cryptography.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\cryptography.hangul.md }
00:00:06 d #3396 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\cryptography.hangul.md; new_path = c:/home/git/vault/dist/data/cryptography/cryptography.hangul.md; result = 15583 }
00:00:06 d #3397 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/dance/dance.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/dance/dance.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 v #3398 > '19608cf3c57a331f782ac1644d62a24aa6647ed9'
00:00:06 v #3399 > 68627cc8449ef4c0341ed29575f29640d4aa156d
00:00:06 v #3400 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3401 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/Fairy_Sweet.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/Fairy_Sweet.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3402 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 i #3403 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.pdf.hangul.md.epub }
00:00:06 d #3404 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/personality/personality.pdf.hangul.md.epub; result = 5909 }
00:00:06 i #3405 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.pdf.hangul.md.pdf }
00:00:06 d #3406 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/personality/personality.pdf.hangul.md.pdf; result = 5733 }
00:00:06 i #3407 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.pdf.hangul.md.html }
00:00:06 d #3408 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/personality/personality.pdf.hangul.md.html; result = 11060 }
00:00:06 i #3409 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.pdf.md.epub }
00:00:06 v #3410 > 3d488ff01374aae26e1f062b0400e2b62ad1712a
00:00:06 d #3411 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.pdf.md.epub; new_path = c:/home/git/vault/dist/data/personality/personality.pdf.md.epub; result = 5712 }
00:00:06 i #3412 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.pdf.md.pdf }
00:00:06 d #3413 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/personality/personality.pdf.md.pdf; result = 12232 }
00:00:06 i #3414 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.pdf.md.html }
00:00:06 d #3415 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.pdf.md.html; new_path = c:/home/git/vault/dist/data/personality/personality.pdf.md.html; result = 10681 }
00:00:06 i #3416 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.pdf.hangul.md }
00:00:06 d #3417 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/personality/personality.pdf.hangul.md; result = 984 }
00:00:06 d #3418 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/personality/personality.png.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/personality/personality.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 v #3419 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 v #3420 > c23b3c88e5cb9e9ab6f57e5b005ddd546c262903
00:00:06 i #3421 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/facebook/facebook.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\facebook.html.hangul.md.epub }
00:00:06 v #3422 > '1e05ad239e45446563aad233d9f0cba964a7fa66'
00:00:06 d #3423 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\facebook.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/facebook/facebook.html.hangul.md.epub; result = 5531 }
00:00:06 i #3424 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/facebook/facebook.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\facebook.html.hangul.md.pdf }
00:00:06 d #3425 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\facebook.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/facebook/facebook.html.hangul.md.pdf; result = 3806 }
00:00:06 i #3426 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/facebook/facebook.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\facebook.html.hangul.md.html }
00:00:06 d #3427 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\facebook.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/facebook/facebook.html.hangul.md.html; result = 10297 }
00:00:06 i #3428 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/facebook/facebook.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\facebook.html.md.epub }
00:00:06 d #3429 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\facebook.html.md.epub; new_path = c:/home/git/vault/dist/data/facebook/facebook.html.md.epub; result = 5457 }
00:00:06 i #3430 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/facebook/facebook.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\facebook.html.md.pdf }
00:00:06 d #3431 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\facebook.html.md.pdf; new_path = c:/home/git/vault/dist/data/facebook/facebook.html.md.pdf; result = 6082 }
00:00:06 i #3432 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/facebook/facebook.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\facebook.html.md.html }
00:00:06 d #3433 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\facebook.html.md.html; new_path = c:/home/git/vault/dist/data/facebook/facebook.html.md.html; result = 10237 }
00:00:06 i #3434 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/facebook/facebook.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\facebook.html.hangul.md }
00:00:06 d #3435 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\facebook.html.hangul.md; new_path = c:/home/git/vault/dist/data/facebook/facebook.html.hangul.md; result = 241 }
00:00:06 v #3436 > '5bd8f037f38c36f4f81dbf9c7ba66e9a0d8594e8'
00:00:06 v #3437 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 d #3438 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/fashion/fashion.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/fashion/fashion.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 i #3439 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.png.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.png.hangul.md.epub }
00:00:06 d #3440 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.png.hangul.md.epub; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.png.hangul.md.epub; result = 6961 }
00:00:06 i #3441 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.png.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.png.hangul.md.pdf }
00:00:06 d #3442 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.png.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.png.hangul.md.pdf; result = 2202 }
00:00:06 i #3443 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.png.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.png.hangul.md.html }
00:00:06 d #3444 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.png.hangul.md.html; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.png.hangul.md.html; result = 21635 }
00:00:06 i #3445 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.png.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.png.md.epub }
00:00:06 d #3446 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.png.md.epub; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.png.md.epub; result = 6642 }
00:00:06 i #3447 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.png.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.png.md.pdf }
00:00:06 d #3448 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.png.md.pdf; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.png.md.pdf; result = 2203 }
00:00:06 i #3449 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.png.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.png.md.html }
00:00:06 v #3450 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3451 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.png.md.html; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.png.md.html; result = 17455 }
00:00:06 i #3452 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.png.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.png.hangul.md }
00:00:06 d #3453 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\identity.fc1943s.png.hangul.md; new_path = c:/home/git/vault/dist/data/identity/identity.fc1943s.png.hangul.md; result = 10469 }
00:00:06 d #3454 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/chat/RorrieGomez.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/chat/RorrieGomez.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3455 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3456 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/kakao/kakao.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/kakao/kakao.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 d #3457 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/fiction/comics.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/fiction/comics.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3458 > '59510e8d151bf1ed16e2f80089c7df50221b5565'
00:00:06 v #3459 > 19608cf3c57a331f782ac1644d62a24aa6647ed9
00:00:06 v #3460 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3461 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/dance/dance.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/dance/dance.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3462 > '4fcc14c389efe6ff802ca7b9c339f651219e2bcb'
00:00:06 v #3463 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 i #3464 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Fairy_Sweet.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Fairy_Sweet.html.hangul.md.epub }
00:00:06 d #3465 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Fairy_Sweet.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/Fairy_Sweet.html.hangul.md.epub; result = 5564 }
00:00:06 i #3466 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Fairy_Sweet.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Fairy_Sweet.html.hangul.md.pdf }
00:00:06 d #3467 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Fairy_Sweet.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Fairy_Sweet.html.hangul.md.pdf; result = 4674 }
00:00:06 i #3468 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Fairy_Sweet.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Fairy_Sweet.html.hangul.md.html }
00:00:06 v #3469 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3470 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Fairy_Sweet.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/Fairy_Sweet.html.hangul.md.html; result = 11681 }
00:00:06 i #3471 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Fairy_Sweet.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Fairy_Sweet.html.md.epub }
00:00:06 d #3472 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Fairy_Sweet.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/Fairy_Sweet.html.md.epub; result = 5495 }
00:00:06 d #3473 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/personality/personality.png.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/personality/personality.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 i #3474 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Fairy_Sweet.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Fairy_Sweet.html.md.pdf }
00:00:06 d #3475 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Fairy_Sweet.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/Fairy_Sweet.html.md.pdf; result = 4994 }
00:00:06 i #3476 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Fairy_Sweet.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Fairy_Sweet.html.md.html }
00:00:06 d #3477 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Fairy_Sweet.html.md.html; new_path = c:/home/git/vault/dist/data/chat/Fairy_Sweet.html.md.html; result = 11642 }
00:00:06 i #3478 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/Fairy_Sweet.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\Fairy_Sweet.html.hangul.md }
00:00:06 d #3479 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\Fairy_Sweet.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/Fairy_Sweet.html.hangul.md; result = 150 }
00:00:06 d #3480 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/politics/politics.png.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/politics/politics.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 v #3481 > '431296e1ef3d698ddfa8eb4e42afadb8b9705626'
00:00:06 v #3482 > 5bd8f037f38c36f4f81dbf9c7ba66e9a0d8594e8
00:00:06 v #3483 > '7e3cfddfb6ec92f470b429403cd5e5a9b1ec7315'
00:00:06 v #3484 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 v #3485 > 1e05ad239e45446563aad233d9f0cba964a7fa66
00:00:06 d #3486 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/fashion/fashion.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/fashion/fashion.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3487 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 v #3488 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 i #3489 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/comics.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\comics.hangul.md.epub }
00:00:06 d #3490 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/kakao/kakao.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/kakao/kakao.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3491 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 d #3492 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\comics.hangul.md.epub; new_path = c:/home/git/vault/dist/data/fiction/comics.hangul.md.epub; result = 18256 }
00:00:06 i #3493 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/comics.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\comics.hangul.md.pdf }
00:00:06 d #3494 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\comics.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/fiction/comics.hangul.md.pdf; result = 21904 }
00:00:06 i #3495 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/comics.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\comics.hangul.md.html }
00:00:06 d #3496 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\comics.hangul.md.html; new_path = c:/home/git/vault/dist/data/fiction/comics.hangul.md.html; result = 65859 }
00:00:06 i #3497 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/comics.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\comics.md.epub }
00:00:06 i #3498 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/RorrieGomez.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\RorrieGomez.html.hangul.md.epub }
00:00:06 d #3499 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\RorrieGomez.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/chat/RorrieGomez.html.hangul.md.epub; result = 5568 }
00:00:06 d #3500 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\comics.md.epub; new_path = c:/home/git/vault/dist/data/fiction/comics.md.epub; result = 16684 }
00:00:06 i #3501 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/RorrieGomez.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\RorrieGomez.html.hangul.md.pdf }
00:00:06 i #3502 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/comics.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\comics.md.pdf }
00:00:06 d #3503 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\RorrieGomez.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/chat/RorrieGomez.html.hangul.md.pdf; result = 4624 }
00:00:06 i #3504 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/RorrieGomez.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\RorrieGomez.html.hangul.md.html }
00:00:06 d #3505 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\comics.md.pdf; new_path = c:/home/git/vault/dist/data/fiction/comics.md.pdf; result = 56705 }
00:00:06 i #3506 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/comics.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\comics.md.html }
00:00:06 d #3507 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\RorrieGomez.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/chat/RorrieGomez.html.hangul.md.html; result = 11680 }
00:00:06 i #3508 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/RorrieGomez.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\RorrieGomez.html.md.epub }
00:00:06 d #3509 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\comics.md.html; new_path = c:/home/git/vault/dist/data/fiction/comics.md.html; result = 49909 }
00:00:06 i #3510 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/comics.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\comics.hangul.md }
00:00:06 d #3511 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\RorrieGomez.html.md.epub; new_path = c:/home/git/vault/dist/data/chat/RorrieGomez.html.md.epub; result = 5495 }
00:00:06 i #3512 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/RorrieGomez.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\RorrieGomez.html.md.pdf }
00:00:06 d #3513 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\comics.hangul.md; new_path = c:/home/git/vault/dist/data/fiction/comics.hangul.md; result = 45838 }
00:00:06 d #3514 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\RorrieGomez.html.md.pdf; new_path = c:/home/git/vault/dist/data/chat/RorrieGomez.html.md.pdf; result = 5063 }
00:00:06 i #3515 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/RorrieGomez.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\RorrieGomez.html.md.html }
00:00:06 d #3516 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\RorrieGomez.html.md.html; new_path = c:/home/git/vault/dist/data/chat/RorrieGomez.html.md.html; result = 11642 }
00:00:06 i #3517 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/chat/RorrieGomez.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\RorrieGomez.html.hangul.md }
00:00:06 d #3518 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\RorrieGomez.html.hangul.md; new_path = c:/home/git/vault/dist/data/chat/RorrieGomez.html.hangul.md; result = 149 }
00:00:06 d #3519 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/fiction/fiction.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/fiction/fiction.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 d #3520 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/fiction/fiction.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/fiction/fiction.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 v #3521 > 59510e8d151bf1ed16e2f80089c7df50221b5565
00:00:06 v #3522 > 4fcc14c389efe6ff802ca7b9c339f651219e2bcb
00:00:06 v #3523 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 i #3524 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dance/dance.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dance.hangul.md.epub }
00:00:06 d #3525 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dance.hangul.md.epub; new_path = c:/home/git/vault/dist/data/dance/dance.hangul.md.epub; result = 15451 }
00:00:06 i #3526 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dance/dance.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dance.hangul.md.pdf }
00:00:06 d #3527 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dance.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/dance/dance.hangul.md.pdf; result = 15237 }
00:00:06 i #3528 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dance/dance.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dance.hangul.md.html }
00:00:06 v #3529 > '8fabe889f569ba3807ef0839f2b579234fb81f91'
00:00:06 d #3530 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dance.hangul.md.html; new_path = c:/home/git/vault/dist/data/dance/dance.hangul.md.html; result = 57491 }
00:00:06 i #3531 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dance/dance.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dance.md.epub }
00:00:06 d #3532 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dance.md.epub; new_path = c:/home/git/vault/dist/data/dance/dance.md.epub; result = 14054 }
00:00:06 i #3533 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dance/dance.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dance.md.pdf }
00:00:06 d #3534 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dance.md.pdf; new_path = c:/home/git/vault/dist/data/dance/dance.md.pdf; result = 43868 }
00:00:06 i #3535 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dance/dance.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dance.md.html }
00:00:06 d #3536 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dance.md.html; new_path = c:/home/git/vault/dist/data/dance/dance.md.html; result = 43482 }
00:00:06 i #3537 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/dance/dance.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\dance.hangul.md }
00:00:06 d #3538 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\dance.hangul.md; new_path = c:/home/git/vault/dist/data/dance/dance.hangul.md; result = 40035 }
00:00:06 v #3539 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 d #3540 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/reddit/reddit.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/reddit/reddit.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 i #3541 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.png.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.png.hangul.md.epub }
00:00:06 d #3542 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.png.hangul.md.epub; new_path = c:/home/git/vault/dist/data/personality/personality.png.hangul.md.epub; result = 7118 }
00:00:06 i #3543 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.png.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.png.hangul.md.pdf }
00:00:06 d #3544 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.png.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/personality/personality.png.hangul.md.pdf; result = 2202 }
00:00:06 i #3545 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.png.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.png.hangul.md.html }
00:00:06 d #3546 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.png.hangul.md.html; new_path = c:/home/git/vault/dist/data/personality/personality.png.hangul.md.html; result = 15904 }
00:00:06 v #3546 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 i #3548 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.png.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.png.md.epub }
00:00:06 d #3549 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.png.md.epub; new_path = c:/home/git/vault/dist/data/personality/personality.png.md.epub; result = 6558 }
00:00:06 i #3550 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.png.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.png.md.pdf }
00:00:06 d #3551 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.png.md.pdf; new_path = c:/home/git/vault/dist/data/personality/personality.png.md.pdf; result = 2204 }
00:00:06 i #3552 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.png.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.png.md.html }
00:00:06 d #3553 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/politics/politics.png.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/politics/politics.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 d #3554 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.png.md.html; new_path = c:/home/git/vault/dist/data/personality/personality.png.md.html; result = 13572 }
00:00:06 i #3555 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/personality/personality.png.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\personality.png.hangul.md }
00:00:06 d #3556 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\personality.png.hangul.md; new_path = c:/home/git/vault/dist/data/personality/personality.png.hangul.md; result = 5168 }
00:00:06 d #3557 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/philosophy/philosophy.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/philosophy/philosophy.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 v #3558 > 431296e1ef3d698ddfa8eb4e42afadb8b9705626
00:00:06 v #3559 > 7e3cfddfb6ec92f470b429403cd5e5a9b1ec7315
00:00:06 v #3560 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 i #3561 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fashion/fashion.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fashion.hangul.md.epub }
00:00:06 v #3562 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:06 d #3563 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fashion.hangul.md.epub; new_path = c:/home/git/vault/dist/data/fashion/fashion.hangul.md.epub; result = 9862 }
00:00:06 i #3564 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fashion/fashion.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fashion.hangul.md.pdf }
00:00:06 d #3565 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fashion.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/fashion/fashion.hangul.md.pdf; result = 9110 }
00:00:06 i #3566 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fashion/fashion.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fashion.hangul.md.html }
00:00:06 i #3567 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/kakao/kakao.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kakao.html.hangul.md.epub }
00:00:06 d #3568 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fashion.hangul.md.html; new_path = c:/home/git/vault/dist/data/fashion/fashion.hangul.md.html; result = 31947 }
00:00:06 i #3569 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fashion/fashion.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fashion.md.epub }
00:00:06 v #3569 > '2270cacb5c0ec855eeb2765a6fad9d32f7a0b6c2'
00:00:06 v #3571 > '35863a5ce4d23b6a72ec739442c0fd940b0a5328'
00:00:06 d #3572 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fashion.md.epub; new_path = c:/home/git/vault/dist/data/fashion/fashion.md.epub; result = 9081 }
00:00:06 d #3573 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kakao.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/kakao/kakao.html.hangul.md.epub; result = 5544 }
00:00:06 i #3574 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fashion/fashion.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fashion.md.pdf }
00:00:06 i #3575 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/kakao/kakao.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kakao.html.hangul.md.pdf }
00:00:06 d #3576 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fashion.md.pdf; new_path = c:/home/git/vault/dist/data/fashion/fashion.md.pdf; result = 25410 }
00:00:06 d #3577 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kakao.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/kakao/kakao.html.hangul.md.pdf; result = 3849 }
00:00:06 i #3578 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fashion/fashion.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fashion.md.html }
00:00:06 i #3579 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/kakao/kakao.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kakao.html.hangul.md.html }
00:00:06 d #3580 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fashion.md.html; new_path = c:/home/git/vault/dist/data/fashion/fashion.md.html; result = 25677 }
00:00:06 d #3581 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kakao.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/kakao/kakao.html.hangul.md.html; result = 10331 }
00:00:06 i #3582 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fashion/fashion.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fashion.hangul.md }
00:00:06 i #3583 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/kakao/kakao.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kakao.html.md.epub }
00:00:06 d #3584 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fashion.hangul.md; new_path = c:/home/git/vault/dist/data/fashion/fashion.hangul.md; result = 16366 }
00:00:06 d #3584 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kakao.html.md.epub; new_path = c:/home/git/vault/dist/data/kakao/kakao.html.md.epub; result = 5462 }
00:00:06 i #3586 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/kakao/kakao.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kakao.html.md.pdf }
00:00:06 d #3587 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kakao.html.md.pdf; new_path = c:/home/git/vault/dist/data/kakao/kakao.html.md.pdf; result = 6189 }
00:00:06 i #3588 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/kakao/kakao.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kakao.html.md.html }
00:00:06 d #3589 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kakao.html.md.html; new_path = c:/home/git/vault/dist/data/kakao/kakao.html.md.html; result = 10254 }
00:00:06 i #3590 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/kakao/kakao.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kakao.html.hangul.md }
00:00:06 d #3591 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/fiction/acting.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/fiction/acting.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 d #3592 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kakao.html.hangul.md; new_path = c:/home/git/vault/dist/data/kakao/kakao.html.hangul.md; result = 275 }
00:00:06 d #3593 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/kakao/kakao.i574n.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/kakao/kakao.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:06 v #3594 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3595 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/fiction/fiction.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/fiction/fiction.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:06 v #3596 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:06 d #3597 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/fiction/fiction.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/fiction/fiction.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #3598 > 8fabe889f569ba3807ef0839f2b579234fb81f91
00:00:07 v #3599 > 'f47c94890517de570ba3f3c2a65cd85a7c7c5d5d'
00:00:07 v #3600 > 'b6dbd0c8e44ee86bac57277c464c2bbfd2eb9533'
00:00:07 v #3601 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 v #3602 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 i #3603 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.png.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.png.hangul.md.epub }
00:00:07 d #3604 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/reddit/reddit.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/reddit/reddit.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 d #3605 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.png.hangul.md.epub; new_path = c:/home/git/vault/dist/data/politics/politics.png.hangul.md.epub; result = 6406 }
00:00:07 i #3606 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.png.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.png.hangul.md.pdf }
00:00:07 d #3607 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.png.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/politics/politics.png.hangul.md.pdf; result = 2203 }
00:00:07 i #3608 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.png.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.png.hangul.md.html }
00:00:07 d #3609 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.png.hangul.md.html; new_path = c:/home/git/vault/dist/data/politics/politics.png.hangul.md.html; result = 12565 }
00:00:07 i #3610 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.png.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.png.md.epub }
00:00:07 d #3611 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.png.md.epub; new_path = c:/home/git/vault/dist/data/politics/politics.png.md.epub; result = 6137 }
00:00:07 i #3612 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.png.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.png.md.pdf }
00:00:07 d #3613 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.png.md.pdf; new_path = c:/home/git/vault/dist/data/politics/politics.png.md.pdf; result = 2197 }
00:00:07 i #3614 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.png.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.png.md.html }
00:00:07 d #3615 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.png.md.html; new_path = c:/home/git/vault/dist/data/politics/politics.png.md.html; result = 11697 }
00:00:07 i #3616 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.png.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.png.hangul.md }
00:00:07 d #3617 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.png.hangul.md; new_path = c:/home/git/vault/dist/data/politics/politics.png.hangul.md; result = 2418 }
00:00:07 v #3618 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #3619 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/philosophy/philosophy.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/philosophy/philosophy.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 d #3620 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/programming/polyglot.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/programming/polyglot.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 v #3621 > 'c91cdebfb596107523a7aaa85d93130ea828231b'
00:00:07 v #3622 > '4a4ea71442cf5cddadf09561d5d90f8793a3d59b'
00:00:07 v #3623 > 2270cacb5c0ec855eeb2765a6fad9d32f7a0b6c2
00:00:07 v #3624 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #3625 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/fiction/acting.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/fiction/acting.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #3626 > 35863a5ce4d23b6a72ec739442c0fd940b0a5328
00:00:07 v #3627 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 v #3628 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 i #3629 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/fiction.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fiction.mp3.hangul.md.epub }
00:00:07 d #3630 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/kakao/kakao.i574n.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/kakao/kakao.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 d #3631 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fiction.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/fiction/fiction.mp3.hangul.md.epub; result = 5665 }
00:00:07 i #3632 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/fiction.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fiction.mp3.hangul.md.pdf }
00:00:07 d #3633 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fiction.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/fiction/fiction.mp3.hangul.md.pdf; result = 4221 }
00:00:07 i #3634 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/fiction.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fiction.mp3.hangul.md.html }
00:00:07 d #3635 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fiction.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/fiction/fiction.mp3.hangul.md.html; result = 10283 }
00:00:07 i #3636 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/fiction.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fiction.mp3.md.epub }
00:00:07 d #3637 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fiction.mp3.md.epub; new_path = c:/home/git/vault/dist/data/fiction/fiction.mp3.md.epub; result = 5532 }
00:00:07 i #3638 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/fiction.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fiction.mp3.md.pdf }
00:00:07 d #3639 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fiction.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/fiction/fiction.mp3.md.pdf; result = 7694 }
00:00:07 i #3640 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/fiction.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fiction.mp3.md.html }
00:00:07 v #3641 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 d #3642 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fiction.mp3.md.html; new_path = c:/home/git/vault/dist/data/fiction/fiction.mp3.md.html; result = 10131 }
00:00:07 i #3643 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/fiction.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fiction.mp3.hangul.md }
00:00:07 d #3644 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fiction.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/fiction/fiction.mp3.hangul.md; result = 359 }
00:00:07 i #3645 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/fiction.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fiction.hangul.md.epub }
00:00:07 d #3646 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fiction.hangul.md.epub; new_path = c:/home/git/vault/dist/data/fiction/fiction.hangul.md.epub; result = 26435 }
00:00:07 i #3647 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/fiction.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fiction.hangul.md.pdf }
00:00:07 d #3648 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fiction.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/fiction/fiction.hangul.md.pdf; result = 30751 }
00:00:07 d #3649 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/fiction/series.mp4.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/fiction/series.mp4.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 i #3650 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/fiction.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fiction.hangul.md.html }
00:00:07 d #3651 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fiction.hangul.md.html; new_path = c:/home/git/vault/dist/data/fiction/fiction.hangul.md.html; result = 98107 }
00:00:07 i #3652 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/fiction.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fiction.md.epub }
00:00:07 d #3653 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fiction.md.epub; new_path = c:/home/git/vault/dist/data/fiction/fiction.md.epub; result = 23746 }
00:00:07 i #3654 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/fiction.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fiction.md.pdf }
00:00:07 d #3655 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fiction.md.pdf; new_path = c:/home/git/vault/dist/data/fiction/fiction.md.pdf; result = 87292 }
00:00:07 i #3656 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/fiction.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fiction.md.html }
00:00:07 d #3657 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fiction.md.html; new_path = c:/home/git/vault/dist/data/fiction/fiction.md.html; result = 71613 }
00:00:07 i #3658 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/fiction.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\fiction.hangul.md }
00:00:07 d #3659 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\fiction.hangul.md; new_path = c:/home/git/vault/dist/data/fiction/fiction.hangul.md; result = 75899 }
00:00:07 d #3660 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/programming/systems.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/programming/systems.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 v #3661 > f47c94890517de570ba3f3c2a65cd85a7c7c5d5d
00:00:07 v #3662 > b6dbd0c8e44ee86bac57277c464c2bbfd2eb9533
00:00:07 v #3663 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 i #3664 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/reddit/reddit.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\reddit.html.hangul.md.epub }
00:00:07 d #3665 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\reddit.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/reddit/reddit.html.hangul.md.epub; result = 5504 }
00:00:07 i #3666 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/reddit/reddit.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\reddit.html.hangul.md.pdf }
00:00:07 v #3667 > '7f1799bbda143e7281134173a6158c26693bea3b'
00:00:07 d #3668 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\reddit.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/reddit/reddit.html.hangul.md.pdf; result = 3752 }
00:00:07 i #3669 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/reddit/reddit.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\reddit.html.hangul.md.html }
00:00:07 d #3670 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\reddit.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/reddit/reddit.html.hangul.md.html; result = 10083 }
00:00:07 i #3671 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/reddit/reddit.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\reddit.html.md.epub }
00:00:07 d #3672 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\reddit.html.md.epub; new_path = c:/home/git/vault/dist/data/reddit/reddit.html.md.epub; result = 5440 }
00:00:07 i #3673 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/reddit/reddit.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\reddit.html.md.pdf }
00:00:07 d #3674 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\reddit.html.md.pdf; new_path = c:/home/git/vault/dist/data/reddit/reddit.html.md.pdf; result = 5922 }
00:00:07 i #3675 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/reddit/reddit.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\reddit.html.md.html }
00:00:07 d #3676 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\reddit.html.md.html; new_path = c:/home/git/vault/dist/data/reddit/reddit.html.md.html; result = 10055 }
00:00:07 i #3677 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/reddit/reddit.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\reddit.html.hangul.md }
00:00:07 d #3678 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\reddit.html.hangul.md; new_path = c:/home/git/vault/dist/data/reddit/reddit.html.hangul.md; result = 116 }
00:00:07 v #3679 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 d #3680 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/reddit/reddit.i574n.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/reddit/reddit.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 i #3681 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/philosophy/philosophy.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\philosophy.mp3.hangul.md.epub }
00:00:07 v #3682 > c91cdebfb596107523a7aaa85d93130ea828231b
00:00:07 d #3683 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\philosophy.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/philosophy/philosophy.mp3.hangul.md.epub; result = 5694 }
00:00:07 v #3684 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 i #3685 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/philosophy/philosophy.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\philosophy.mp3.hangul.md.pdf }
00:00:07 d #3686 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/programming/polyglot.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/programming/polyglot.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 d #3687 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\philosophy.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/philosophy/philosophy.mp3.hangul.md.pdf; result = 4010 }
00:00:07 i #3688 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/philosophy/philosophy.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\philosophy.mp3.hangul.md.html }
00:00:07 v #3689 > 4a4ea71442cf5cddadf09561d5d90f8793a3d59b
00:00:07 d #3690 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\philosophy.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/philosophy/philosophy.mp3.hangul.md.html; result = 10350 }
00:00:07 i #3691 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/philosophy/philosophy.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\philosophy.mp3.md.epub }
00:00:07 d #3692 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\philosophy.mp3.md.epub; new_path = c:/home/git/vault/dist/data/philosophy/philosophy.mp3.md.epub; result = 5560 }
00:00:07 i #3693 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/philosophy/philosophy.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\philosophy.mp3.md.pdf }
00:00:07 v #3694 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 d #3695 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\philosophy.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/philosophy/philosophy.mp3.md.pdf; result = 8020 }
00:00:07 i #3696 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/philosophy/philosophy.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\philosophy.mp3.md.html }
00:00:07 d #3697 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\philosophy.mp3.md.html; new_path = c:/home/git/vault/dist/data/philosophy/philosophy.mp3.md.html; result = 10165 }
00:00:07 i #3698 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/philosophy/philosophy.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\philosophy.mp3.hangul.md }
00:00:07 i #3699 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/acting.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\acting.hangul.md.epub }
00:00:07 d #3700 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\philosophy.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/philosophy/philosophy.mp3.hangul.md; result = 425 }
00:00:07 d #3701 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\acting.hangul.md.epub; new_path = c:/home/git/vault/dist/data/fiction/acting.hangul.md.epub; result = 12679 }
00:00:07 i #3702 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/acting.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\acting.hangul.md.pdf }
00:00:07 d #3703 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\acting.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/fiction/acting.hangul.md.pdf; result = 16893 }
00:00:07 i #3704 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/acting.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\acting.hangul.md.html }
00:00:07 d #3705 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\acting.hangul.md.html; new_path = c:/home/git/vault/dist/data/fiction/acting.hangul.md.html; result = 39218 }
00:00:07 i #3706 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/acting.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\acting.md.epub }
00:00:07 d #3707 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/physics/physics.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/physics/physics.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 d #3708 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\acting.md.epub; new_path = c:/home/git/vault/dist/data/fiction/acting.md.epub; result = 11662 }
00:00:07 i #3709 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/acting.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\acting.md.pdf }
00:00:07 d #3710 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\acting.md.pdf; new_path = c:/home/git/vault/dist/data/fiction/acting.md.pdf; result = 42707 }
00:00:07 i #3711 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/acting.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\acting.md.html }
00:00:07 d #3712 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\acting.md.html; new_path = c:/home/git/vault/dist/data/fiction/acting.md.html; result = 31463 }
00:00:07 i #3713 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/acting.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\acting.hangul.md }
00:00:07 d #3714 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\acting.hangul.md; new_path = c:/home/git/vault/dist/data/fiction/acting.hangul.md; result = 22076 }
00:00:07 v #3715 > 'ec4b8a16420ad46e91e2b296b2d5b9c762efe3f4'
00:00:07 d #3716 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/fiction/animation.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/fiction/animation.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 v #3717 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 i #3718 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/kakao/kakao.i574n.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kakao.i574n.hangul.md.epub }
00:00:07 d #3719 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kakao.i574n.hangul.md.epub; new_path = c:/home/git/vault/dist/data/kakao/kakao.i574n.hangul.md.epub; result = 5507 }
00:00:07 i #3720 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/kakao/kakao.i574n.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kakao.i574n.hangul.md.pdf }
00:00:07 d #3721 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kakao.i574n.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/kakao/kakao.i574n.hangul.md.pdf; result = 4375 }
00:00:07 i #3722 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/kakao/kakao.i574n.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kakao.i574n.hangul.md.html }
00:00:07 d #3723 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kakao.i574n.hangul.md.html; new_path = c:/home/git/vault/dist/data/kakao/kakao.i574n.hangul.md.html; result = 10079 }
00:00:07 i #3724 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/kakao/kakao.i574n.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kakao.i574n.md.epub }
00:00:07 d #3725 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kakao.i574n.md.epub; new_path = c:/home/git/vault/dist/data/kakao/kakao.i574n.md.epub; result = 5446 }
00:00:07 i #3726 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/kakao/kakao.i574n.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kakao.i574n.md.pdf }
00:00:07 d #3727 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kakao.i574n.md.pdf; new_path = c:/home/git/vault/dist/data/kakao/kakao.i574n.md.pdf; result = 5997 }
00:00:07 i #3728 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/kakao/kakao.i574n.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kakao.i574n.md.html }
00:00:07 d #3729 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kakao.i574n.md.html; new_path = c:/home/git/vault/dist/data/kakao/kakao.i574n.md.html; result = 10053 }
00:00:07 i #3730 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/kakao/kakao.i574n.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kakao.i574n.hangul.md }
00:00:07 d #3731 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kakao.i574n.hangul.md; new_path = c:/home/git/vault/dist/data/kakao/kakao.i574n.hangul.md; result = 99 }
00:00:07 v #3732 > '4c062bf0a367b772b3534f98c696ebafc33a1150'
00:00:07 d #3733 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/lastfm/lastfm.fc1943s.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/lastfm/lastfm.fc1943s.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 v #3734 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #3735 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/fiction/series.mp4.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/fiction/series.mp4.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #3736 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #3737 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/programming/systems.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/programming/systems.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #3738 > 7f1799bbda143e7281134173a6158c26693bea3b
00:00:07 v #3739 > '95f0e6ecaba1080da86604a202d4376c02c82aa3'
00:00:07 v #3740 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 i #3741 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/polyglot.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.html.hangul.md.epub }
00:00:07 v #3742 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #3743 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/programming/polyglot.html.hangul.md.epub; result = 6839 }
00:00:07 i #3744 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/polyglot.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.html.hangul.md.pdf }
00:00:07 d #3745 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/programming/polyglot.html.hangul.md.pdf; result = 9466 }
00:00:07 i #3746 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/polyglot.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.html.hangul.md.html }
00:00:07 d #3747 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/reddit/reddit.i574n.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/reddit/reddit.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 d #3748 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/programming/polyglot.html.hangul.md.html; result = 19814 }
00:00:07 i #3749 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/polyglot.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.html.md.epub }
00:00:07 d #3750 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.html.md.epub; new_path = c:/home/git/vault/dist/data/programming/polyglot.html.md.epub; result = 6444 }
00:00:07 i #3751 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/polyglot.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.html.md.pdf }
00:00:07 d #3752 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.html.md.pdf; new_path = c:/home/git/vault/dist/data/programming/polyglot.html.md.pdf; result = 13751 }
00:00:07 i #3753 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/polyglot.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.html.md.html }
00:00:07 d #3754 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.html.md.html; new_path = c:/home/git/vault/dist/data/programming/polyglot.html.md.html; result = 17575 }
00:00:07 i #3755 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/polyglot.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.html.hangul.md }
00:00:07 d #3756 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.html.hangul.md; new_path = c:/home/git/vault/dist/data/programming/polyglot.html.hangul.md; result = 7076 }
00:00:07 v #3757 > '7b6d0567ef2c3b3065aedba6666cb581431a0f5d'
00:00:07 d #3758 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/programming/polyglot.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/programming/polyglot.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 v #3759 > '72ef8b5bb3dcf0197de50ef5778d97b8cb9a03ac'
00:00:07 v #3760 > '6a22d89b7993d2991e660a9ce858268e16c906fe'
00:00:07 v #3761 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #3762 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/physics/physics.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/physics/physics.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #3763 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #3764 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/fiction/animation.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/fiction/animation.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #3765 > ec4b8a16420ad46e91e2b296b2d5b9c762efe3f4
00:00:07 v #3766 > 4c062bf0a367b772b3534f98c696ebafc33a1150
00:00:07 v #3767 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #3768 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #3769 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 i #3770 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/series.mp4.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\series.mp4.hangul.md.epub }
00:00:07 d #3771 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\series.mp4.hangul.md.epub; new_path = c:/home/git/vault/dist/data/fiction/series.mp4.hangul.md.epub; result = 6442 }
00:00:07 i #3772 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/series.mp4.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\series.mp4.hangul.md.pdf }
00:00:07 d #3773 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\series.mp4.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/fiction/series.mp4.hangul.md.pdf; result = 5647 }
00:00:07 i #3774 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/series.mp4.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\series.mp4.hangul.md.html }
00:00:07 d #3775 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\series.mp4.hangul.md.html; new_path = c:/home/git/vault/dist/data/fiction/series.mp4.hangul.md.html; result = 14310 }
00:00:07 i #3776 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/series.mp4.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\series.mp4.md.epub }
00:00:07 d #3777 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\series.mp4.md.epub; new_path = c:/home/git/vault/dist/data/fiction/series.mp4.md.epub; result = 6060 }
00:00:07 i #3778 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/series.mp4.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\series.mp4.md.pdf }
00:00:07 v #3779 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 d #3780 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\series.mp4.md.pdf; new_path = c:/home/git/vault/dist/data/fiction/series.mp4.md.pdf; result = 10667 }
00:00:07 i #3781 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/series.mp4.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\series.mp4.md.html }
00:00:07 d #3782 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\series.mp4.md.html; new_path = c:/home/git/vault/dist/data/fiction/series.mp4.md.html; result = 12478 }
00:00:07 i #3783 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/series.mp4.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\series.mp4.hangul.md }
00:00:07 d #3784 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\series.mp4.hangul.md; new_path = c:/home/git/vault/dist/data/fiction/series.mp4.hangul.md; result = 3810 }
00:00:07 i #3785 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/systems.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\systems.hangul.md.epub }
00:00:07 d #3786 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\systems.hangul.md.epub; new_path = c:/home/git/vault/dist/data/programming/systems.hangul.md.epub; result = 38046 }
00:00:07 d #3787 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/programming/programming.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/programming/programming.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 i #3788 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/systems.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\systems.hangul.md.pdf }
00:00:07 d #3789 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\systems.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/programming/systems.hangul.md.pdf; result = 76713 }
00:00:07 i #3790 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/systems.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\systems.hangul.md.html }
00:00:07 d #3791 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\systems.hangul.md.html; new_path = c:/home/git/vault/dist/data/programming/systems.hangul.md.html; result = 209377 }
00:00:07 i #3792 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/systems.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\systems.md.epub }
00:00:07 d #3793 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\systems.md.epub; new_path = c:/home/git/vault/dist/data/programming/systems.md.epub; result = 34928 }
00:00:07 i #3794 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/systems.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\systems.md.pdf }
00:00:07 d #3795 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\systems.md.pdf; new_path = c:/home/git/vault/dist/data/programming/systems.md.pdf; result = 167694 }
00:00:07 i #3796 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/systems.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\systems.md.html }
00:00:07 d #3797 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\systems.md.html; new_path = c:/home/git/vault/dist/data/programming/systems.md.html; result = 168633 }
00:00:07 i #3798 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/systems.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\systems.hangul.md }
00:00:07 d #3799 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\systems.hangul.md; new_path = c:/home/git/vault/dist/data/programming/systems.hangul.md; result = 146207 }
00:00:07 d #3800 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/protonmail/protonmail.fc1943s.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/protonmail/protonmail.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 v #3801 > 95f0e6ecaba1080da86604a202d4376c02c82aa3
00:00:07 v #3802 > 'f238a467d3cdbf24b27bc8955e11fc8be38784f5'
00:00:07 v #3803 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 i #3804 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/reddit/reddit.i574n.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\reddit.i574n.hangul.md.epub }
00:00:07 d #3805 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\reddit.i574n.hangul.md.epub; new_path = c:/home/git/vault/dist/data/reddit/reddit.i574n.hangul.md.epub; result = 5447 }
00:00:07 i #3806 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/reddit/reddit.i574n.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\reddit.i574n.hangul.md.pdf }
00:00:07 d #3807 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\reddit.i574n.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/reddit/reddit.i574n.hangul.md.pdf; result = 3543 }
00:00:07 i #3808 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/reddit/reddit.i574n.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\reddit.i574n.hangul.md.html }
00:00:07 v #3809 > 7b6d0567ef2c3b3065aedba6666cb581431a0f5d
00:00:07 v #3809 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #3811 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\reddit.i574n.hangul.md.html; new_path = c:/home/git/vault/dist/data/reddit/reddit.i574n.hangul.md.html; result = 9960 }
00:00:07 i #3812 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/reddit/reddit.i574n.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\reddit.i574n.md.epub }
00:00:07 d #3813 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\reddit.i574n.md.epub; new_path = c:/home/git/vault/dist/data/reddit/reddit.i574n.md.epub; result = 5413 }
00:00:07 i #3814 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/reddit/reddit.i574n.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\reddit.i574n.md.pdf }
00:00:07 d #3815 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/programming/polyglot.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/programming/polyglot.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 d #3816 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\reddit.i574n.md.pdf; new_path = c:/home/git/vault/dist/data/reddit/reddit.i574n.md.pdf; result = 4629 }
00:00:07 i #3817 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/reddit/reddit.i574n.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\reddit.i574n.md.html }
00:00:07 d #3818 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\reddit.i574n.md.html; new_path = c:/home/git/vault/dist/data/reddit/reddit.i574n.md.html; result = 9953 }
00:00:07 i #3819 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/reddit/reddit.i574n.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\reddit.i574n.hangul.md }
00:00:07 d #3820 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\reddit.i574n.hangul.md; new_path = c:/home/git/vault/dist/data/reddit/reddit.i574n.hangul.md; result = 48 }
00:00:07 v #3821 > 6a22d89b7993d2991e660a9ce858268e16c906fe
00:00:07 d #3822 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/relationships/relationships.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/relationships/relationships.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 v #3823 > 72ef8b5bb3dcf0197de50ef5778d97b8cb9a03ac
00:00:07 v #3824 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 i #3825 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/physics/physics.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\physics.hangul.md.epub }
00:00:07 d #3826 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\physics.hangul.md.epub; new_path = c:/home/git/vault/dist/data/physics/physics.hangul.md.epub; result = 27593 }
00:00:07 i #3827 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/physics/physics.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\physics.hangul.md.pdf }
00:00:07 d #3828 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\physics.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/physics/physics.hangul.md.pdf; result = 38926 }
00:00:07 i #3829 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/physics/physics.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\physics.hangul.md.html }
00:00:07 d #3830 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\physics.hangul.md.html; new_path = c:/home/git/vault/dist/data/physics/physics.hangul.md.html; result = 147258 }
00:00:07 i #3831 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/physics/physics.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\physics.md.epub }
00:00:07 d #3832 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\physics.md.epub; new_path = c:/home/git/vault/dist/data/physics/physics.md.epub; result = 25466 }
00:00:07 i #3833 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/physics/physics.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\physics.md.pdf }
00:00:07 d #3834 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\physics.md.pdf; new_path = c:/home/git/vault/dist/data/physics/physics.md.pdf; result = 122551 }
00:00:07 i #3835 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/physics/physics.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\physics.md.html }
00:00:07 v #3836 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 v #3837 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 d #3837 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\physics.md.html; new_path = c:/home/git/vault/dist/data/physics/physics.md.html; result = 132638 }
00:00:07 i #3839 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/physics/physics.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\physics.hangul.md }
00:00:07 d #3840 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\physics.hangul.md; new_path = c:/home/git/vault/dist/data/physics/physics.hangul.md; result = 96075 }
00:00:07 i #3841 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/animation.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\animation.hangul.md.epub }
00:00:07 i #3842 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.html.hangul.md.epub }
00:00:07 d #3843 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\animation.hangul.md.epub; new_path = c:/home/git/vault/dist/data/fiction/animation.hangul.md.epub; result = 30134 }
00:00:07 i #3844 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/animation.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\animation.hangul.md.pdf }
00:00:07 d #3845 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.html.hangul.md.epub; result = 5672 }
00:00:07 i #3846 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.html.hangul.md.pdf }
00:00:07 d #3847 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/politics/hanauittang.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/politics/hanauittang.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 d #3848 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.html.hangul.md.pdf; result = 4886 }
00:00:07 d #3849 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\animation.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/fiction/animation.hangul.md.pdf; result = 43350 }
00:00:07 i #3850 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.html.hangul.md.html }
00:00:07 i #3851 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/animation.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\animation.hangul.md.html }
00:00:07 d #3852 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.html.hangul.md.html; result = 10521 }
00:00:07 i #3853 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.html.md.epub }
00:00:07 d #3854 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\animation.hangul.md.html; new_path = c:/home/git/vault/dist/data/fiction/animation.hangul.md.html; result = 123121 }
00:00:07 i #3855 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/animation.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\animation.md.epub }
00:00:07 d #3856 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.html.md.epub; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.html.md.epub; result = 5547 }
00:00:07 i #3857 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.html.md.pdf }
00:00:07 d #3858 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\animation.md.epub; new_path = c:/home/git/vault/dist/data/fiction/animation.md.epub; result = 27052 }
00:00:07 d #3859 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.html.md.pdf; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.html.md.pdf; result = 7722 }
00:00:07 i #3860 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/animation.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\animation.md.pdf }
00:00:07 v #3861 > '1860e1828367493856af5299d21caee1ade4df20'
00:00:07 i #3861 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.html.md.html }
00:00:07 d #3863 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\animation.md.pdf; new_path = c:/home/git/vault/dist/data/fiction/animation.md.pdf; result = 106440 }
00:00:07 d #3863 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.html.md.html; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.html.md.html; result = 10351 }
00:00:07 i #3865 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.html.hangul.md }
00:00:07 i #3866 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/animation.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\animation.md.html }
00:00:07 d #3867 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.html.hangul.md; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.html.hangul.md; result = 465 }
00:00:07 d #3868 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\animation.md.html; new_path = c:/home/git/vault/dist/data/fiction/animation.md.html; result = 90081 }
00:00:07 i #3869 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/fiction/animation.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\animation.hangul.md }
00:00:07 d #3870 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\animation.hangul.md; new_path = c:/home/git/vault/dist/data/fiction/animation.hangul.md; result = 95379 }
00:00:07 d #3871 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/lastfm/lastfm.fc1943s.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/lastfm/lastfm.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 d #3872 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/programming/rust.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/programming/rust.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 v #3873 > '710dc0fd7f3fc16a762129d9543c064715dd40d2'
00:00:07 v #3874 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #3875 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/programming/programming.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/programming/programming.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #3876 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #3877 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/protonmail/protonmail.fc1943s.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/protonmail/protonmail.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #3878 > f238a467d3cdbf24b27bc8955e11fc8be38784f5
00:00:07 v #3879 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 v #3880 > '830edfbf78b902b8089b82f8ab7edf77a3f45500'
00:00:07 i #3881 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/polyglot.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.hangul.md.epub }
00:00:07 d #3882 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.hangul.md.epub; new_path = c:/home/git/vault/dist/data/programming/polyglot.hangul.md.epub; result = 6641 }
00:00:07 i #3883 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/polyglot.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.hangul.md.pdf }
00:00:07 d #3884 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/programming/polyglot.hangul.md.pdf; result = 6839 }
00:00:07 i #3885 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/polyglot.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.hangul.md.html }
00:00:07 d #3886 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.hangul.md.html; new_path = c:/home/git/vault/dist/data/programming/polyglot.hangul.md.html; result = 16762 }
00:00:07 i #3887 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/polyglot.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.md.epub }
00:00:07 d #3888 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.md.epub; new_path = c:/home/git/vault/dist/data/programming/polyglot.md.epub; result = 6626 }
00:00:07 i #3889 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/polyglot.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.md.pdf }
00:00:07 d #3890 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.md.pdf; new_path = c:/home/git/vault/dist/data/programming/polyglot.md.pdf; result = 19144 }
00:00:07 i #3891 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/polyglot.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.md.html }
00:00:07 d #3892 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.md.html; new_path = c:/home/git/vault/dist/data/programming/polyglot.md.html; result = 22886 }
00:00:07 i #3893 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/polyglot.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.hangul.md }
00:00:07 d #3894 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\polyglot.hangul.md; new_path = c:/home/git/vault/dist/data/programming/polyglot.hangul.md; result = 3844 }
00:00:07 d #3895 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/programming/powershell.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/programming/powershell.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 v #3896 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #3897 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/relationships/relationships.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/relationships/relationships.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #3898 > 'e227bef891dcfad0b8ab5951285b9902c2df57bf'
00:00:07 v #3899 > 'e07d15b06c6b6fa86ca180ceca8a26064faca8b2'
00:00:07 v #3900 > 1860e1828367493856af5299d21caee1ade4df20
00:00:07 v #3901 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 v #3902 > '543b669227c1dd7bd85791edff81e3ceabaca885'
00:00:07 d #3903 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/politics/hanauittang.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/politics/hanauittang.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #3904 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #3905 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/programming/rust.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/programming/rust.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #3906 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 v #3907 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 i #3908 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/programming.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\programming.hangul.md.epub }
00:00:07 v #3909 > 710dc0fd7f3fc16a762129d9543c064715dd40d2
00:00:07 d #3910 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 d #3911 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\programming.hangul.md.epub; new_path = c:/home/git/vault/dist/data/programming/programming.hangul.md.epub; result = 12841 }
00:00:07 i #3912 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/programming.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\programming.hangul.md.pdf }
00:00:07 d #3913 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\programming.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/programming/programming.hangul.md.pdf; result = 19041 }
00:00:07 i #3914 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/programming.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\programming.hangul.md.html }
00:00:07 d #3915 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\programming.hangul.md.html; new_path = c:/home/git/vault/dist/data/programming/programming.hangul.md.html; result = 49405 }
00:00:07 i #3916 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/programming.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\programming.md.epub }
00:00:07 d #3917 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\programming.md.epub; new_path = c:/home/git/vault/dist/data/programming/programming.md.epub; result = 11660 }
00:00:07 i #3918 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/programming.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\programming.md.pdf }
00:00:07 d #3919 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\programming.md.pdf; new_path = c:/home/git/vault/dist/data/programming/programming.md.pdf; result = 45782 }
00:00:07 i #3920 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/programming.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\programming.md.html }
00:00:07 d #3921 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\programming.md.html; new_path = c:/home/git/vault/dist/data/programming/programming.md.html; result = 39515 }
00:00:07 i #3922 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/programming.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\programming.hangul.md }
00:00:07 d #3923 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\programming.hangul.md; new_path = c:/home/git/vault/dist/data/programming/programming.hangul.md; result = 27401 }
00:00:07 d #3924 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/programming/programming.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/programming/programming.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 v #3925 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 i #3926 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.fc1943s.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.fc1943s.hangul.md.epub }
00:00:07 d #3927 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.fc1943s.hangul.md.epub; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.fc1943s.hangul.md.epub; result = 5507 }
00:00:07 i #3928 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.fc1943s.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.fc1943s.hangul.md.pdf }
00:00:07 d #3929 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.fc1943s.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.fc1943s.hangul.md.pdf; result = 4534 }
00:00:07 i #3930 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.fc1943s.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.fc1943s.hangul.md.html }
00:00:07 d #3931 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.fc1943s.hangul.md.html; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.fc1943s.hangul.md.html; result = 10083 }
00:00:07 i #3932 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.fc1943s.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.fc1943s.md.epub }
00:00:07 d #3933 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.fc1943s.md.epub; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.fc1943s.md.epub; result = 5444 }
00:00:07 i #3934 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.fc1943s.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.fc1943s.md.pdf }
00:00:07 d #3935 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.fc1943s.md.pdf; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.fc1943s.md.pdf; result = 6116 }
00:00:07 i #3936 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.fc1943s.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.fc1943s.md.html }
00:00:07 d #3937 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.fc1943s.md.html; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.fc1943s.md.html; result = 10055 }
00:00:07 i #3938 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.fc1943s.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.fc1943s.hangul.md }
00:00:07 d #3939 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.fc1943s.hangul.md; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.fc1943s.hangul.md; result = 102 }
00:00:07 d #3940 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/protonmail/protonmail.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/protonmail/protonmail.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 v #3941 > '28de73bf2bd7f24a583576578739461918ed105c'
00:00:07 v #3942 > 830edfbf78b902b8089b82f8ab7edf77a3f45500
00:00:07 v #3943 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #3944 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/programming/powershell.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/programming/powershell.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #3945 > e07d15b06c6b6fa86ca180ceca8a26064faca8b2
00:00:07 v #3946 > e227bef891dcfad0b8ab5951285b9902c2df57bf
00:00:07 v #3947 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 i #3948 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/relationships/relationships.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\relationships.hangul.md.epub }
00:00:07 d #3949 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\relationships.hangul.md.epub; new_path = c:/home/git/vault/dist/data/relationships/relationships.hangul.md.epub; result = 55585 }
00:00:07 i #3950 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/relationships/relationships.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\relationships.hangul.md.pdf }
00:00:07 v #3951 > 543b669227c1dd7bd85791edff81e3ceabaca885
00:00:07 d #3952 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\relationships.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/relationships/relationships.hangul.md.pdf; result = 72415 }
00:00:07 i #3953 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/relationships/relationships.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\relationships.hangul.md.html }
00:00:07 v #3954 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 v #3955 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 d #3956 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\relationships.hangul.md.html; new_path = c:/home/git/vault/dist/data/relationships/relationships.hangul.md.html; result = 293965 }
00:00:07 i #3957 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/hanauittang.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hanauittang.hangul.md.epub }
00:00:07 i #3958 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/relationships/relationships.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\relationships.md.epub }
00:00:07 d #3959 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hanauittang.hangul.md.epub; new_path = c:/home/git/vault/dist/data/politics/hanauittang.hangul.md.epub; result = 185879 }
00:00:07 d #3960 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\relationships.md.epub; new_path = c:/home/git/vault/dist/data/relationships/relationships.md.epub; result = 49354 }
00:00:07 i #3960 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/rust.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rust.hangul.md.epub }
00:00:07 i #3962 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/hanauittang.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hanauittang.hangul.md.pdf }
00:00:07 i #3963 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/relationships/relationships.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\relationships.md.pdf }
00:00:07 d #3964 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rust.hangul.md.epub; new_path = c:/home/git/vault/dist/data/programming/rust.hangul.md.epub; result = 38622 }
00:00:07 d #3965 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hanauittang.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/politics/hanauittang.hangul.md.pdf; result = 231956 }
00:00:07 i #3966 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/rust.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rust.hangul.md.pdf }
00:00:07 i #3967 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/hanauittang.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hanauittang.hangul.md.html }
00:00:07 d #3968 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\relationships.md.pdf; new_path = c:/home/git/vault/dist/data/relationships/relationships.md.pdf; result = 202653 }
00:00:07 i #3969 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/relationships/relationships.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\relationships.md.html }
00:00:07 d #3970 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rust.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/programming/rust.hangul.md.pdf; result = 64002 }
00:00:07 i #3971 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/rust.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rust.hangul.md.html }
00:00:07 d #3972 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\relationships.md.html; new_path = c:/home/git/vault/dist/data/relationships/relationships.md.html; result = 201038 }
00:00:07 i #3973 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/relationships/relationships.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\relationships.hangul.md }
00:00:07 d #3974 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rust.hangul.md.html; new_path = c:/home/git/vault/dist/data/programming/rust.hangul.md.html; result = 212516 }
00:00:07 v #3975 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 i #3976 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/rust.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rust.md.epub }
00:00:07 d #3977 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hanauittang.hangul.md.html; new_path = c:/home/git/vault/dist/data/politics/hanauittang.hangul.md.html; result = 1003874 }
00:00:07 d #3978 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\relationships.hangul.md; new_path = c:/home/git/vault/dist/data/relationships/relationships.hangul.md; result = 252121 }
00:00:07 i #3979 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/hanauittang.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hanauittang.md.epub }
00:00:07 d #3980 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rust.md.epub; new_path = c:/home/git/vault/dist/data/programming/rust.md.epub; result = 36741 }
00:00:07 i #3981 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/rust.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rust.md.pdf }
00:00:07 d #3982 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hanauittang.md.epub; new_path = c:/home/git/vault/dist/data/politics/hanauittang.md.epub; result = 165955 }
00:00:07 i #3983 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/hanauittang.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hanauittang.md.pdf }
00:00:07 d #3984 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/religion/hinduism.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/religion/hinduism.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 i #3985 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.hangul.md.epub }
00:00:07 d #3986 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rust.md.pdf; new_path = c:/home/git/vault/dist/data/programming/rust.md.pdf; result = 202003 }
00:00:07 i #3987 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/rust.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rust.md.html }
00:00:07 d #3988 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.hangul.md.epub; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.hangul.md.epub; result = 5502 }
00:00:07 i #3989 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.hangul.md.pdf }
00:00:07 d #3990 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hanauittang.md.pdf; new_path = c:/home/git/vault/dist/data/politics/hanauittang.md.pdf; result = 685702 }
00:00:07 d #3991 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rust.md.html; new_path = c:/home/git/vault/dist/data/programming/rust.md.html; result = 252122 }
00:00:07 i #3992 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/hanauittang.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hanauittang.md.html }
00:00:07 i #3993 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/rust.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rust.hangul.md }
00:00:07 d #3994 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.hangul.md.pdf; result = 4283 }
00:00:07 i #3995 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.hangul.md.html }
00:00:07 d #3996 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rust.hangul.md; new_path = c:/home/git/vault/dist/data/programming/rust.hangul.md; result = 150631 }
00:00:07 v #3997 > '6dda630b53f346256f4dc3739236972a6374b3e7'
00:00:07 d #3998 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.hangul.md.html; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.hangul.md.html; result = 10079 }
00:00:07 i #3999 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.md.epub }
00:00:07 d #4000 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.md.epub; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.md.epub; result = 5441 }
00:00:07 d #4001 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/programming/rust.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/programming/rust.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 d #4002 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hanauittang.md.html; new_path = c:/home/git/vault/dist/data/politics/hanauittang.md.html; result = 686673 }
00:00:07 i #4003 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/hanauittang.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hanauittang.hangul.md }
00:00:07 i #4004 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.md.pdf }
00:00:07 d #4005 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.md.pdf; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.md.pdf; result = 5892 }
00:00:07 d #4006 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hanauittang.hangul.md; new_path = c:/home/git/vault/dist/data/politics/hanauittang.hangul.md; result = 869743 }
00:00:07 i #4006 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.md.html }
00:00:07 d #4008 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.md.html; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.md.html; result = 10049 }
00:00:07 i #4009 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.hangul.md }
00:00:07 d #4010 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.fc1943s.hangul.md; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.fc1943s.hangul.md; result = 99 }
00:00:07 d #4011 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/politics/politics.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/politics/politics.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 d #4012 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/lastfm/lastfm.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/lastfm/lastfm.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 v #4013 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #4014 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/programming/programming.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/programming/programming.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #4015 > '8e9bc86a9063f1b960e5ed058ec223d973dfa028'
00:00:07 v #4016 > 28de73bf2bd7f24a583576578739461918ed105c
00:00:07 v #4017 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #4018 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/protonmail/protonmail.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/protonmail/protonmail.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #4019 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 i #4020 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/powershell.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\powershell.hangul.md.epub }
00:00:07 d #4021 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\powershell.hangul.md.epub; new_path = c:/home/git/vault/dist/data/programming/powershell.hangul.md.epub; result = 5635 }
00:00:07 i #4022 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/powershell.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\powershell.hangul.md.pdf }
00:00:07 d #4023 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\powershell.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/programming/powershell.hangul.md.pdf; result = 4498 }
00:00:07 i #4024 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/powershell.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\powershell.hangul.md.html }
00:00:07 d #4025 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\powershell.hangul.md.html; new_path = c:/home/git/vault/dist/data/programming/powershell.hangul.md.html; result = 10338 }
00:00:07 i #4026 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/powershell.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\powershell.md.epub }
00:00:07 d #4027 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\powershell.md.epub; new_path = c:/home/git/vault/dist/data/programming/powershell.md.epub; result = 5544 }
00:00:07 i #4028 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/powershell.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\powershell.md.pdf }
00:00:07 d #4029 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\powershell.md.pdf; new_path = c:/home/git/vault/dist/data/programming/powershell.md.pdf; result = 7335 }
00:00:07 i #4030 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/powershell.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\powershell.md.html }
00:00:07 d #4031 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\powershell.md.html; new_path = c:/home/git/vault/dist/data/programming/powershell.md.html; result = 10258 }
00:00:07 i #4032 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/powershell.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\powershell.hangul.md }
00:00:07 d #4033 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\powershell.hangul.md; new_path = c:/home/git/vault/dist/data/programming/powershell.hangul.md; result = 296 }
00:00:07 d #4034 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/magic/magic.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/magic/magic.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 v #4035 > '97aa9fdc238588c6e274a80e391a78474d9ab897'
00:00:07 v #4036 > '434c960bdfe32a4a92597d61bcc65b77abc6ba1b'
00:00:07 v #4037 > '23c4084024f5966ec8b1bbeebb4e3660e8e9e678'
00:00:07 v #4038 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 v #4039 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #4040 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/religion/hinduism.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/religion/hinduism.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 d #4041 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/programming/rust.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/programming/rust.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #4042 > '30411c646f14862f669ca43b0cc4df49622b801f'
00:00:07 v #4043 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 v #4044 > 6dda630b53f346256f4dc3739236972a6374b3e7
00:00:07 d #4045 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/politics/politics.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/politics/politics.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #4046 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 v #4047 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 i #4048 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/programming.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\programming.mp3.hangul.md.epub }
00:00:07 d #4049 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/lastfm/lastfm.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/lastfm/lastfm.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 d #4050 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\programming.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/programming/programming.mp3.hangul.md.epub; result = 7205 }
00:00:07 i #4051 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/programming.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\programming.mp3.hangul.md.pdf }
00:00:07 d #4052 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\programming.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/programming/programming.mp3.hangul.md.pdf; result = 5408 }
00:00:07 i #4053 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/programming.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\programming.mp3.hangul.md.html }
00:00:07 d #4054 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\programming.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/programming/programming.mp3.hangul.md.html; result = 18962 }
00:00:07 i #4055 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/programming.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\programming.mp3.md.epub }
00:00:07 v #4056 > 8e9bc86a9063f1b960e5ed058ec223d973dfa028
00:00:07 d #4057 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\programming.mp3.md.epub; new_path = c:/home/git/vault/dist/data/programming/programming.mp3.md.epub; result = 6701 }
00:00:07 i #4058 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/programming.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\programming.mp3.md.pdf }
00:00:07 d #4059 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\programming.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/programming/programming.mp3.md.pdf; result = 12455 }
00:00:07 i #4060 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/programming.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\programming.mp3.md.html }
00:00:07 d #4061 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\programming.mp3.md.html; new_path = c:/home/git/vault/dist/data/programming/programming.mp3.md.html; result = 15388 }
00:00:07 i #4062 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/programming.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\programming.mp3.hangul.md }
00:00:07 d #4063 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\programming.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/programming/programming.mp3.hangul.md; result = 8203 }
00:00:07 d #4064 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/psychology/inner-inferno_pt-br.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/psychology/inner-inferno_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 v #4065 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 i #4066 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.html.hangul.md.epub }
00:00:07 d #4067 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.html.hangul.md.epub; result = 5530 }
00:00:07 i #4068 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.html.hangul.md.pdf }
00:00:07 d #4069 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.html.hangul.md.pdf; result = 3856 }
00:00:07 i #4070 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.html.hangul.md.html }
00:00:07 d #4071 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.html.hangul.md.html; result = 10340 }
00:00:07 v #4072 > '7eb090fec8afaa68bc03fd2f8a154dccfc54ccea'
00:00:07 i #4073 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.html.md.epub }
00:00:07 d #4074 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.html.md.epub; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.html.md.epub; result = 5460 }
00:00:07 i #4075 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.html.md.pdf }
00:00:07 d #4076 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.html.md.pdf; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.html.md.pdf; result = 5944 }
00:00:07 i #4077 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.html.md.html }
00:00:07 d #4078 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.html.md.html; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.html.md.html; result = 10260 }
00:00:07 i #4079 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.html.hangul.md }
00:00:07 d #4080 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.html.hangul.md; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.html.hangul.md; result = 284 }
00:00:07 d #4081 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/protonmail/protonmail.i574n.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/protonmail/protonmail.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:07 v #4082 > 97aa9fdc238588c6e274a80e391a78474d9ab897
00:00:07 v #4083 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:07 d #4084 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/magic/magic.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/magic/magic.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:07 v #4085 > 434c960bdfe32a4a92597d61bcc65b77abc6ba1b
00:00:07 v #4086 > 23c4084024f5966ec8b1bbeebb4e3660e8e9e678
00:00:07 v #4087 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:07 i #4088 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/hinduism.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hinduism.hangul.md.epub }
00:00:07 d #4089 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hinduism.hangul.md.epub; new_path = c:/home/git/vault/dist/data/religion/hinduism.hangul.md.epub; result = 19246 }
00:00:07 i #4090 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/hinduism.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hinduism.hangul.md.pdf }
00:00:08 d #4091 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hinduism.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/religion/hinduism.hangul.md.pdf; result = 20885 }
00:00:08 i #4092 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/hinduism.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hinduism.hangul.md.html }
00:00:08 v #4093 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 d #4094 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hinduism.hangul.md.html; new_path = c:/home/git/vault/dist/data/religion/hinduism.hangul.md.html; result = 81476 }
00:00:08 i #4095 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/hinduism.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hinduism.md.epub }
00:00:08 d #4096 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hinduism.md.epub; new_path = c:/home/git/vault/dist/data/religion/hinduism.md.epub; result = 17383 }
00:00:08 i #4097 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/rust.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rust.pdf.hangul.md.epub }
00:00:08 i #4098 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/hinduism.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hinduism.md.pdf }
00:00:08 d #4099 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rust.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/programming/rust.pdf.hangul.md.epub; result = 7660 }
00:00:08 i #4100 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/rust.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rust.pdf.hangul.md.pdf }
00:00:08 v #4101 > 30411c646f14862f669ca43b0cc4df49622b801f
00:00:08 d #4102 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hinduism.md.pdf; new_path = c:/home/git/vault/dist/data/religion/hinduism.md.pdf; result = 59715 }
00:00:08 d #4103 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rust.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/programming/rust.pdf.hangul.md.pdf; result = 7304 }
00:00:08 i #4103 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/hinduism.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hinduism.md.html }
00:00:08 i #4105 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/rust.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rust.pdf.hangul.md.html }
00:00:08 v #4106 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 d #4107 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hinduism.md.html; new_path = c:/home/git/vault/dist/data/religion/hinduism.md.html; result = 58848 }
00:00:08 d #4108 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rust.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/programming/rust.pdf.hangul.md.html; result = 19553 }
00:00:08 i #4109 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/rust.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rust.pdf.md.epub }
00:00:08 i #4110 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/hinduism.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\hinduism.hangul.md }
00:00:08 d #4111 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rust.pdf.md.epub; new_path = c:/home/git/vault/dist/data/programming/rust.pdf.md.epub; result = 7110 }
00:00:08 d #4112 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\hinduism.hangul.md; new_path = c:/home/git/vault/dist/data/religion/hinduism.hangul.md; result = 61430 }
00:00:08 i #4113 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/rust.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rust.pdf.md.pdf }
00:00:08 i #4114 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.hangul.md.epub }
00:00:08 d #4115 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/religion/kimbanda.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/religion/kimbanda.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 d #4116 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rust.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/programming/rust.pdf.md.pdf; result = 14838 }
00:00:08 i #4117 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/rust.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rust.pdf.md.html }
00:00:08 d #4118 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.hangul.md.epub; new_path = c:/home/git/vault/dist/data/politics/politics.hangul.md.epub; result = 149082 }
00:00:08 i #4120 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.hangul.md.pdf }
00:00:08 d #4119 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rust.pdf.md.html; new_path = c:/home/git/vault/dist/data/programming/rust.pdf.md.html; result = 16513 }
00:00:08 i #4121 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/programming/rust.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\rust.pdf.hangul.md }
00:00:08 d #4122 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\rust.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/programming/rust.pdf.hangul.md; result = 8340 }
00:00:08 d #4123 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/politics/politics.hangul.md.pdf; result = 196786 }
00:00:08 i #4124 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.hangul.md.html }
00:00:08 d #4125 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/psychology/psychology.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/psychology/psychology.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 d #4126 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.hangul.md.html; new_path = c:/home/git/vault/dist/data/politics/politics.hangul.md.html; result = 779668 }
00:00:08 i #4127 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.md.epub }
00:00:08 d #4128 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.md.epub; new_path = c:/home/git/vault/dist/data/politics/politics.md.epub; result = 131994 }
00:00:08 i #4129 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.md.pdf }
00:00:08 v #4130 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 d #4131 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.md.pdf; new_path = c:/home/git/vault/dist/data/politics/politics.md.pdf; result = 555188 }
00:00:08 i #4132 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.md.html }
00:00:08 i #4133 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.html.hangul.md.epub }
00:00:08 d #4134 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.html.hangul.md.epub; result = 5684 }
00:00:08 d #4135 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.md.html; new_path = c:/home/git/vault/dist/data/politics/politics.md.html; result = 535078 }
00:00:08 i #4136 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.html.hangul.md.pdf }
00:00:08 i #4137 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.hangul.md }
00:00:08 v #4138 > 'd7255f3394d469cd0f10ddc5400329b9730f52c5'
00:00:08 d #4139 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.html.hangul.md.pdf; result = 4460 }
00:00:08 d #4140 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.hangul.md; new_path = c:/home/git/vault/dist/data/politics/politics.hangul.md; result = 670043 }
00:00:08 i #4141 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.html.hangul.md.html }
00:00:08 d #4142 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.html.hangul.md.html; result = 12646 }
00:00:08 i #4143 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.html.md.epub }
00:00:08 d #4144 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.html.md.epub; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.html.md.epub; result = 5561 }
00:00:08 i #4145 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.html.md.pdf }
00:00:08 d #4146 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/politics/politics.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/politics/politics.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 d #4147 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.html.md.pdf; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.html.md.pdf; result = 7737 }
00:00:08 i #4148 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.html.md.html }
00:00:08 d #4149 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.html.md.html; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.html.md.html; result = 12153 }
00:00:08 i #4150 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/lastfm/lastfm.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.html.hangul.md }
00:00:08 d #4151 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\lastfm.html.hangul.md; new_path = c:/home/git/vault/dist/data/lastfm/lastfm.html.hangul.md; result = 1700 }
00:00:08 d #4152 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/linux/linux.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/linux/linux.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 v #4153 > '9ac5bde963a16c5a5b9fab686e95f8ed42d40254'
00:00:08 v #4154 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4155 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/psychology/inner-inferno_pt-br.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/psychology/inner-inferno_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4156 > 7eb090fec8afaa68bc03fd2f8a154dccfc54ccea
00:00:08 v #4157 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4158 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/protonmail/protonmail.i574n.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/protonmail/protonmail.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4159 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 i #4160 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.html.hangul.md.epub }
00:00:08 d #4161 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/magic/magic.html.hangul.md.epub; result = 5519 }
00:00:08 i #4162 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.html.hangul.md.pdf }
00:00:08 d #4163 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/magic/magic.html.hangul.md.pdf; result = 3756 }
00:00:08 i #4164 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.html.hangul.md.html }
00:00:08 d #4165 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/magic/magic.html.hangul.md.html; result = 10098 }
00:00:08 i #4166 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.html.md.epub }
00:00:08 d #4167 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.html.md.epub; new_path = c:/home/git/vault/dist/data/magic/magic.html.md.epub; result = 5445 }
00:00:08 i #4168 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.html.md.pdf }
00:00:08 d #4169 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.html.md.pdf; new_path = c:/home/git/vault/dist/data/magic/magic.html.md.pdf; result = 5855 }
00:00:08 i #4170 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.html.md.html }
00:00:08 d #4171 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.html.md.html; new_path = c:/home/git/vault/dist/data/magic/magic.html.md.html; result = 10064 }
00:00:08 i #4172 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.html.hangul.md }
00:00:08 d #4173 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.html.hangul.md; new_path = c:/home/git/vault/dist/data/magic/magic.html.hangul.md; result = 130 }
00:00:08 d #4174 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/magic/magic.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/magic/magic.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 v #4175 > 'f511538655cfdcae9b9a4a30a112c5860d9d6c2c'
00:00:08 v #4176 > '8b8616feca251f9df6d044c31d15e1070ce9ef1f'
00:00:08 v #4177 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 v #4178 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 v #4179 > '9dd2ff3e83c994f7a66cf9f856ced92801c3c31f'
00:00:08 d #4180 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/psychology/psychology.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/psychology/psychology.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 d #4181 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/religion/kimbanda.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/religion/kimbanda.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4182 > 'f0caa36f833b2e05a7943dddc61fb7650928f4e5'
00:00:08 v #4183 > d7255f3394d469cd0f10ddc5400329b9730f52c5
00:00:08 v #4184 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4185 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/linux/linux.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/linux/linux.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4186 > 9ac5bde963a16c5a5b9fab686e95f8ed42d40254
00:00:08 v #4187 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 v #4188 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4189 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/politics/politics.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/politics/politics.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 i #4190 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/inner-inferno_pt-br.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\inner-inferno_pt-br.hangul.md.epub }
00:00:08 d #4191 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\inner-inferno_pt-br.hangul.md.epub; new_path = c:/home/git/vault/dist/data/psychology/inner-inferno_pt-br.hangul.md.epub; result = 114192 }
00:00:08 i #4192 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/inner-inferno_pt-br.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\inner-inferno_pt-br.hangul.md.pdf }
00:00:08 d #4193 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\inner-inferno_pt-br.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/psychology/inner-inferno_pt-br.hangul.md.pdf; result = 116341 }
00:00:08 i #4194 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/inner-inferno_pt-br.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\inner-inferno_pt-br.hangul.md.html }
00:00:08 d #4195 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\inner-inferno_pt-br.hangul.md.html; new_path = c:/home/git/vault/dist/data/psychology/inner-inferno_pt-br.hangul.md.html; result = 455079 }
00:00:08 i #4196 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/inner-inferno_pt-br.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\inner-inferno_pt-br.md.epub }
00:00:08 v #4197 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 d #4198 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\inner-inferno_pt-br.md.epub; new_path = c:/home/git/vault/dist/data/psychology/inner-inferno_pt-br.md.epub; result = 100223 }
00:00:08 i #4199 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/inner-inferno_pt-br.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\inner-inferno_pt-br.md.pdf }
00:00:08 i #4200 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.i574n.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.i574n.hangul.md.epub }
00:00:08 d #4201 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\inner-inferno_pt-br.md.pdf; new_path = c:/home/git/vault/dist/data/psychology/inner-inferno_pt-br.md.pdf; result = 356366 }
00:00:08 i #4202 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/inner-inferno_pt-br.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\inner-inferno_pt-br.md.html }
00:00:08 d #4203 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.i574n.hangul.md.epub; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.i574n.hangul.md.epub; result = 5507 }
00:00:08 i #4204 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.i574n.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.i574n.hangul.md.pdf }
00:00:08 d #4205 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.i574n.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.i574n.hangul.md.pdf; result = 4376 }
00:00:08 i #4206 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.i574n.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.i574n.hangul.md.html }
00:00:08 d #4207 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\inner-inferno_pt-br.md.html; new_path = c:/home/git/vault/dist/data/psychology/inner-inferno_pt-br.md.html; result = 317605 }
00:00:08 d #4208 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.i574n.hangul.md.html; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.i574n.hangul.md.html; result = 10079 }
00:00:08 i #4209 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/inner-inferno_pt-br.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\inner-inferno_pt-br.hangul.md }
00:00:08 i #4210 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.i574n.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.i574n.md.epub }
00:00:08 d #4211 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.i574n.md.epub; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.i574n.md.epub; result = 5443 }
00:00:08 i #4212 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.i574n.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.i574n.md.pdf }
00:00:08 d #4213 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\inner-inferno_pt-br.hangul.md; new_path = c:/home/git/vault/dist/data/psychology/inner-inferno_pt-br.hangul.md; result = 424276 }
00:00:08 d #4214 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.i574n.md.pdf; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.i574n.md.pdf; result = 5902 }
00:00:08 i #4215 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.i574n.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.i574n.md.html }
00:00:08 d #4216 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.i574n.md.html; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.i574n.md.html; result = 10053 }
00:00:08 i #4217 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/protonmail/protonmail.i574n.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.i574n.hangul.md }
00:00:08 d #4218 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\protonmail.i574n.hangul.md; new_path = c:/home/git/vault/dist/data/protonmail/protonmail.i574n.hangul.md; result = 99 }
00:00:08 d #4219 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/psychology/psychology.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/psychology/psychology.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 d #4220 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/tidal/tidal.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/tidal/tidal.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 v #4221 > 'b9770d8435b744c4b233a8b2b18412137e2d24ce'
00:00:08 v #4222 > 8b8616feca251f9df6d044c31d15e1070ce9ef1f
00:00:08 v #4223 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 v #4224 > f511538655cfdcae9b9a4a30a112c5860d9d6c2c
00:00:08 d #4225 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/magic/magic.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/magic/magic.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4226 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 v #4227 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 i #4228 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/kimbanda.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.hangul.md.epub }
00:00:08 i #4229 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.mp3.hangul.md.epub }
00:00:08 d #4230 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.hangul.md.epub; new_path = c:/home/git/vault/dist/data/religion/kimbanda.hangul.md.epub; result = 18654 }
00:00:08 d #4231 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/psychology/psychology.mp3.hangul.md.epub; result = 6184 }
00:00:08 v #4232 > 9dd2ff3e83c994f7a66cf9f856ced92801c3c31f
00:00:08 i #4233 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/kimbanda.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.hangul.md.pdf }
00:00:08 i #4234 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.mp3.hangul.md.pdf }
00:00:08 d #4235 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/religion/kimbanda.hangul.md.pdf; result = 18451 }
00:00:08 i #4236 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/kimbanda.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.hangul.md.html }
00:00:08 d #4237 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/psychology/psychology.mp3.hangul.md.pdf; result = 4495 }
00:00:08 i #4238 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.mp3.hangul.md.html }
00:00:08 d #4239 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.hangul.md.html; new_path = c:/home/git/vault/dist/data/religion/kimbanda.hangul.md.html; result = 64518 }
00:00:08 d #4240 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/psychology/psychology.mp3.hangul.md.html; result = 12199 }
00:00:08 i #4241 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/kimbanda.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.md.epub }
00:00:08 i #4242 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.mp3.md.epub }
00:00:08 d #4243 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.md.epub; new_path = c:/home/git/vault/dist/data/religion/kimbanda.md.epub; result = 16597 }
00:00:08 d #4244 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.mp3.md.epub; new_path = c:/home/git/vault/dist/data/psychology/psychology.mp3.md.epub; result = 5906 }
00:00:08 i #4245 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/kimbanda.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.md.pdf }
00:00:08 i #4246 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.mp3.md.pdf }
00:00:08 d #4247 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/psychology/psychology.mp3.md.pdf; result = 10138 }
00:00:08 d #4248 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.md.pdf; new_path = c:/home/git/vault/dist/data/religion/kimbanda.md.pdf; result = 51633 }
00:00:08 i #4249 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.mp3.md.html }
00:00:08 v #4250 > f0caa36f833b2e05a7943dddc61fb7650928f4e5
00:00:08 i #4251 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/kimbanda.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.md.html }
00:00:08 d #4252 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.mp3.md.html; new_path = c:/home/git/vault/dist/data/psychology/psychology.mp3.md.html; result = 11223 }
00:00:08 i #4253 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.mp3.hangul.md }
00:00:08 d #4254 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.md.html; new_path = c:/home/git/vault/dist/data/religion/kimbanda.md.html; result = 47826 }
00:00:08 i #4255 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/kimbanda.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.hangul.md }
00:00:08 d #4256 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/psychology/psychology.mp3.hangul.md; result = 2044 }
00:00:08 d #4257 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.hangul.md; new_path = c:/home/git/vault/dist/data/religion/kimbanda.hangul.md; result = 45510 }
00:00:08 d #4258 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/psychology/psychology.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/psychology/psychology.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 d #4259 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/religion/kimbanda.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/religion/kimbanda.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 v #4260 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 i #4261 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/linux/linux.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\linux.hangul.md.epub }
00:00:08 d #4262 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\linux.hangul.md.epub; new_path = c:/home/git/vault/dist/data/linux/linux.hangul.md.epub; result = 5755 }
00:00:08 i #4263 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/linux/linux.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\linux.hangul.md.pdf }
00:00:08 d #4264 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\linux.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/linux/linux.hangul.md.pdf; result = 6107 }
00:00:08 v #4265 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 i #4266 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/linux/linux.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\linux.hangul.md.html }
00:00:08 d #4267 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\linux.hangul.md.html; new_path = c:/home/git/vault/dist/data/linux/linux.hangul.md.html; result = 14764 }
00:00:08 i #4268 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/linux/linux.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\linux.md.epub }
00:00:08 i #4269 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.mp3.hangul.md.epub }
00:00:08 d #4270 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\linux.md.epub; new_path = c:/home/git/vault/dist/data/linux/linux.md.epub; result = 5619 }
00:00:08 d #4271 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/politics/politics.mp3.hangul.md.epub; result = 5704 }
00:00:08 i #4272 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/linux/linux.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\linux.md.pdf }
00:00:08 i #4273 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.mp3.hangul.md.pdf }
00:00:08 d #4274 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\linux.md.pdf; new_path = c:/home/git/vault/dist/data/linux/linux.md.pdf; result = 12711 }
00:00:08 d #4275 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/politics/politics.mp3.hangul.md.pdf; result = 4040 }
00:00:08 i #4276 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.mp3.hangul.md.html }
00:00:08 i #4277 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/linux/linux.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\linux.md.html }
00:00:08 d #4278 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/politics/politics.mp3.hangul.md.html; result = 10371 }
00:00:08 i #4279 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.mp3.md.epub }
00:00:08 d #4280 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\linux.md.html; new_path = c:/home/git/vault/dist/data/linux/linux.md.html; result = 14556 }
00:00:08 i #4281 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/linux/linux.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\linux.hangul.md }
00:00:08 d #4282 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.mp3.md.epub; new_path = c:/home/git/vault/dist/data/politics/politics.mp3.md.epub; result = 5565 }
00:00:08 v #4283 > '4ee1f7e9e8ad93249e8717a7c0ab146d70933975'
00:00:08 i #4284 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.mp3.md.pdf }
00:00:08 d #4285 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\linux.hangul.md; new_path = c:/home/git/vault/dist/data/linux/linux.hangul.md; result = 577 }
00:00:08 d #4286 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/politics/politics.mp3.md.pdf; result = 8045 }
00:00:08 i #4287 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.mp3.md.html }
00:00:08 d #4288 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.mp3.md.html; new_path = c:/home/git/vault/dist/data/politics/politics.mp3.md.html; result = 10178 }
00:00:08 i #4289 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.mp3.hangul.md }
00:00:08 d #4290 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/politics/politics.mp3.hangul.md; result = 445 }
00:00:08 d #4291 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/religion/religion.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/religion/religion.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 v #4292 > 'aa2d0c55ac0ada3ffecd82f754d1a73ececcdede'
00:00:08 d #4293 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/politics/politics.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/politics/politics.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 v #4294 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4295 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/psychology/psychology.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/psychology/psychology.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4296 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4297 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/tidal/tidal.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/tidal/tidal.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4298 > b9770d8435b744c4b233a8b2b18412137e2d24ce
00:00:08 v #4299 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 i #4300 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.hangul.md.epub }
00:00:08 d #4301 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.hangul.md.epub; new_path = c:/home/git/vault/dist/data/magic/magic.hangul.md.epub; result = 37566 }
00:00:08 i #4302 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.hangul.md.pdf }
00:00:08 d #4303 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/magic/magic.hangul.md.pdf; result = 41493 }
00:00:08 i #4304 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.hangul.md.html }
00:00:08 d #4305 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.hangul.md.html; new_path = c:/home/git/vault/dist/data/magic/magic.hangul.md.html; result = 167307 }
00:00:08 i #4306 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.md.epub }
00:00:08 d #4307 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.md.epub; new_path = c:/home/git/vault/dist/data/magic/magic.md.epub; result = 33524 }
00:00:08 i #4308 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.md.pdf }
00:00:08 d #4309 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.md.pdf; new_path = c:/home/git/vault/dist/data/magic/magic.md.pdf; result = 121215 }
00:00:08 i #4310 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.md.html }
00:00:08 d #4311 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.md.html; new_path = c:/home/git/vault/dist/data/magic/magic.md.html; result = 115157 }
00:00:08 i #4312 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/magic/magic.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\magic.hangul.md }
00:00:08 d #4313 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\magic.hangul.md; new_path = c:/home/git/vault/dist/data/magic/magic.hangul.md; result = 138648 }
00:00:08 v #4314 > 'e62f0064be6a954e4eef32d9f99cc611c1fa53ce'
00:00:08 d #4315 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/streaming/streaming.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/streaming/streaming.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 v #4316 > 'a01a7819daf101c87c2cefedb8ff676668204110'
00:00:08 v #4317 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4318 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/psychology/psychology.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/psychology/psychology.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4319 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4320 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/religion/kimbanda.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/religion/kimbanda.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4321 > 'd239324db5340dd134db4e31f640bda07ff385b7'
00:00:08 v #4322 > '897270ba23b72d3d513ff0d09368a70b0104016e'
00:00:08 v #4323 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4324 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/religion/religion.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/religion/religion.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4325 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 v #4326 > 4ee1f7e9e8ad93249e8717a7c0ab146d70933975
00:00:08 d #4327 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/politics/politics.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/politics/politics.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4328 > aa2d0c55ac0ada3ffecd82f754d1a73ececcdede
00:00:08 v #4329 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 v #4330 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 i #4330 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.hangul.md.epub }
00:00:08 d #4332 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.hangul.md.epub; new_path = c:/home/git/vault/dist/data/psychology/psychology.hangul.md.epub; result = 15614 }
00:00:08 i #4333 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.hangul.md.pdf }
00:00:08 d #4334 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/psychology/psychology.hangul.md.pdf; result = 14813 }
00:00:08 i #4335 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.hangul.md.html }
00:00:08 i #4336 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tidal/tidal.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tidal.html.hangul.md.epub }
00:00:08 d #4337 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tidal.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/tidal/tidal.html.hangul.md.epub; result = 5529 }
00:00:08 d #4338 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.hangul.md.html; new_path = c:/home/git/vault/dist/data/psychology/psychology.hangul.md.html; result = 55715 }
00:00:08 i #4339 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.md.epub }
00:00:08 i #4340 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tidal/tidal.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tidal.html.hangul.md.pdf }
00:00:08 d #4341 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.md.epub; new_path = c:/home/git/vault/dist/data/psychology/psychology.md.epub; result = 14106 }
00:00:08 i #4342 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.md.pdf }
00:00:08 d #4343 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tidal.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/tidal/tidal.html.hangul.md.pdf; result = 3796 }
00:00:08 i #4344 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tidal/tidal.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tidal.html.hangul.md.html }
00:00:08 d #4345 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.md.pdf; new_path = c:/home/git/vault/dist/data/psychology/psychology.md.pdf; result = 43003 }
00:00:08 d #4346 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tidal.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/tidal/tidal.html.hangul.md.html; result = 10308 }
00:00:08 i #4347 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.md.html }
00:00:08 i #4348 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tidal/tidal.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tidal.html.md.epub }
00:00:08 d #4349 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tidal.html.md.epub; new_path = c:/home/git/vault/dist/data/tidal/tidal.html.md.epub; result = 5460 }
00:00:08 d #4349 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.md.html; new_path = c:/home/git/vault/dist/data/psychology/psychology.md.html; result = 41442 }
00:00:08 i #4351 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.hangul.md }
00:00:08 i #4352 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tidal/tidal.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tidal.html.md.pdf }
00:00:08 d #4353 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.hangul.md; new_path = c:/home/git/vault/dist/data/psychology/psychology.hangul.md; result = 38222 }
00:00:08 d #4354 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tidal.html.md.pdf; new_path = c:/home/git/vault/dist/data/tidal/tidal.html.md.pdf; result = 6040 }
00:00:08 i #4355 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tidal/tidal.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tidal.html.md.html }
00:00:08 d #4356 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tidal.html.md.html; new_path = c:/home/git/vault/dist/data/tidal/tidal.html.md.html; result = 10245 }
00:00:08 i #4357 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tidal/tidal.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tidal.html.hangul.md }
00:00:08 d #4358 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tidal.html.hangul.md; new_path = c:/home/git/vault/dist/data/tidal/tidal.html.hangul.md; result = 252 }
00:00:08 d #4359 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/sex/sex.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/sex/sex.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 d #4360 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/trakt/trakt.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/trakt/trakt.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 v #4361 > '902c3656de437e37a00c83f6be1e981e8a6638bc'
00:00:08 v #4362 > a01a7819daf101c87c2cefedb8ff676668204110
00:00:08 v #4363 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 v #4364 > e62f0064be6a954e4eef32d9f99cc611c1fa53ce
00:00:08 d #4365 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/streaming/streaming.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/streaming/streaming.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4366 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 i #4367 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/kimbanda.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.pdf.hangul.md.epub }
00:00:08 d #4368 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/religion/kimbanda.pdf.hangul.md.epub; result = 7175 }
00:00:08 i #4369 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/kimbanda.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.pdf.hangul.md.pdf }
00:00:08 d #4370 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/religion/kimbanda.pdf.hangul.md.pdf; result = 7279 }
00:00:08 i #4371 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/kimbanda.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.pdf.hangul.md.html }
00:00:08 v #4372 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 d #4373 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/religion/kimbanda.pdf.hangul.md.html; result = 18439 }
00:00:08 i #4374 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/kimbanda.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.pdf.md.epub }
00:00:08 i #4375 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.pdf.hangul.md.epub }
00:00:08 v #4376 > d239324db5340dd134db4e31f640bda07ff385b7
00:00:08 d #4377 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.pdf.md.epub; new_path = c:/home/git/vault/dist/data/religion/kimbanda.pdf.md.epub; result = 6662 }
00:00:08 d #4378 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/psychology/psychology.pdf.hangul.md.epub; result = 5728 }
00:00:08 i #4379 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/kimbanda.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.pdf.md.pdf }
00:00:08 i #4379 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.pdf.hangul.md.pdf }
00:00:08 d #4381 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/religion/kimbanda.pdf.md.pdf; result = 17083 }
00:00:08 d #4382 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/psychology/psychology.pdf.hangul.md.pdf; result = 4849 }
00:00:08 i #4383 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/kimbanda.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.pdf.md.html }
00:00:08 i #4384 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.pdf.hangul.md.html }
00:00:08 d #4385 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.pdf.md.html; new_path = c:/home/git/vault/dist/data/religion/kimbanda.pdf.md.html; result = 15781 }
00:00:08 d #4386 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/psychology/psychology.pdf.hangul.md.html; result = 10440 }
00:00:08 i #4387 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/kimbanda.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.pdf.hangul.md }
00:00:08 i #4388 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.pdf.md.epub }
00:00:08 d #4389 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\kimbanda.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/religion/kimbanda.pdf.hangul.md; result = 6947 }
00:00:08 d #4390 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.pdf.md.epub; new_path = c:/home/git/vault/dist/data/psychology/psychology.pdf.md.epub; result = 5596 }
00:00:08 i #4391 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.pdf.md.pdf }
00:00:08 d #4392 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/psychology/psychology.pdf.md.pdf; result = 8065 }
00:00:08 v #4393 > 897270ba23b72d3d513ff0d09368a70b0104016e
00:00:08 i #4394 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.pdf.md.html }
00:00:08 d #4395 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.pdf.md.html; new_path = c:/home/git/vault/dist/data/psychology/psychology.pdf.md.html; result = 10285 }
00:00:08 i #4396 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/psychology/psychology.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\psychology.pdf.hangul.md }
00:00:08 d #4397 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\psychology.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/psychology/psychology.pdf.hangul.md; result = 452 }
00:00:08 d #4398 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/religion/maya.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/religion/maya.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 d #4399 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/security/security.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/security/security.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 v #4400 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 v #4401 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 i #4402 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.pdf.hangul.md.epub }
00:00:08 i #4403 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/religion.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\religion.pdf.hangul.md.epub }
00:00:08 d #4404 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/politics/politics.pdf.hangul.md.epub; result = 6288 }
00:00:08 d #4405 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\religion.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/religion/religion.pdf.hangul.md.epub; result = 5824 }
00:00:08 i #4406 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.pdf.hangul.md.pdf }
00:00:08 i #4407 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/religion.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\religion.pdf.hangul.md.pdf }
00:00:08 d #4408 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/politics/politics.pdf.hangul.md.pdf; result = 6161 }
00:00:08 i #4409 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.pdf.hangul.md.html }
00:00:08 d #4410 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\religion.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/religion/religion.pdf.hangul.md.pdf; result = 4929 }
00:00:08 i #4411 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/religion.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\religion.pdf.hangul.md.html }
00:00:08 d #4412 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/politics/politics.pdf.hangul.md.html; result = 15841 }
00:00:08 i #4413 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.pdf.md.epub }
00:00:08 d #4414 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\religion.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/religion/religion.pdf.hangul.md.html; result = 10927 }
00:00:08 i #4415 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/religion.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\religion.pdf.md.epub }
00:00:08 d #4416 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.pdf.md.epub; new_path = c:/home/git/vault/dist/data/politics/politics.pdf.md.epub; result = 6009 }
00:00:08 i #4417 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.pdf.md.pdf }
00:00:08 d #4418 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\religion.pdf.md.epub; new_path = c:/home/git/vault/dist/data/religion/religion.pdf.md.epub; result = 5650 }
00:00:08 i #4419 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/religion.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\religion.pdf.md.pdf }
00:00:08 d #4420 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/politics/politics.pdf.md.pdf; result = 11044 }
00:00:08 i #4421 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.pdf.md.html }
00:00:08 d #4422 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\religion.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/religion/religion.pdf.md.pdf; result = 8117 }
00:00:08 i #4423 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/religion.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\religion.pdf.md.html }
00:00:08 d #4424 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.pdf.md.html; new_path = c:/home/git/vault/dist/data/politics/politics.pdf.md.html; result = 13952 }
00:00:08 d #4425 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\religion.pdf.md.html; new_path = c:/home/git/vault/dist/data/religion/religion.pdf.md.html; result = 10592 }
00:00:08 i #4426 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/politics/politics.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\politics.pdf.hangul.md }
00:00:08 i #4427 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/religion.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\religion.pdf.hangul.md }
00:00:08 d #4428 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\politics.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/politics/politics.pdf.hangul.md; result = 4984 }
00:00:08 d #4429 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\religion.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/religion/religion.pdf.hangul.md; result = 871 }
00:00:08 d #4430 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/sex/sex.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/sex/sex.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 d #4430 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/science/science.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/science/science.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 v #4432 > 'f5ab0c0ec6a0da97eff29f25566ab657ad94239c'
00:00:08 v #4433 > 'd9dce8b7b3620797caab1846473795f01524ca8d'
00:00:08 v #4434 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4435 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/trakt/trakt.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/trakt/trakt.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4436 > 902c3656de437e37a00c83f6be1e981e8a6638bc
00:00:08 v #4437 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4438 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/sex/sex.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/sex/sex.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4439 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 i #4440 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/streaming/streaming.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\streaming.hangul.md.epub }
00:00:08 d #4441 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\streaming.hangul.md.epub; new_path = c:/home/git/vault/dist/data/streaming/streaming.hangul.md.epub; result = 5384 }
00:00:08 i #4442 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/streaming/streaming.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\streaming.hangul.md.pdf }
00:00:08 d #4443 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\streaming.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/streaming/streaming.hangul.md.pdf; result = 2393 }
00:00:08 i #4444 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/streaming/streaming.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\streaming.hangul.md.html }
00:00:08 d #4445 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\streaming.hangul.md.html; new_path = c:/home/git/vault/dist/data/streaming/streaming.hangul.md.html; result = 9930 }
00:00:08 i #4446 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/streaming/streaming.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\streaming.md.epub }
00:00:08 d #4447 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\streaming.md.epub; new_path = c:/home/git/vault/dist/data/streaming/streaming.md.epub; result = 5384 }
00:00:08 i #4448 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/streaming/streaming.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\streaming.md.pdf }
00:00:08 d #4449 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\streaming.md.pdf; new_path = c:/home/git/vault/dist/data/streaming/streaming.md.pdf; result = 2394 }
00:00:08 i #4450 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/streaming/streaming.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\streaming.md.html }
00:00:08 d #4451 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\streaming.md.html; new_path = c:/home/git/vault/dist/data/streaming/streaming.md.html; result = 9930 }
00:00:08 i #4452 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/streaming/streaming.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\streaming.hangul.md }
00:00:08 d #4453 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\streaming.hangul.md; new_path = c:/home/git/vault/dist/data/streaming/streaming.hangul.md; result = 22 }
00:00:08 v #4454 > '25f903ae29f0ef985ad733040e0ccd6034069834'
00:00:08 d #4455 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/tarot/tarot.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/tarot/tarot.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 v #4456 > '3aff6844c12e37a6a3873c14c6508303b3172a4e'
00:00:08 v #4457 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4458 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/religion/maya.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/religion/maya.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4459 > '58f17b0b255d89f87a9d7d7934f2a2b661f170d7'
00:00:08 v #4460 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4461 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/security/security.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/security/security.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4462 > '7a1a75afcb103cdf4c7663b610486c7c5f728845'
00:00:08 v #4463 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4464 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/sex/sex.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/sex/sex.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4465 > f5ab0c0ec6a0da97eff29f25566ab657ad94239c
00:00:08 v #4466 > d9dce8b7b3620797caab1846473795f01524ca8d
00:00:08 v #4467 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4468 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/science/science.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/science/science.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4469 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 i #4470 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/trakt/trakt.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\trakt.html.hangul.md.epub }
00:00:08 d #4471 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\trakt.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/trakt/trakt.html.hangul.md.epub; result = 5630 }
00:00:08 i #4472 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/trakt/trakt.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\trakt.html.hangul.md.pdf }
00:00:08 d #4473 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\trakt.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/trakt/trakt.html.hangul.md.pdf; result = 4192 }
00:00:08 i #4474 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/trakt/trakt.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\trakt.html.hangul.md.html }
00:00:08 d #4475 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\trakt.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/trakt/trakt.html.hangul.md.html; result = 12587 }
00:00:08 v #4476 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 i #4477 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/trakt/trakt.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\trakt.html.md.epub }
00:00:08 d #4478 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\trakt.html.md.epub; new_path = c:/home/git/vault/dist/data/trakt/trakt.html.md.epub; result = 5528 }
00:00:08 i #4479 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/trakt/trakt.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\trakt.html.md.pdf }
00:00:08 d #4480 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\trakt.html.md.pdf; new_path = c:/home/git/vault/dist/data/trakt/trakt.html.md.pdf; result = 7427 }
00:00:08 i #4481 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/trakt/trakt.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\trakt.html.md.html }
00:00:08 d #4482 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\trakt.html.md.html; new_path = c:/home/git/vault/dist/data/trakt/trakt.html.md.html; result = 12122 }
00:00:08 i #4483 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/trakt/trakt.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\trakt.html.hangul.md }
00:00:08 i #4484 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.hangul.md.epub }
00:00:08 d #4485 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\trakt.html.hangul.md; new_path = c:/home/git/vault/dist/data/trakt/trakt.html.hangul.md; result = 1641 }
00:00:08 d #4486 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.hangul.md.epub; new_path = c:/home/git/vault/dist/data/sex/sex.hangul.md.epub; result = 29284 }
00:00:08 i #4487 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.hangul.md.pdf }
00:00:08 d #4488 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/sex/sex.hangul.md.pdf; result = 40902 }
00:00:08 i #4489 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.hangul.md.html }
00:00:08 d #4490 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.hangul.md.html; new_path = c:/home/git/vault/dist/data/sex/sex.hangul.md.html; result = 140043 }
00:00:08 d #4491 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/trakt/trakt.i574n.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/trakt/trakt.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 i #4492 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.md.epub }
00:00:08 d #4493 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.md.epub; new_path = c:/home/git/vault/dist/data/sex/sex.md.epub; result = 26365 }
00:00:08 i #4494 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.md.pdf }
00:00:08 d #4495 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.md.pdf; new_path = c:/home/git/vault/dist/data/sex/sex.md.pdf; result = 113039 }
00:00:08 i #4496 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.md.html }
00:00:08 d #4497 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.md.html; new_path = c:/home/git/vault/dist/data/sex/sex.md.html; result = 100022 }
00:00:08 i #4498 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.hangul.md }
00:00:08 d #4499 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.hangul.md; new_path = c:/home/git/vault/dist/data/sex/sex.hangul.md; result = 114615 }
00:00:08 d #4500 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/sex/sex.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/sex/sex.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 v #4501 > 'b92c23361ea8f27306695fd0a374f33164c2d7b9'
00:00:08 v #4502 > 25f903ae29f0ef985ad733040e0ccd6034069834
00:00:08 v #4503 > 3aff6844c12e37a6a3873c14c6508303b3172a4e
00:00:08 v #4504 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4505 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/tarot/tarot.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/tarot/tarot.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4506 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 i #4507 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/maya.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maya.hangul.md.epub }
00:00:08 d #4508 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maya.hangul.md.epub; new_path = c:/home/git/vault/dist/data/religion/maya.hangul.md.epub; result = 15629 }
00:00:08 i #4509 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/maya.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maya.hangul.md.pdf }
00:00:08 d #4510 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maya.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/religion/maya.hangul.md.pdf; result = 18707 }
00:00:08 v #4511 > 58f17b0b255d89f87a9d7d7934f2a2b661f170d7
00:00:08 i #4512 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/maya.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maya.hangul.md.html }
00:00:08 v #4513 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 d #4514 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maya.hangul.md.html; new_path = c:/home/git/vault/dist/data/religion/maya.hangul.md.html; result = 65637 }
00:00:08 i #4515 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/maya.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maya.md.epub }
00:00:08 i #4516 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/security/security.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\security.hangul.md.epub }
00:00:08 d #4517 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maya.md.epub; new_path = c:/home/git/vault/dist/data/religion/maya.md.epub; result = 14283 }
00:00:08 i #4518 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/maya.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maya.md.pdf }
00:00:08 d #4519 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\security.hangul.md.epub; new_path = c:/home/git/vault/dist/data/security/security.hangul.md.epub; result = 7156 }
00:00:08 i #4520 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/security/security.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\security.hangul.md.pdf }
00:00:08 d #4521 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maya.md.pdf; new_path = c:/home/git/vault/dist/data/religion/maya.md.pdf; result = 49499 }
00:00:08 i #4522 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/maya.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maya.md.html }
00:00:08 d #4523 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\security.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/security/security.hangul.md.pdf; result = 7094 }
00:00:08 i #4524 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/security/security.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\security.hangul.md.html }
00:00:08 d #4525 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maya.md.html; new_path = c:/home/git/vault/dist/data/religion/maya.md.html; result = 48325 }
00:00:08 i #4526 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/maya.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maya.hangul.md }
00:00:08 d #4527 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\security.hangul.md.html; new_path = c:/home/git/vault/dist/data/security/security.hangul.md.html; result = 19814 }
00:00:08 i #4528 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/security/security.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\security.md.epub }
00:00:08 d #4529 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maya.hangul.md; new_path = c:/home/git/vault/dist/data/religion/maya.hangul.md; result = 46362 }
00:00:08 d #4530 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\security.md.epub; new_path = c:/home/git/vault/dist/data/security/security.md.epub; result = 6751 }
00:00:08 i #4531 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/security/security.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\security.md.pdf }
00:00:08 d #4532 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\security.md.pdf; new_path = c:/home/git/vault/dist/data/security/security.md.pdf; result = 17345 }
00:00:08 d #4533 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/religion/religion.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/religion/religion.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 i #4534 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/security/security.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\security.md.html }
00:00:08 d #4535 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\security.md.html; new_path = c:/home/git/vault/dist/data/security/security.md.html; result = 17735 }
00:00:08 i #4536 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/security/security.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\security.hangul.md }
00:00:08 d #4537 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\security.hangul.md; new_path = c:/home/git/vault/dist/data/security/security.hangul.md; result = 5456 }
00:00:08 v #4538 > 7a1a75afcb103cdf4c7663b610486c7c5f728845
00:00:08 d #4539 runtime.execute_with_options / { file_name = crowbook; arguments = ["--verbose", "--to", "epub", "--single", "c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.hangul.md", "--output", "c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.hangul.md.epub", "--set", "epub.version", "3", "html.css.add", "'  body { color: #e8e6e3; background-color: #202324; }  a { color: #989693; }  '"]; options = { command = crowbook --verbose --to epub --single "c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.hangul.md" --output "c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.hangul.md.epub" --set epub.version 3 html.css.add \"'  body { color: #e8e6e3; background-color: #202324; }  a { color: #989693; }  '\" rendering.num_depth 6 rendering.highlight.theme \"Solarized (dark)\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4540 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 i #4541 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.html.hangul.md.epub }
00:00:08 d #4542 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/sex/sex.html.hangul.md.epub; result = 5533 }
00:00:08 i #4543 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.html.hangul.md.pdf }
00:00:08 d #4544 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/sex/sex.html.hangul.md.pdf; result = 3796 }
00:00:08 i #4545 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.html.hangul.md.html }
00:00:08 d #4546 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/sex/sex.html.hangul.md.html; result = 10300 }
00:00:08 i #4547 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.html.md.epub }
00:00:08 d #4548 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.html.md.epub; new_path = c:/home/git/vault/dist/data/sex/sex.html.md.epub; result = 5460 }
00:00:08 i #4549 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.html.md.pdf }
00:00:08 d #4550 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.html.md.pdf; new_path = c:/home/git/vault/dist/data/sex/sex.html.md.pdf; result = 6123 }
00:00:08 i #4551 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.html.md.html }
00:00:08 d #4552 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.html.md.html; new_path = c:/home/git/vault/dist/data/sex/sex.html.md.html; result = 10237 }
00:00:08 i #4553 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.html.hangul.md }
00:00:08 d #4554 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.html.hangul.md; new_path = c:/home/git/vault/dist/data/sex/sex.html.hangul.md; result = 243 }
00:00:08 v #4555 ! CROWBOOK 0.17.0
00:00:08 d #4556 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/tech/tech.epub.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/tech/tech.epub.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 v #4557 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 v #4558 > '433ed8d4b7b7738e64d0c29b97820213654a6125'
00:00:08 i #4559 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/science/science.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\science.hangul.md.epub }
00:00:08 d #4560 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\science.hangul.md.epub; new_path = c:/home/git/vault/dist/data/science/science.hangul.md.epub; result = 5988 }
00:00:08 i #4561 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/science/science.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\science.hangul.md.pdf }
00:00:08 d #4562 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\science.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/science/science.hangul.md.pdf; result = 4277 }
00:00:08 i #4563 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/science/science.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\science.hangul.md.html }
00:00:08 d #4564 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\science.hangul.md.html; new_path = c:/home/git/vault/dist/data/science/science.hangul.md.html; result = 11413 }
00:00:08 i #4565 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/science/science.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\science.md.epub }
00:00:08 d #4566 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\science.md.epub; new_path = c:/home/git/vault/dist/data/science/science.md.epub; result = 5763 }
00:00:08 i #4567 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/science/science.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\science.md.pdf }
00:00:08 d #4568 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\science.md.pdf; new_path = c:/home/git/vault/dist/data/science/science.md.pdf; result = 9459 }
00:00:08 i #4569 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/science/science.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\science.md.html }
00:00:08 d #4570 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\science.md.html; new_path = c:/home/git/vault/dist/data/science/science.md.html; result = 10788 }
00:00:08 i #4571 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/science/science.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\science.hangul.md }
00:00:08 d #4572 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\science.hangul.md; new_path = c:/home/git/vault/dist/data/science/science.hangul.md; result = 1351 }
00:00:08 v #4573 > 'baec1a692d0f1fd4592a8a7e32f592a963acdd9f'
00:00:08 v #4574 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4575 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/travel/travel.i574n.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/travel/travel.i574n.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 d #4576 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/trakt/trakt.i574n.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/trakt/trakt.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4577 ! 10:54:13 [ERROR] crowbook::book: Inline YAML block could not set String("치틀리") to String("우 리브루 다 이노센시아"): Error converting BookOption: unrecognized key '치틀리'
00:00:08 v #4578 ! 10:54:13 [DEBUG] (1) crowbook::book: Attempting to generate epub...
00:00:08 v #4579 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4580 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/sex/sex.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/sex/sex.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4581 > b92c23361ea8f27306695fd0a374f33164c2d7b9
00:00:08 v #4582 > '327b6216ba5a5c1f5d833a2fc534e1ffcb73ae4a'
00:00:08 v #4583 ! 10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #콘테우두 or #콘테우두.md
00:00:08 v #4584 ! 10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #인트로두상-프레젠사-이-세르 or #인트로두상-프레젠사-이-세르.md
00:00:08 v #4585 ! 10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #파르치-이-이덴치다지 or #파르치-이-이덴치다지.md
00:00:08 v #4586 ! 10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #1-이우-소-코녜시두 or #1-이우-소-코녜시두.md
00:00:08 v #4587 ! 10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #2-메모리아 or #2-메모리아.md
00:00:08 v #4588 ! 10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #3-아-베르다지-두-세르 or #3-아-베르다지-두-세르.md
00:00:08 v #4589 ! 10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #4-헤콘실리아상 or #4-헤콘실리아상.md
00:00:08 v #4590 ! 10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #파르치-이-이노센시아 or #파르치-이-이노센시아.md
00:00:08 v #4591 ! 10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #5-알렝-두-페카두 or #5-알렝-두-페카두.md
00:00:08 v #4592 ! 10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #6-웅-문두-헤노바두 or #6-웅-문두-헤노바두.md
00:00:08 v #4593 ! 10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #7-멘치-베르다데이라 or #7-멘치-베르다데이라.md
00:00:08 v #4594 ! 10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #이필로구 or #이필로구.md
00:00:08 v #4595 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 i #4596 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tarot/tarot.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tarot.hangul.md.epub }
00:00:08 d #4597 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tarot.hangul.md.epub; new_path = c:/home/git/vault/dist/data/tarot/tarot.hangul.md.epub; result = 9358 }
00:00:08 i #4598 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tarot/tarot.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tarot.hangul.md.pdf }
00:00:08 v #4599 ! 10:54:13 [DEBUG] (1) epub_builder::epub: Add resource: "stylesheet.css"
00:00:08 v #4600 ! 10:54:13 [DEBUG] (1) epub_builder::epub: render_opf...
00:00:08 d #4601 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tarot.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/tarot/tarot.hangul.md.pdf; result = 8973 }
00:00:08 v #4602 ! 10:54:13 [DEBUG] (1) epub_builder::epub: id="title_page.xhtml", mime="application/xhtml+xml"
00:00:08 v #4603 ! 10:54:13 [DEBUG] (1) epub_builder::epub: content = Content { file: "title_page.xhtml", mime: "application/xhtml+xml", itemref: true, cover: false, reftype: Some(TitlePage), title: "Title" }
00:00:08 v #4604 ! 10:54:13 [DEBUG] (1) epub_builder::epub: id="chapter_000.xhtml", mime="application/xhtml+xml"
00:00:08 v #4605 ! 10:54:13 [DEBUG] (1) epub_builder::epub: content = Content { file: "chapter_000.xhtml", mime: "application/xhtml+xml", itemref: true, cover: false, reftype: Some(Text), title: "" }
00:00:08 v #4606 ! 10:54:13 [DEBUG] (1) epub_builder::epub: id="stylesheet.css", mime="text/css"
00:00:08 i #4607 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tarot/tarot.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tarot.hangul.md.html }
00:00:08 v #4608 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 v #4609 ! 10:54:13 [DEBUG] (1) epub_builder::toc: rendered elem: "<li><a href=\"title_page.xhtml\">Title</a></li>"
00:00:08 d #4610 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tarot.hangul.md.html; new_path = c:/home/git/vault/dist/data/tarot/tarot.hangul.md.html; result = 28941 }
00:00:08 i #4611 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tarot/tarot.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tarot.md.epub }
00:00:08 d #4612 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tarot.md.epub; new_path = c:/home/git/vault/dist/data/tarot/tarot.md.epub; result = 8601 }
00:00:08 d #4613 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/religion/religion.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/religion/religion.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 i #4614 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tarot/tarot.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tarot.md.pdf }
00:00:08 d #4615 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tarot.md.pdf; new_path = c:/home/git/vault/dist/data/tarot/tarot.md.pdf; result = 24161 }
00:00:08 i #4616 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tarot/tarot.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tarot.md.html }
00:00:08 d #4617 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tarot.md.html; new_path = c:/home/git/vault/dist/data/tarot/tarot.md.html; result = 23831 }
00:00:08 v #4618 > 'ce9b990b441bbf282d3a181c9f07e2ce7c0a9b24'
00:00:08 i #4619 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tarot/tarot.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tarot.hangul.md }
00:00:08 d #4620 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tarot.hangul.md; new_path = c:/home/git/vault/dist/data/tarot/tarot.hangul.md; result = 13792 }
00:00:08 d #4621 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/tarot/tarot.png.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/tarot/tarot.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 v #4622 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 d #4623 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/tech/tech.epub.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/tech/tech.epub.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 v #4624 > 433ed8d4b7b7738e64d0c29b97820213654a6125
00:00:08 v #4625 > 'f62a266ecd504e3ac125c4bce1699e040ea49c9f'
00:00:08 v #4626 > baec1a692d0f1fd4592a8a7e32f592a963acdd9f
00:00:08 v #4627 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 v #4628 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:08 i #4629 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/trakt/trakt.i574n.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\trakt.i574n.hangul.md.epub }
00:00:08 d #4630 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\trakt.i574n.hangul.md.epub; new_path = c:/home/git/vault/dist/data/trakt/trakt.i574n.hangul.md.epub; result = 5501 }
00:00:08 i #4631 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/trakt/trakt.i574n.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\trakt.i574n.hangul.md.pdf }
00:00:08 d #4632 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/travel/travel.i574n.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/travel/travel.i574n.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:08 d #4633 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\trakt.i574n.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/trakt/trakt.i574n.hangul.md.pdf; result = 4136 }
00:00:08 i #4634 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/trakt/trakt.i574n.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\trakt.i574n.hangul.md.html }
00:00:08 d #4635 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\trakt.i574n.hangul.md.html; new_path = c:/home/git/vault/dist/data/trakt/trakt.i574n.hangul.md.html; result = 10078 }
00:00:08 i #4636 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/trakt/trakt.i574n.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\trakt.i574n.md.epub }
00:00:08 d #4637 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\trakt.i574n.md.epub; new_path = c:/home/git/vault/dist/data/trakt/trakt.i574n.md.epub; result = 5441 }
00:00:08 i #4638 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/trakt/trakt.i574n.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\trakt.i574n.md.pdf }
00:00:08 d #4639 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\trakt.i574n.md.pdf; new_path = c:/home/git/vault/dist/data/trakt/trakt.i574n.md.pdf; result = 5837 }
00:00:08 i #4640 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/trakt/trakt.i574n.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\trakt.i574n.md.html }
00:00:08 d #4641 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\trakt.i574n.md.html; new_path = c:/home/git/vault/dist/data/trakt/trakt.i574n.md.html; result = 10048 }
00:00:08 i #4642 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/trakt/trakt.i574n.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\trakt.i574n.hangul.md }
00:00:08 d #4643 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\trakt.i574n.hangul.md; new_path = c:/home/git/vault/dist/data/trakt/trakt.i574n.hangul.md; result = 98 }
00:00:08 d #4644 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/travel/maps.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/travel/maps.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:08 v #4645 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:08 i #4646 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.mp3.hangul.md.epub }
00:00:08 d #4647 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/sex/sex.mp3.hangul.md.epub; result = 5769 }
00:00:08 i #4648 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.mp3.hangul.md.pdf }
00:00:08 d #4649 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/sex/sex.mp3.hangul.md.pdf; result = 3974 }
00:00:08 i #4650 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.mp3.hangul.md.html }
00:00:08 d #4651 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/sex/sex.mp3.hangul.md.html; result = 10645 }
00:00:08 i #4652 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.mp3.md.epub }
00:00:08 d #4653 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.mp3.md.epub; new_path = c:/home/git/vault/dist/data/sex/sex.mp3.md.epub; result = 5606 }
00:00:08 i #4654 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.mp3.md.pdf }
00:00:08 d #4655 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/sex/sex.mp3.md.pdf; result = 8600 }
00:00:08 i #4656 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.mp3.md.html }
00:00:08 d #4657 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.mp3.md.html; new_path = c:/home/git/vault/dist/data/sex/sex.mp3.md.html; result = 10320 }
00:00:08 i #4658 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.mp3.hangul.md }
00:00:08 d #4659 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/sex/sex.mp3.hangul.md; result = 674 }
00:00:08 d #4660 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/sex/sex.pdf.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/sex/sex.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:09 v #4661 > 327b6216ba5a5c1f5d833a2fc534e1ffcb73ae4a
00:00:09 v #4662 > '2d97fefeab8e7ffa5f55735db347b2e66256a5ab'
00:00:09 v #4663 > ce9b990b441bbf282d3a181c9f07e2ce7c0a9b24
00:00:09 v #4664 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 i #4665 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/religion.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\religion.hangul.md.epub }
00:00:09 d #4666 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\religion.hangul.md.epub; new_path = c:/home/git/vault/dist/data/religion/religion.hangul.md.epub; result = 72062 }
00:00:09 i #4667 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/religion.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\religion.hangul.md.pdf }
00:00:09 d #4668 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\religion.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/religion/religion.hangul.md.pdf; result = 98482 }
00:00:09 i #4669 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/religion.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\religion.hangul.md.html }
00:00:09 d #4670 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\religion.hangul.md.html; new_path = c:/home/git/vault/dist/data/religion/religion.hangul.md.html; result = 321854 }
00:00:09 i #4671 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/religion.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\religion.md.epub }
00:00:09 v #4672 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 d #4673 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\religion.md.epub; new_path = c:/home/git/vault/dist/data/religion/religion.md.epub; result = 64504 }
00:00:09 i #4674 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/religion.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\religion.md.pdf }
00:00:09 d #4675 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/tarot/tarot.png.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/tarot/tarot.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 v #4676 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 d #4677 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\religion.md.pdf; new_path = c:/home/git/vault/dist/data/religion/religion.md.pdf; result = 256055 }
00:00:09 i #4678 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/religion.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\religion.md.html }
00:00:09 i #4679 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.epub.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.epub.hangul.md.epub }
00:00:09 d #4680 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\religion.md.html; new_path = c:/home/git/vault/dist/data/religion/religion.md.html; result = 226791 }
00:00:09 i #4681 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/religion/religion.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\religion.hangul.md }
00:00:09 d #4682 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.epub.hangul.md.epub; new_path = c:/home/git/vault/dist/data/tech/tech.epub.hangul.md.epub; result = 5841 }
00:00:09 i #4683 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.epub.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.epub.hangul.md.pdf }
00:00:09 d #4684 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.epub.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/tech/tech.epub.hangul.md.pdf; result = 5372 }
00:00:09 d #4684 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\religion.hangul.md; new_path = c:/home/git/vault/dist/data/religion/religion.hangul.md; result = 270097 }
00:00:09 i #4686 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.epub.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.epub.hangul.md.html }
00:00:09 d #4687 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.epub.hangul.md.html; new_path = c:/home/git/vault/dist/data/tech/tech.epub.hangul.md.html; result = 10873 }
00:00:09 i #4688 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.epub.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.epub.md.epub }
00:00:09 v #4689 > f62a266ecd504e3ac125c4bce1699e040ea49c9f
00:00:09 d #4690 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.epub.md.epub; new_path = c:/home/git/vault/dist/data/tech/tech.epub.md.epub; result = 5684 }
00:00:09 d #4691 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/travel/travel.png.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/travel/travel.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:09 i #4692 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.epub.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.epub.md.pdf }
00:00:09 v #4693 > 'daf8c13f5f3fef473a3e956b4af9cadf20318223'
00:00:09 d #4694 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.epub.md.pdf; new_path = c:/home/git/vault/dist/data/tech/tech.epub.md.pdf; result = 11733 }
00:00:09 i #4695 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.epub.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.epub.md.html }
00:00:09 d #4696 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.epub.md.html; new_path = c:/home/git/vault/dist/data/tech/tech.epub.md.html; result = 10685 }
00:00:09 i #4697 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.epub.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.epub.hangul.md }
00:00:09 d #4698 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.epub.hangul.md; new_path = c:/home/git/vault/dist/data/tech/tech.epub.hangul.md; result = 791 }
00:00:09 d #4699 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/tech/tech.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/tech/tech.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:09 v #4700 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 v #4701 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 i #4702 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.i574n.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.html.hangul.md.epub }
00:00:09 d #4703 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/travel/maps.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/travel/maps.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 d #4704 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/travel/travel.i574n.html.hangul.md.epub; result = 5362 }
00:00:09 i #4705 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.i574n.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.html.hangul.md.pdf }
00:00:09 d #4706 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/travel/travel.i574n.html.hangul.md.pdf; result = 2203 }
00:00:09 i #4707 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.i574n.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.html.hangul.md.html }
00:00:09 d #4708 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/travel/travel.i574n.html.hangul.md.html; result = 9878 }
00:00:09 i #4709 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.i574n.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.html.md.epub }
00:00:09 d #4710 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.html.md.epub; new_path = c:/home/git/vault/dist/data/travel/travel.i574n.html.md.epub; result = 5363 }
00:00:09 i #4711 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.i574n.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.html.md.pdf }
00:00:09 d #4712 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.html.md.pdf; new_path = c:/home/git/vault/dist/data/travel/travel.i574n.html.md.pdf; result = 2204 }
00:00:09 i #4713 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.i574n.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.html.md.html }
00:00:09 d #4714 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.html.md.html; new_path = c:/home/git/vault/dist/data/travel/travel.i574n.html.md.html; result = 9878 }
00:00:09 i #4715 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.i574n.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.html.hangul.md }
00:00:09 d #4716 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.html.hangul.md; new_path = c:/home/git/vault/dist/data/travel/travel.i574n.html.hangul.md; result = 15 }
00:00:09 d #4717 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/travel/travel.i574n.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/travel/travel.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:09 v #4718 ! 10:54:13 [INFO] crowbook::book: Succesfully generated EPUB: data\spirituality\the-book-of-innocence_pt-br.hangul.md.epub
00:00:09 v #4719 > '51956f3580c89e1921acf278708d688e116e3f1b'
00:00:09 v #4720 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 3272 }
00:00:09 w #4721 documents.crowbook / result contains ERROR / { exit_code = 0; output_path = c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.hangul.md.epub; result = CROWBOOK 0.17.0
10:54:13 [ERROR] crowbook::book: Inline YAML block could not set String("치틀리") to String("우 리브루 다 이노센시아"): Error converting BookOption: unrecognized key '치틀리'
10:54:13 [DEBUG] (1) crowbook::book: Attempting to generate epub...
10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #콘테우두 or #콘테우두.md
10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #인트로두상-프레젠사-이-세르 or #인트로두상-프레젠사-이-세르.md
10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #파르치-이-이덴치다지 or #파르치-이-이덴치다지.md
10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #1-이우-소-코녜시두 or #1-이우-소-코녜시두.md
10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #2-메모리아 or #2-메모리아.md
10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #3-아-베르다지-두-세르 or #3-아-베르다지-두-세르.md
10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #4-헤콘실리아상 or #4-헤콘실리아상.md
10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #파르치-이-이노센시아 or #파르치-이-이노센시아.md
10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #5-알렝-두-페카두 or #5-알렝-두-페카두.md
10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #6-웅-문두-헤노바두 or #6-웅-문두-헤노바두.md
10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #7-멘치-베르다데이라 or #7-멘치-베르다데이라.md
10:54:13 [WARN] crowbook::resource_handler: Resources: could not find an in-book match for link #이필로구 or #이필로구.md
10:54:13 [DEBUG] (1) epub_builder::epub: Add resource: "stylesheet.css"
10:54:13 [DEBUG] (1) epub_builder::epub: render_opf...
10:54:13 [DEBUG] (1) epub_builder::epub: id="title_page.xhtml", mime="application/xhtml+xml"
10:54:13 [DEBUG] (1) epub_builder::epub: content = Content { file: "title_page.xhtml", mime: "application/xhtml+xml", itemref: true, cover: false, reftype: Some(TitlePage), title: "Title" }
10:54:13 [DEBUG] (1) epub_builder::epub: id="chapter_000.xhtml", mime="application/xhtml+xml"
10:54:13 [DEBUG] (1) epub_builder::epub: content = Content { file: "chapter_000.xhtml", mime: "application/xhtml+xml", itemref: true, cover: false, reftype: Some(Text), title: "" }
10:54:13 [DEBUG] (1) epub_builder::epub: id="stylesheet.css", mime="text/css"
10:54:13 [DEBUG] (1) epub_builder::toc: rendered elem: "<li><a href=\"title_page.xhtml\">Title</a></li>"
10:54:13 [INFO] crowbook::book: Succesfully generated EPUB: data\spirituality\the-book-of-innocence_pt-br.hangul.md.epub }
00:00:09 d #4722 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/tech/tech.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/tech/tech.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:09 v #4723 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 d #4724 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/sex/sex.pdf.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/sex/sex.pdf.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 v #4725 > 2d97fefeab8e7ffa5f55735db347b2e66256a5ab
00:00:09 v #4726 > 'b79898a204e337d6041af09f1180e9bb942a748f'
00:00:09 v #4727 > 'f6484cd8dfbe67b79ff014884bc0814b04524d8f'
00:00:09 v #4728 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 v #4729 > daf8c13f5f3fef473a3e956b4af9cadf20318223
00:00:09 v #4730 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 d #4731 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/travel/travel.png.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/travel/travel.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 i #4731 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tarot/tarot.png.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tarot.png.hangul.md.epub }
00:00:09 d #4733 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tarot.png.hangul.md.epub; new_path = c:/home/git/vault/dist/data/tarot/tarot.png.hangul.md.epub; result = 5607 }
00:00:09 i #4734 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tarot/tarot.png.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tarot.png.hangul.md.pdf }
00:00:09 d #4735 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tarot.png.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/tarot/tarot.png.hangul.md.pdf; result = 2203 }
00:00:09 i #4736 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tarot/tarot.png.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tarot.png.hangul.md.html }
00:00:09 d #4737 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tarot.png.hangul.md.html; new_path = c:/home/git/vault/dist/data/tarot/tarot.png.hangul.md.html; result = 10198 }
00:00:09 i #4738 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tarot/tarot.png.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tarot.png.md.epub }
00:00:09 d #4739 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tarot.png.md.epub; new_path = c:/home/git/vault/dist/data/tarot/tarot.png.md.epub; result = 5494 }
00:00:09 i #4740 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tarot/tarot.png.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tarot.png.md.pdf }
00:00:09 d #4741 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tarot.png.md.pdf; new_path = c:/home/git/vault/dist/data/tarot/tarot.png.md.pdf; result = 2205 }
00:00:09 i #4742 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tarot/tarot.png.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tarot.png.md.html }
00:00:09 v #4743 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 d #4744 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tarot.png.md.html; new_path = c:/home/git/vault/dist/data/tarot/tarot.png.md.html; result = 10083 }
00:00:09 i #4745 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tarot/tarot.png.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tarot.png.hangul.md }
00:00:09 d #4746 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tarot.png.hangul.md; new_path = c:/home/git/vault/dist/data/tarot/tarot.png.hangul.md; result = 259 }
00:00:09 v #4747 > '712d483c2c968e06911669449f9762c05719c90d'
00:00:09 d #4748 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/tech/tech.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/tech/tech.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 v #4749 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 i #4750 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.html.hangul.md.epub }
00:00:09 d #4751 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/tech/devilopment_pt-br.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/tech/devilopment_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:09 d #4752 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/travel/maps.html.hangul.md.epub; result = 5993 }
00:00:09 i #4753 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.html.hangul.md.pdf }
00:00:09 d #4754 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/travel/maps.html.hangul.md.pdf; result = 6239 }
00:00:09 i #4755 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.html.hangul.md.html }
00:00:09 d #4756 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/travel/maps.html.hangul.md.html; result = 12304 }
00:00:09 i #4757 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.html.md.epub }
00:00:09 d #4758 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.html.md.epub; new_path = c:/home/git/vault/dist/data/travel/maps.html.md.epub; result = 5913 }
00:00:09 i #4759 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.html.md.pdf }
00:00:09 d #4760 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.html.md.pdf; new_path = c:/home/git/vault/dist/data/travel/maps.html.md.pdf; result = 10862 }
00:00:09 i #4761 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.html.md.html }
00:00:09 v #4762 > 'dbd21ab4ac717628529cc164cd4fb958c4034b9e'
00:00:09 d #4763 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.html.md.html; new_path = c:/home/git/vault/dist/data/travel/maps.html.md.html; result = 13133 }
00:00:09 i #4764 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.html.hangul.md }
00:00:09 d #4765 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.html.hangul.md; new_path = c:/home/git/vault/dist/data/travel/maps.html.hangul.md; result = 1439 }
00:00:09 d #4766 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/travel/maps.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/travel/maps.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:09 v #4767 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 d #4768 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/travel/travel.i574n.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/travel/travel.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 v #4769 > 51956f3580c89e1921acf278708d688e116e3f1b
00:00:09 v #4770 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 d #4771 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/tech/tech.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/tech/tech.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 v #4772 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 i #4773 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.pdf.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.pdf.hangul.md.epub }
00:00:09 d #4774 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.pdf.hangul.md.epub; new_path = c:/home/git/vault/dist/data/sex/sex.pdf.hangul.md.epub; result = 5811 }
00:00:09 i #4775 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.pdf.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.pdf.hangul.md.pdf }
00:00:09 d #4776 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.pdf.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/sex/sex.pdf.hangul.md.pdf; result = 5119 }
00:00:09 i #4777 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.pdf.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.pdf.hangul.md.html }
00:00:09 d #4778 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.pdf.hangul.md.html; new_path = c:/home/git/vault/dist/data/sex/sex.pdf.hangul.md.html; result = 10897 }
00:00:09 i #4779 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.pdf.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.pdf.md.epub }
00:00:09 d #4780 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.pdf.md.epub; new_path = c:/home/git/vault/dist/data/sex/sex.pdf.md.epub; result = 5651 }
00:00:09 i #4781 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.pdf.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.pdf.md.pdf }
00:00:09 v #4782 > b79898a204e337d6041af09f1180e9bb942a748f
00:00:09 d #4783 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.pdf.md.pdf; new_path = c:/home/git/vault/dist/data/sex/sex.pdf.md.pdf; result = 8529 }
00:00:09 i #4784 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.pdf.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.pdf.md.html }
00:00:09 d #4785 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.pdf.md.html; new_path = c:/home/git/vault/dist/data/sex/sex.pdf.md.html; result = 10593 }
00:00:09 i #4786 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/sex/sex.pdf.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\sex.pdf.hangul.md }
00:00:09 d #4787 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\sex.pdf.hangul.md; new_path = c:/home/git/vault/dist/data/sex/sex.pdf.hangul.md; result = 820 }
00:00:09 d #4788 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/spiral/spiral.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/spiral/spiral.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:09 v #4789 > f6484cd8dfbe67b79ff014884bc0814b04524d8f
00:00:09 v #4790 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 i #4791 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.png.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.png.hangul.md.epub }
00:00:09 v #4792 > '2cd8a3611d7dca4b0dcd9d90df384a74128467d6'
00:00:09 d #4793 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.png.hangul.md.epub; new_path = c:/home/git/vault/dist/data/travel/travel.png.hangul.md.epub; result = 6296 }
00:00:09 i #4794 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.png.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.png.hangul.md.pdf }
00:00:09 d #4795 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.png.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/travel/travel.png.hangul.md.pdf; result = 2205 }
00:00:09 i #4796 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.png.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.png.hangul.md.html }
00:00:09 d #4797 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.png.hangul.md.html; new_path = c:/home/git/vault/dist/data/travel/travel.png.hangul.md.html; result = 14526 }
00:00:09 i #4798 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.png.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.png.md.epub }
00:00:09 d #4799 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.png.md.epub; new_path = c:/home/git/vault/dist/data/travel/travel.png.md.epub; result = 6044 }
00:00:09 i #4800 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.png.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.png.md.pdf }
00:00:09 v #4801 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 d #4802 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.png.md.pdf; new_path = c:/home/git/vault/dist/data/travel/travel.png.md.pdf; result = 2202 }
00:00:09 i #4803 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.png.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.png.md.html }
00:00:09 d #4804 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.png.md.html; new_path = c:/home/git/vault/dist/data/travel/travel.png.md.html; result = 12932 }
00:00:09 i #4805 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.png.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.png.hangul.md }
00:00:09 i #4806 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.html.hangul.md.epub }
00:00:09 d #4807 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.png.hangul.md; new_path = c:/home/git/vault/dist/data/travel/travel.png.hangul.md; result = 4067 }
00:00:09 d #4808 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/tech/tech.html.hangul.md.epub; result = 5743 }
00:00:09 i #4809 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.html.hangul.md.pdf }
00:00:09 d #4810 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/tech/tech.html.hangul.md.pdf; result = 5098 }
00:00:09 i #4811 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.html.hangul.md.html }
00:00:09 d #4812 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/tech/tech.html.hangul.md.html; result = 11790 }
00:00:09 d #4813 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/twitter/twitter.fc1943s.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/twitter/twitter.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:09 i #4814 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.html.md.epub }
00:00:09 v #4815 > 712d483c2c968e06911669449f9762c05719c90d
00:00:09 d #4816 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.html.md.epub; new_path = c:/home/git/vault/dist/data/tech/tech.html.md.epub; result = 5604 }
00:00:09 i #4817 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.html.md.pdf }
00:00:09 d #4818 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.html.md.pdf; new_path = c:/home/git/vault/dist/data/tech/tech.html.md.pdf; result = 7847 }
00:00:09 v #4819 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 i #4820 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.html.md.html }
00:00:09 d #4821 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.html.md.html; new_path = c:/home/git/vault/dist/data/tech/tech.html.md.html; result = 11467 }
00:00:09 i #4822 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.html.hangul.md }
00:00:09 d #4823 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/tech/devilopment_pt-br.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/tech/devilopment_pt-br.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 d #4824 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.html.hangul.md; new_path = c:/home/git/vault/dist/data/tech/tech.html.hangul.md; result = 1180 }
00:00:09 v #4825 > 'd3de83b9d0a0577cf26f194c7adad8192d14da8b'
00:00:09 d #4826 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/travel/travel.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/travel/travel.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:09 v #4827 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 v #4828 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 d #4829 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/travel/maps.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/travel/maps.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 i #4830 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.i574n.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.hangul.md.epub }
00:00:09 d #4831 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.hangul.md.epub; new_path = c:/home/git/vault/dist/data/travel/travel.i574n.hangul.md.epub; result = 10180 }
00:00:09 i #4832 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.i574n.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.hangul.md.html }
00:00:09 d #4833 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.hangul.md.html; new_path = c:/home/git/vault/dist/data/travel/travel.i574n.hangul.md.html; result = 27037 }
00:00:09 i #4834 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.i574n.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.md.epub }
00:00:09 d #4835 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.md.epub; new_path = c:/home/git/vault/dist/data/travel/travel.i574n.md.epub; result = 9597 }
00:00:09 i #4836 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.i574n.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.md.html }
00:00:09 d #4837 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.md.html; new_path = c:/home/git/vault/dist/data/travel/travel.i574n.md.html; result = 22977 }
00:00:09 i #4838 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.i574n.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.hangul.md }
00:00:09 v #4839 > dbd21ab4ac717628529cc164cd4fb958c4034b9e
00:00:09 d #4840 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.i574n.hangul.md; new_path = c:/home/git/vault/dist/data/travel/travel.i574n.hangul.md; result = 13840 }
00:00:09 d #4841 runtime.execute_with_options / { file_name = crowbook; arguments = ["--verbose", "--to", "pdf", "--single", "c:/home/git/vault/dist/data/travel/travel.i574n.md", "--output", "c:/home/git/vault/dist/data/travel/travel.i574n.md.pdf", "--set", "tex.paper.size", "a4paper", "tex.template.add", "\\pagenumbering{gobble}", "rendering.num_depth", "6", "rendering.highlight.theme", "Solarized (dark)"]; options = { command = crowbook --verbose --to pdf --single "c:/home/git/vault/dist/data/travel/travel.i574n.md" --output "c:/home/git/vault/dist/data/travel/travel.i574n.md.pdf" --set tex.paper.size a4paper tex.template.add "\pagenumbering{gobble}" rendering.num_depth 6 rendering.highlight.theme \"Solarized (dark)\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 v #4842 ! CROWBOOK 0.17.0
00:00:09 v #4843 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 v #4844 ! 10:54:13 [DEBUG] (1) crowbook::book: Ignoring YAML block:
00:00:09 v #4845 !
00:00:09 v #4846 ! 10:54:13 [DEBUG] (1) crowbook::book: Attempting to generate pdf...
00:00:09 i #4847 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.hangul.md.epub }
00:00:09 v #4848 ! 10:54:13 [DEBUG] (1) crowbook::latex: Attempting to run LaTeX on generated file
00:00:09 d #4849 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.hangul.md.epub; new_path = c:/home/git/vault/dist/data/tech/tech.hangul.md.epub; result = 53889 }
00:00:09 i #4850 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.hangul.md.pdf }
00:00:09 d #4851 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/tech/tech.hangul.md.pdf; result = 69457 }
00:00:09 i #4852 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.hangul.md.html }
00:00:09 d #4853 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.hangul.md.html; new_path = c:/home/git/vault/dist/data/tech/tech.hangul.md.html; result = 241674 }
00:00:09 i #4854 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.md.epub }
00:00:09 d #4855 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.md.epub; new_path = c:/home/git/vault/dist/data/tech/tech.md.epub; result = 47893 }
00:00:09 i #4856 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.md.pdf }
00:00:09 d #4857 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.md.pdf; new_path = c:/home/git/vault/dist/data/tech/tech.md.pdf; result = 183036 }
00:00:09 i #4858 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.md.html }
00:00:09 d #4859 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.md.html; new_path = c:/home/git/vault/dist/data/tech/tech.md.html; result = 167600 }
00:00:09 i #4860 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.hangul.md }
00:00:09 d #4861 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.hangul.md; new_path = c:/home/git/vault/dist/data/tech/tech.hangul.md; result = 198404 }
00:00:09 d #4862 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/tech/tech.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/tech/tech.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:09 v #4863 > '9221f70d039b313ba746570ae387c6327e437490'
00:00:09 v #4864 > 2cd8a3611d7dca4b0dcd9d90df384a74128467d6
00:00:09 v #4865 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 d #4866 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/spiral/spiral.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/spiral/spiral.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 v #4867 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 i #4868 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/devilopment_pt-br.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\devilopment_pt-br.hangul.md.epub }
00:00:09 v #4869 > d3de83b9d0a0577cf26f194c7adad8192d14da8b
00:00:09 v #4870 > 'c325341c0da447957840c68bfae7175d63d047d8'
00:00:09 d #4871 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\devilopment_pt-br.hangul.md.epub; new_path = c:/home/git/vault/dist/data/tech/devilopment_pt-br.hangul.md.epub; result = 85747 }
00:00:09 i #4872 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/devilopment_pt-br.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\devilopment_pt-br.hangul.md.pdf }
00:00:09 v #4873 > '25e72ff235ebd8e4660d7ff3fc112cecd828b9ac'
00:00:09 d #4874 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\devilopment_pt-br.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/tech/devilopment_pt-br.hangul.md.pdf; result = 85914 }
00:00:09 i #4875 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/devilopment_pt-br.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\devilopment_pt-br.hangul.md.html }
00:00:09 d #4876 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\devilopment_pt-br.hangul.md.html; new_path = c:/home/git/vault/dist/data/tech/devilopment_pt-br.hangul.md.html; result = 346771 }
00:00:09 i #4877 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/devilopment_pt-br.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\devilopment_pt-br.md.epub }
00:00:09 d #4878 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\devilopment_pt-br.md.epub; new_path = c:/home/git/vault/dist/data/tech/devilopment_pt-br.md.epub; result = 74774 }
00:00:09 i #4879 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/devilopment_pt-br.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\devilopment_pt-br.md.pdf }
00:00:09 d #4880 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\devilopment_pt-br.md.pdf; new_path = c:/home/git/vault/dist/data/tech/devilopment_pt-br.md.pdf; result = 263658 }
00:00:09 i #4881 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/devilopment_pt-br.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\devilopment_pt-br.md.html }
00:00:09 d #4882 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\devilopment_pt-br.md.html; new_path = c:/home/git/vault/dist/data/tech/devilopment_pt-br.md.html; result = 235095 }
00:00:09 i #4883 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/devilopment_pt-br.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\devilopment_pt-br.hangul.md }
00:00:09 d #4884 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\devilopment_pt-br.hangul.md; new_path = c:/home/git/vault/dist/data/tech/devilopment_pt-br.hangul.md; result = 323167 }
00:00:09 v #4885 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 d #4886 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/travel/travel.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/travel/travel.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 d #4887 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/travel/north korea.png.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/travel/north korea.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:09 v #4888 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 v #4889 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 i #4890 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.hangul.md.epub }
00:00:09 d #4891 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/twitter/twitter.fc1943s.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/twitter/twitter.fc1943s.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 d #4892 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.hangul.md.epub; new_path = c:/home/git/vault/dist/data/travel/maps.hangul.md.epub; result = 8554 }
00:00:09 i #4893 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.hangul.md.pdf }
00:00:09 d #4894 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/travel/maps.hangul.md.pdf; result = 11793 }
00:00:09 i #4895 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.hangul.md.html }
00:00:09 d #4896 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.hangul.md.html; new_path = c:/home/git/vault/dist/data/travel/maps.hangul.md.html; result = 27046 }
00:00:09 i #4897 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.md.epub }
00:00:09 d #4898 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.md.epub; new_path = c:/home/git/vault/dist/data/travel/maps.md.epub; result = 8072 }
00:00:09 i #4899 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.md.pdf }
00:00:09 d #4900 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.md.pdf; new_path = c:/home/git/vault/dist/data/travel/maps.md.pdf; result = 26462 }
00:00:09 i #4901 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.md.html }
00:00:09 d #4902 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.md.html; new_path = c:/home/git/vault/dist/data/travel/maps.md.html; result = 23119 }
00:00:09 i #4903 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.hangul.md }
00:00:09 d #4904 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.hangul.md; new_path = c:/home/git/vault/dist/data/travel/maps.hangul.md; result = 10495 }
00:00:09 d #4905 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/travel/maps.png.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/travel/maps.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:09 v #4906 > '4bf711ead74e2dd67aa74d62261c165a741a2013'
00:00:09 v #4907 > 9221f70d039b313ba746570ae387c6327e437490
00:00:09 v #4908 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 v #4909 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 i #4910 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spiral/spiral.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spiral.html.hangul.md.epub }
00:00:09 d #4911 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spiral.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/spiral/spiral.html.hangul.md.epub; result = 5536 }
00:00:09 i #4912 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spiral/spiral.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spiral.html.hangul.md.pdf }
00:00:09 d #4913 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/tech/tech.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/tech/tech.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 d #4914 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spiral.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/spiral/spiral.html.hangul.md.pdf; result = 3815 }
00:00:09 i #4915 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spiral/spiral.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spiral.html.hangul.md.html }
00:00:09 d #4916 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spiral.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/spiral/spiral.html.hangul.md.html; result = 10126 }
00:00:09 i #4917 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spiral/spiral.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spiral.html.md.epub }
00:00:09 d #4918 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spiral.html.md.epub; new_path = c:/home/git/vault/dist/data/spiral/spiral.html.md.epub; result = 5459 }
00:00:09 i #4919 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spiral/spiral.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spiral.html.md.pdf }
00:00:09 d #4920 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spiral.html.md.pdf; new_path = c:/home/git/vault/dist/data/spiral/spiral.html.md.pdf; result = 6191 }
00:00:09 i #4921 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spiral/spiral.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spiral.html.md.html }
00:00:09 d #4922 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spiral.html.md.html; new_path = c:/home/git/vault/dist/data/spiral/spiral.html.md.html; result = 10082 }
00:00:09 i #4923 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/spiral/spiral.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\spiral.html.hangul.md }
00:00:09 d #4924 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\spiral.html.hangul.md; new_path = c:/home/git/vault/dist/data/spiral/spiral.html.hangul.md; result = 159 }
00:00:09 d #4925 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/twitter/twitter.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/twitter/twitter.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:09 v #4926 > 25e72ff235ebd8e4660d7ff3fc112cecd828b9ac
00:00:09 v #4927 > 'e3ef54d891d63ebc833646a1fd1659d77b054964'
00:00:09 v #4928 > c325341c0da447957840c68bfae7175d63d047d8
00:00:09 v #4929 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 v #4930 > 'f3b56b85c461b6c7b4621c4867b4a3d000577ca1'
00:00:09 i #4931 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.fc1943s.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.fc1943s.hangul.md.epub }
00:00:09 d #4932 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.fc1943s.hangul.md.epub; new_path = c:/home/git/vault/dist/data/twitter/twitter.fc1943s.hangul.md.epub; result = 5514 }
00:00:09 i #4933 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.fc1943s.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.fc1943s.hangul.md.pdf }
00:00:09 d #4934 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.fc1943s.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/twitter/twitter.fc1943s.hangul.md.pdf; result = 4530 }
00:00:09 i #4935 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.fc1943s.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.fc1943s.hangul.md.html }
00:00:09 d #4936 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.fc1943s.hangul.md.html; new_path = c:/home/git/vault/dist/data/twitter/twitter.fc1943s.hangul.md.html; result = 10086 }
00:00:09 i #4937 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.fc1943s.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.fc1943s.md.epub }
00:00:09 v #4938 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 d #4939 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.fc1943s.md.epub; new_path = c:/home/git/vault/dist/data/twitter/twitter.fc1943s.md.epub; result = 5449 }
00:00:09 i #4940 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.fc1943s.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.fc1943s.md.pdf }
00:00:09 d #4941 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.fc1943s.md.pdf; new_path = c:/home/git/vault/dist/data/twitter/twitter.fc1943s.md.pdf; result = 6271 }
00:00:09 d #4942 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/travel/north korea.png.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/travel/north korea.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 i #4943 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.fc1943s.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.fc1943s.md.html }
00:00:09 d #4944 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.fc1943s.md.html; new_path = c:/home/git/vault/dist/data/twitter/twitter.fc1943s.md.html; result = 10057 }
00:00:09 i #4945 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.fc1943s.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.fc1943s.hangul.md }
00:00:09 v #4946 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 d #4947 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.fc1943s.hangul.md; new_path = c:/home/git/vault/dist/data/twitter/twitter.fc1943s.hangul.md; result = 106 }
00:00:09 i #4948 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.hangul.md.epub }
00:00:09 d #4949 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/travel/travel.html.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/travel/travel.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:09 d #4950 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.hangul.md.epub; new_path = c:/home/git/vault/dist/data/travel/travel.hangul.md.epub; result = 373683 }
00:00:09 i #4951 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.hangul.md.pdf }
00:00:09 v #4952 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 d #4953 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/travel/travel.hangul.md.pdf; result = 558482 }
00:00:09 i #4954 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.hangul.md.html }
00:00:09 d #4955 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/travel/maps.png.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/travel/maps.png.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 d #4956 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.hangul.md.html; new_path = c:/home/git/vault/dist/data/travel/travel.hangul.md.html; result = 2036466 }
00:00:09 i #4957 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.md.epub }
00:00:09 d #4958 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.md.epub; new_path = c:/home/git/vault/dist/data/travel/travel.md.epub; result = 331353 }
00:00:09 i #4959 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.md.pdf }
00:00:09 d #4960 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.md.pdf; new_path = c:/home/git/vault/dist/data/travel/travel.md.pdf; result = 1423058 }
00:00:09 i #4961 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.md.html }
00:00:09 d #4962 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.md.html; new_path = c:/home/git/vault/dist/data/travel/travel.md.html; result = 1385960 }
00:00:09 i #4963 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.hangul.md }
00:00:09 v #4964 > 4bf711ead74e2dd67aa74d62261c165a741a2013
00:00:09 d #4965 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.hangul.md; new_path = c:/home/git/vault/dist/data/travel/travel.hangul.md; result = 1753438 }
00:00:09 d #4966 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/travel/travel.mp3.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/travel/travel.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:09 v #4967 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 v #4968 > '8d36121d0438fe72874a830235019a6439569844'
00:00:09 i #4969 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.mp3.hangul.md.epub }
00:00:09 d #4970 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/tech/tech.mp3.hangul.md.epub; result = 7132 }
00:00:09 i #4971 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.mp3.hangul.md.pdf }
00:00:09 d #4972 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/tech/tech.mp3.hangul.md.pdf; result = 5418 }
00:00:09 i #4973 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.mp3.hangul.md.html }
00:00:09 d #4974 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/tech/tech.mp3.hangul.md.html; result = 16279 }
00:00:09 i #4975 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.mp3.md.epub }
00:00:09 d #4976 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.mp3.md.epub; new_path = c:/home/git/vault/dist/data/tech/tech.mp3.md.epub; result = 6643 }
00:00:09 i #4977 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.mp3.md.pdf }
00:00:09 d #4978 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/tech/tech.mp3.md.pdf; result = 12255 }
00:00:09 i #4979 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.mp3.md.html }
00:00:09 d #4980 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.mp3.md.html; new_path = c:/home/git/vault/dist/data/tech/tech.mp3.md.html; result = 13685 }
00:00:09 i #4981 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/tech/tech.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\tech.mp3.hangul.md }
00:00:09 d #4982 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\tech.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/tech/tech.mp3.hangul.md; result = 5704 }
00:00:09 v #4983 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 d #4984 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/twitter/twitter.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/twitter/twitter.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 d #4985 runtime.execute_with_options / { file_name = crowbook; arguments = ["--verbose", "--to", "pdf", "--single", "c:/home/git/vault/dist/data/travel/travel.i574n.hangul.md", "--output", "c:/home/git/vault/dist/data/travel/travel.i574n.hangul.md.pdf", "--set", "tex.paper.size", "a4paper", "tex.template.add", "\\pagenumbering{gobble}", "tex.template.add", "\\usepackage{polyglossia}", "tex.template.add", "\\setmainlanguage{korean}", "tex.template.add", "\\setmainfont{NanumGothicCoding}", "tex.font.size", "13", "rendering.num_depth", "6", "rendering.highlight.theme", "Solarized (dark)"]; options = { command = crowbook --verbose --to pdf --single "c:/home/git/vault/dist/data/travel/travel.i574n.hangul.md" --output "c:/home/git/vault/dist/data/travel/travel.i574n.hangul.md.pdf" --set tex.paper.size a4paper tex.template.add "\pagenumbering{gobble}" tex.template.add "\usepackage{polyglossia}" tex.template.add "\setmainlanguage{korean}" tex.template.add "\setmainfont{NanumGothicCoding}" tex.font.size 13 rendering.num_depth 6 rendering.highlight.theme \"Solarized (dark)\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 v #4986 > e3ef54d891d63ebc833646a1fd1659d77b054964
00:00:09 v #4987 ! CROWBOOK 0.17.0
00:00:09 v #4988 > '6276e35c0a0b5b4a95f352dfca27a1785e05caa6'
00:00:09 v #4989 ! 10:54:14 [DEBUG] (1) crowbook::book: Ignoring YAML block:
00:00:09 v #4990 !
00:00:09 v #4991 ! 10:54:14 [DEBUG] (1) crowbook::book: Attempting to generate pdf...
00:00:09 v #4992 ! 10:54:14 [DEBUG] (1) crowbook::latex: Attempting to run LaTeX on generated file
00:00:09 v #4993 > f3b56b85c461b6c7b4621c4867b4a3d000577ca1
00:00:09 v #4994 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 i #4995 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/north korea.png.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\north korea.png.hangul.md.epub }
00:00:09 d #4996 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\north korea.png.hangul.md.epub; new_path = c:/home/git/vault/dist/data/travel/north korea.png.hangul.md.epub; result = 6121 }
00:00:09 v #4997 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 i #4998 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/north korea.png.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\north korea.png.hangul.md.pdf }
00:00:09 d #4999 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\north korea.png.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/travel/north korea.png.hangul.md.pdf; result = 3913 }
00:00:09 i #5000 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/north korea.png.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\north korea.png.hangul.md.html }
00:00:09 d #5001 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/travel/travel.html.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/travel/travel.html.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 d #5002 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\north korea.png.hangul.md.html; new_path = c:/home/git/vault/dist/data/travel/north korea.png.hangul.md.html; result = 13391 }
00:00:09 i #5003 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/north korea.png.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\north korea.png.md.epub }
00:00:09 d #5004 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\north korea.png.md.epub; new_path = c:/home/git/vault/dist/data/travel/north korea.png.md.epub; result = 5893 }
00:00:09 i #5005 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/north korea.png.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\north korea.png.md.pdf }
00:00:09 d #5006 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\north korea.png.md.pdf; new_path = c:/home/git/vault/dist/data/travel/north korea.png.md.pdf; result = 4740 }
00:00:09 i #5007 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/north korea.png.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\north korea.png.md.html }
00:00:09 d #5008 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\north korea.png.md.html; new_path = c:/home/git/vault/dist/data/travel/north korea.png.md.html; result = 12168 }
00:00:09 v #5009 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 i #5010 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/north korea.png.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\north korea.png.hangul.md }
00:00:09 d #5011 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\north korea.png.hangul.md; new_path = c:/home/git/vault/dist/data/travel/north korea.png.hangul.md; result = 2978 }
00:00:09 i #5012 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.png.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.png.hangul.md.epub }
00:00:09 d #5013 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.png.hangul.md.epub; new_path = c:/home/git/vault/dist/data/travel/maps.png.hangul.md.epub; result = 9406 }
00:00:09 i #5014 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.png.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.png.hangul.md.pdf }
00:00:09 d #5015 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.png.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/travel/maps.png.hangul.md.pdf; result = 2204 }
00:00:09 i #5016 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.png.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.png.hangul.md.html }
00:00:09 d #5017 runtime.execute_with_options / { file_name = git; arguments = ["ls-tree", "--format='%(objectname)'", "origin/gh-pages", "c:/home/git/vault/data/twitter/twitter.i574n.md"]; options = { command = git ls-tree --format='%(objectname)' origin/gh-pages "c:/home/git/vault/data/twitter/twitter.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault",
) } }
00:00:09 d #5018 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.png.hangul.md.html; new_path = c:/home/git/vault/dist/data/travel/maps.png.hangul.md.html; result = 77796 }
00:00:09 i #5019 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.png.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.png.md.epub }
00:00:09 v #5020 > 'ee4e487f06a56378569d0291de3224bd0b350da5'
00:00:09 d #5021 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.png.md.epub; new_path = c:/home/git/vault/dist/data/travel/maps.png.md.epub; result = 8596 }
00:00:09 i #5022 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.png.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.png.md.pdf }
00:00:09 d #5023 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.png.md.pdf; new_path = c:/home/git/vault/dist/data/travel/maps.png.md.pdf; result = 2202 }
00:00:09 i #5024 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.png.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.png.md.html }
00:00:09 d #5025 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.png.md.html; new_path = c:/home/git/vault/dist/data/travel/maps.png.md.html; result = 56185 }
00:00:09 i #5026 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/maps.png.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\maps.png.hangul.md }
00:00:09 d #5027 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\maps.png.hangul.md; new_path = c:/home/git/vault/dist/data/travel/maps.png.hangul.md; result = 59559 }
00:00:09 v #5028 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 d #5029 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/travel/travel.mp3.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/travel/travel.mp3.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 v #5030 > 8d36121d0438fe72874a830235019a6439569844
00:00:09 v #5031 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 i #5032 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.html.hangul.md.epub }
00:00:09 d #5033 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/twitter/twitter.html.hangul.md.epub; result = 5507 }
00:00:09 i #5034 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.html.hangul.md.pdf }
00:00:09 d #5035 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/twitter/twitter.html.hangul.md.pdf; result = 3730 }
00:00:09 i #5036 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.html.hangul.md.html }
00:00:09 d #5037 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/twitter/twitter.html.hangul.md.html; result = 10086 }
00:00:09 i #5038 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.html.md.epub }
00:00:09 d #5039 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.html.md.epub; new_path = c:/home/git/vault/dist/data/twitter/twitter.html.md.epub; result = 5441 }
00:00:09 i #5040 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.html.md.pdf }
00:00:09 d #5041 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.html.md.pdf; new_path = c:/home/git/vault/dist/data/twitter/twitter.html.md.pdf; result = 5949 }
00:00:09 i #5042 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.html.md.html }
00:00:09 d #5043 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.html.md.html; new_path = c:/home/git/vault/dist/data/twitter/twitter.html.md.html; result = 10056 }
00:00:09 i #5044 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.html.hangul.md }
00:00:09 d #5045 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.html.hangul.md; new_path = c:/home/git/vault/dist/data/twitter/twitter.html.hangul.md; result = 119 }
00:00:09 v #5046 > 6276e35c0a0b5b4a95f352dfca27a1785e05caa6
00:00:09 v #5047 > 'b8e95fd70a82e930b1d8f6fad237e7cb3e35bd35'
00:00:09 v #5048 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 i #5049 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.html.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.html.hangul.md.epub }
00:00:09 v #5050 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 42 }
00:00:09 d #5051 runtime.execute_with_options / { file_name = git; arguments = ["hash-object", "c:/home/git/vault/dist/data/twitter/twitter.i574n.md"]; options = { command = git hash-object "c:/home/git/vault/dist/data/twitter/twitter.i574n.md"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = Some(
    "\\?\C:\home\git\vault\dist",
) } }
00:00:09 d #5052 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.html.hangul.md.epub; new_path = c:/home/git/vault/dist/data/travel/travel.html.hangul.md.epub; result = 5876 }
00:00:09 i #5053 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.html.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.html.hangul.md.pdf }
00:00:09 v #5054 > ee4e487f06a56378569d0291de3224bd0b350da5
00:00:09 d #5055 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.html.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/travel/travel.html.hangul.md.pdf; result = 4975 }
00:00:09 i #5056 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.html.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.html.hangul.md.html }
00:00:09 d #5057 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.html.hangul.md.html; new_path = c:/home/git/vault/dist/data/travel/travel.html.hangul.md.html; result = 11687 }
00:00:09 i #5058 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.html.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.html.md.epub }
00:00:09 d #5059 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.html.md.epub; new_path = c:/home/git/vault/dist/data/travel/travel.html.md.epub; result = 5690 }
00:00:09 i #5060 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.html.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.html.md.pdf }
00:00:09 d #5061 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.html.md.pdf; new_path = c:/home/git/vault/dist/data/travel/travel.html.md.pdf; result = 8238 }
00:00:09 i #5062 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.html.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.html.md.html }
00:00:09 d #5063 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.html.md.html; new_path = c:/home/git/vault/dist/data/travel/travel.html.md.html; result = 11300 }
00:00:09 i #5064 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.html.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.html.hangul.md }
00:00:09 d #5065 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.html.hangul.md; new_path = c:/home/git/vault/dist/data/travel/travel.html.hangul.md; result = 1231 }
00:00:09 v #5066 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 i #5067 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.mp3.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.mp3.hangul.md.epub }
00:00:09 d #5068 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.mp3.hangul.md.epub; new_path = c:/home/git/vault/dist/data/travel/travel.mp3.hangul.md.epub; result = 5624 }
00:00:09 i #5069 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.mp3.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.mp3.hangul.md.pdf }
00:00:09 d #5070 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.mp3.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/travel/travel.mp3.hangul.md.pdf; result = 4028 }
00:00:09 i #5071 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.mp3.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.mp3.hangul.md.html }
00:00:09 d #5072 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.mp3.hangul.md.html; new_path = c:/home/git/vault/dist/data/travel/travel.mp3.hangul.md.html; result = 10220 }
00:00:09 i #5073 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.mp3.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.mp3.md.epub }
00:00:09 d #5074 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.mp3.md.epub; new_path = c:/home/git/vault/dist/data/travel/travel.mp3.md.epub; result = 5507 }
00:00:09 i #5075 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.mp3.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.mp3.md.pdf }
00:00:09 d #5076 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.mp3.md.pdf; new_path = c:/home/git/vault/dist/data/travel/travel.mp3.md.pdf; result = 7332 }
00:00:09 i #5077 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.mp3.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.mp3.md.html }
00:00:09 d #5078 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.mp3.md.html; new_path = c:/home/git/vault/dist/data/travel/travel.mp3.md.html; result = 10075 }
00:00:09 i #5079 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/travel/travel.mp3.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\travel.mp3.hangul.md }
00:00:09 d #5080 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\travel.mp3.hangul.md; new_path = c:/home/git/vault/dist/data/travel/travel.mp3.hangul.md; result = 296 }
00:00:09 v #5081 > b8e95fd70a82e930b1d8f6fad237e7cb3e35bd35
00:00:09 v #5082 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 40 }
00:00:09 i #5083 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.i574n.hangul.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.i574n.hangul.md.epub }
00:00:09 d #5084 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.i574n.hangul.md.epub; new_path = c:/home/git/vault/dist/data/twitter/twitter.i574n.hangul.md.epub; result = 5512 }
00:00:09 i #5085 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.i574n.hangul.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.i574n.hangul.md.pdf }
00:00:09 d #5086 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.i574n.hangul.md.pdf; new_path = c:/home/git/vault/dist/data/twitter/twitter.i574n.hangul.md.pdf; result = 4375 }
00:00:09 i #5087 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.i574n.hangul.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.i574n.hangul.md.html }
00:00:09 d #5088 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.i574n.hangul.md.html; new_path = c:/home/git/vault/dist/data/twitter/twitter.i574n.hangul.md.html; result = 10082 }
00:00:09 i #5089 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.i574n.md.epub; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.i574n.md.epub }
00:00:09 d #5090 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.i574n.md.epub; new_path = c:/home/git/vault/dist/data/twitter/twitter.i574n.md.epub; result = 5448 }
00:00:09 i #5091 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.i574n.md.pdf; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.i574n.md.pdf }
00:00:09 d #5092 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.i574n.md.pdf; new_path = c:/home/git/vault/dist/data/twitter/twitter.i574n.md.pdf; result = 6051 }
00:00:09 i #5093 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.i574n.md.html; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.i574n.md.html }
00:00:09 d #5094 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.i574n.md.html; new_path = c:/home/git/vault/dist/data/twitter/twitter.i574n.md.html; result = 10055 }
00:00:09 i #5095 documents.run / par_map / files' = [] / listm.iter / { output_path = c:/home/git/vault/dist/data/twitter/twitter.i574n.hangul.md; output_cache_path = \\?\C:\home\git\vault\target\gh-pages\twitter.i574n.hangul.md }
00:00:09 d #5096 file_system.file_copy / { old_path = \\?\C:\home\git\vault\target\gh-pages\twitter.i574n.hangul.md; new_path = c:/home/git/vault/dist/data/twitter/twitter.i574n.hangul.md; result = 102 }
00:00:13 v #5097 ! 10:54:17 [DEBUG] (1) crowbook::zipper: xelatex didn't return succesfully: xelatex: security risk: running with elevated privileges
00:00:13 v #5098 ! xelatex: major issue: So far, you have not checked for MiKTeX updates.
00:00:13 v #5099 !
00:00:13 v #5100 ! ERROR Error during temporary files editing: xelatex didn't return succesfully
00:00:13 v #5101 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 644 }
00:00:13 w #5102 documents.crowbook / result contains ERROR / { exit_code = 0; output_path = c:/home/git/vault/dist/data/travel/travel.i574n.md.pdf; result = CROWBOOK 0.17.0
10:54:13 [DEBUG] (1) crowbook::book: Ignoring YAML block:

10:54:13 [DEBUG] (1) crowbook::book: Attempting to generate pdf...
10:54:13 [DEBUG] (1) crowbook::latex: Attempting to run LaTeX on generated file
10:54:17 [DEBUG] (1) crowbook::zipper: xelatex didn't return succesfully: xelatex: security risk: running with elevated privileges
xelatex: major issue: So far, you have not checked for MiKTeX updates.

ERROR Error during temporary files editing: xelatex didn't return succesfully }
00:00:13 v #5103 ! 10:54:17 [DEBUG] (1) crowbook::zipper: xelatex didn't return succesfully: xelatex: security risk: running with elevated privileges
00:00:13 v #5104 ! xelatex: major issue: So far, you have not checked for MiKTeX updates.
00:00:13 v #5105 !
00:00:13 v #5106 ! ERROR Error during temporary files editing: xelatex didn't return succesfully
00:00:13 v #5107 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 644 }
00:00:13 w #5108 documents.crowbook / result contains ERROR / { exit_code = 0; output_path = c:/home/git/vault/dist/data/travel/travel.i574n.hangul.md.pdf; result = CROWBOOK 0.17.0
10:54:14 [DEBUG] (1) crowbook::book: Ignoring YAML block:

10:54:14 [DEBUG] (1) crowbook::book: Attempting to generate pdf...
10:54:14 [DEBUG] (1) crowbook::latex: Attempting to run LaTeX on generated file
10:54:17 [DEBUG] (1) crowbook::zipper: xelatex didn't return succesfully: xelatex: security risk: running with elevated privileges
xelatex: major issue: So far, you have not checked for MiKTeX updates.

ERROR Error during temporary files editing: xelatex didn't return succesfully }
00:00:17 v #5109 ! 10:54:21 [INFO] crowbook::book: Succesfully generated PDF: data\spirituality\the-book-of-innocence_pt-br.hangul.md.pdf
00:00:17 v #5110 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 542 }
00:00:17 w #5111 documents.crowbook / result contains ERROR / { exit_code = 0; output_path = c:/home/git/vault/dist/data/spirituality/the-book-of-innocence_pt-br.hangul.md.pdf; result = CROWBOOK 0.17.0
10:54:07 [ERROR] crowbook::book: Inline YAML block could not set String("치틀리") to String("우 리브루 다 이노센시아"): Error converting BookOption: unrecognized key '치틀리'
10:54:07 [DEBUG] (1) crowbook::book: Attempting to generate pdf...
10:54:07 [DEBUG] (1) crowbook::latex: Attempting to run LaTeX on generated file
10:54:21 [INFO] crowbook::book: Succesfully generated PDF: data\spirituality\the-book-of-innocence_pt-br.hangul.md.pdf }
00:00:17 i #5112 documents.main / { result_len = 252 }